Crear diagramas de Voronoi utilizando la librería rubyvor
Polígonos de Thiessen
Los polígonos de Thiessen (también llamados diagramas de Voronoi o teselación de Dirichlet) son una construcción geométrica que permite construir una partición del plano euclídeo. Deben su nombre a Alfred H. Thiessen y también fueron estudiados por Georgy Voronoi y Gustav Lejeune Dirichlet.
Los polígonos de Thiessen son uno de los métodos de interpolación más simples, basado en la distancia euclidiana, siendo especialmente apropiada cuando los datos son cualitativos. Se crean al unir los puntos entre sí, trazando las mediatrices de los segmento de unión. Las intersecciones de estas mediatrices determinan una serie de polígonos en un espacio bidimensional alrededor de un conjunto de puntos de control, de manera que el perímetro de los polígonos generados sea equidistante a los puntos vecinos y designando su área de influencia.
Aplicaciones
Inicialmente los polígonos de Thiessen fueron creados para el análisis de datos meteorológicos (estaciones pluviométricas) aunque en la actualidad también se aplica en estudios en los que hay que determinar áreas de influencia (centros hospitalarios, estaciones de bomberos, bocas de metro, centros comerciales, control del tráfico aéreo, telefonía móvil, análisis de poblaciones de especies vegetales, etc.). Es una de las funciones de análisis básicas en los SIG.
Descargando la librería rubyvor
Como primer paso tenemos que descargar la librería rubyvor, la cual se encuentra en la siguiente dirección:
http://github.com/abscondment/rubyvor/downloads
Para este caso estamos utilizando la versión 1.3.0.
Creando la gema
Una vez descargada la librería, la extraemos y vemos que contiene un archivo llamado rubyvor.gemspec, el cual nos ayuda a crear nuestra gema(.gem).
Para crear el .gem utilizamos el comando:
gem build rubyvor.gemspec
Una vez creada nuestra gema llamada rubyvor-0.1.3.gem la instalaremos con el comando:
gem install rubyvor-0.1.3.gem
Código
Dentro de la librería que descargamos, se encuentra un archivo llamado README.rdoc que contiene un ejemplo de cómo utilizar la librería.
Creamos un archivo llamado voronoi.rb y su código será el siguiente:
require 'rubygems' require 'lib/ruby_vor' require 'pp' points = [ RubyVor::Point.new(120, 290), #Puntos con coordenadas x,y RubyVor::Point.new(110, 120), RubyVor::Point.new(160, 90.2), RubyVor::Point.new(3.14159265, 3.14159265) ] # Calcula el diagrama y la triangulación comp = RubyVor::VDDT::Computation.from_points(points) # # Las visualizamos en el formato .SVG # # Solo la triangulación RubyVor::Visualizer.make_svg(comp, :name =>; 'tri.svg') # Solo el MST RubyVor::Visualizer.make_svg(comp, :name =>; 'mst.svg', :triangulation =>; false, :mst =>; true) # Diagrama de Voronoi con la triangulación de Delaunay RubyVor::Visualizer.make_svg(comp, :name =>; 'dia.svg', :voronoi_diagram =>; true)
Guardamos nuestro archivo dentro de la carpeta que bajamos y lo ejecutamos con el comando:
ruby voronoi.rb
Si no nos manda algún error entonces nos habrá creado tres archivos en formato .svg (Triangulación, MST y Voronoi-Delaunay).
y listo!!
Les dejo el código del programa en un archivo en .zip por si quieren descargarlo.
Espero sea de gran ayuda, cualquier duda o comentario no duden hacerlas llegar con absoluta libertad..
Saludos!!
Quizá te interese :
Crear una Librería .dll La creación de una librería .dll en VB.NET es relativamente fácil, para ...
La instalación de geoserver resulta relativamente fácil, solo hay que seguir unos cuantos se ...
Para poder conectar Ruby con Mysql necesitamos de tres cosas: Ruby, Mysql y el modulo Ruby My ...










