Como niño jugaba a veces en el Wii de mis abuelos cuando me quedé en su casa. Había un juego llamado Wii Sports Resort que tiene lugar en un centro turístico en una isla en el que tu avatar puede participar en varias diversiones deportivas como la lucha con espadas, el frisbi, el ciclismo, el wakeboarding y demás.
Por alguna razón, un juego de estos solía gustarme mucho mejor que los demás: la vista áerea, en la que se conduce el personaje sobre toda la isla en un avioncito. No era el volar que me ha encantado tanto como el descubrimiento de varios puntos de interés esparcidos por la isla que se realiza pasando justo por encima de cada ubicación. Después de visitar el "i point" asociado a cada punto de interés, aparecería en una lista de todas las ubicaciones descubiertas en el menú al final de la "vista áerea", tal y como se ve en esta captura del fan wiki:
Hace falta un poco de acrobacia áerea para acceder a algunos de estos sitios clandestinos, por el cual hecho era aún más tentador la posibilidad de completar mi colección encontrando los pocos escondites que hasta entonces me habían escapado. A nivel psicológico no entiendo bien por qué este juego me ha captado tanto - pero recuerdo haber fantaseado con experimentar una "vista áerea" de Chattanooga, la ciudad en la que vivía mi familia en ese entonces, y con colectar "i points" de ubicaciones notables por la ciudad como el Walnut Street Bridge y el Tennessee Aquarium.
Hace varios años que no pensaba en ese juego, pero recientemente descubrí algo que parece estimular las mismas partes de mi cerebro. Buscando empleo tecnológico local me topé con un puesto que pide experiencia con los GIS, el cual acrónimo no conocía. Después de googlearlo aprendí que GIS significa sistema de información geográfica (en inglés: geographic information system) y que se usan estos sistemas para consultar y manipular datos espaciales que pueden involucrar tanto elementos naturales como elementos artificiales o administrativos.
Por supuesto, me pregunté si acaso podría encontrar conjuntos de datos abiertos sobre Albuquerque (donde vivo actualmente) y me asombró la gran cantidad de datos que publica la Ciudad de Albuquerque. Además, aprendí que en muchos casos se puede consultar datos de GIS usando el lenguaje de consulta SQL que se suele usar para bases de datos. Claro, no pude sino descargar varios conjuntos de datos para ver qué información estrafalaria podría extraer. Lo que queda de esta entrada consta de algunas consultas tontas que he realizado en los datos de GIS de Albuquerque. Te animo a buscar datos de GIS que corresponden a tu propia ciudad (probablemente existen!) y probar algunas consultas por tu propio cuenta. Yo he elegido QGIS para mis pruebas como es gratis y código abierto.
Antes de empezar, hago un breve comentario técnico. Todavía estoy aprendiendo de los GIS por primera vez, pero aquí está alguna jerga según entiendo yo:
Se puede user conjuntos de datos vectoriales para representar elementos discretos como empresas o puntos de interés (puntos), calles o ríos (curvas) o parques públicos o cuerpos de agua (polígonos). Se suele contrastar los datos vectoriales con datos ráster, que se usan para representar datos continuos que asignan a cada punto en un espacio un valor numérico, como altura o temperatura. Al parecer hay varios distintos formatos que sirven para almacenar datos vectoriales. Estos incluyen shapefiles, GeoJSON y GML.
Uno de los conjuntos de datos sobre Albuquerque que más me ha interesado es el que describe "uso de tierra". Me demoré en tocar este conjunto porque no sabía el significado de este título, pues suena un poco aburrido. Pero en este conjunto se encuentra información sobre todos los establecimientos en Albuquerque que son organizados con mucha especificidad en distintos "códigos de uso de tierra". Empezamos eligiendo algunos distintos tipos de empresas y viendo todas las ubicaciones correspondientes en el alrededor de UNM.
En primer lugar, aquí está UNM:
Haciendo clic derecho en la capa landuse
y eligiendo Open Attribute Table
se puede visualizar el conjunto de datos entero y a partir de esta table se puede averiguar que la columna OldLandU_1
debe ser la que contiene los códigos de uso de tierra que queremos investigar. Entonces navegando a Edit > Select > Select Features by Expression
podemos abrir un menú que nos permite seleccionar elementos con un predicado de SQL.
Echando un vistazo a la lista de códigos de uso de tierra que adjunté arriba, se ve que hay dos códigos que corresponden a restaurante de comida rápida (que se distinguen entre sí por la presencia o ausencia de un drive-thru). Entonces, podemos ingresar el siguiente predicado para destacar los establecimientos de comida rápida:
También he agregado etiquetas a todos los elementos seleccionados que muestras los primeros dígitos de sus GlobalID
respectivos para poder referirme a ellos más fácilmente. Aquí están los resultados a lo largo de Central, en el alrededor de UNM:
Como estudiante de la uni, por supuesto puedo identificar varios de los restaurantes de comida rápida cercanos a UNM de memoria. Por ejemplo el edificio CF5
es un Wendy's y el 145
es un Taco Bell. A propósito, es un desafío divertido intentar recordar cada edificio sabiendo sólo su ubicación y su código de uso de tierra - creo que B27
es un McDonald's y 280
es una pizzería, pero podría haberlos confundido. Se me resulta bastante gracioso el hecho de que el Freddy's en Central no está clasificado como FAST FOOD
ni tampoco RESTAURANT
sino un EATING AND DRINKING ESTAB
:
Viviendo en Albuquerque como estudiante de UNM, empecé a notar a partir de la legalización de marijuana en Nuevo México que los dispensarios de marijuana han empezado a brotar por todas partes. Apenas creo que hay bastante demanda para que todos sobrevivan! Pues por supuesto quería intentar encontrar datos de GIS que incluyen las ubicaciones de los dispensarios por todo Albuquerque. Esta búsqueda desembocó en la Mapa de Aprobación de Locales Minoristas de Cannabis, la cual muestra todas las ubicaciones de dispensarios propuestos por todo Albuquerque además de su estado con respecto a la aprobación. Resultó una gran molestia averiguar cómo descargar los datos crudos, pero finalmente lo logré con la ayuda de esta entrada de blog (muchas gracias a Jonathan Chang!). Pues aquí están todos los dispensarios propuestos en el alrededor de campus con las ubicaciones aceptadas en verde y las rechazadas en rojo:
Ahora nos ponemos a intentar algo un poco más complejo con estos datos que involucra varias capas a la vez. La Ciudad de Albuquerque ha publicado algunas reglas acerca de las locales minoristas de cannabis, y entre ellas:
Con algunas herramientas que proporciona QGIS debemos poder averiguar si existen dispensarios que no cumplan con estas reglas. En concreto, la herramienta búfer, que se encuentra en Vector > Geoprocessing Tools > Buffer
, nos permite crear una nueva capa cuyos elementos son círculos de un cierto radio centrados en cada dispensario. Así se ven estos círculos, pintados como burbujitos verdes:
Entonces podemos desplegar la operación combinación espacial entre la capas, que se comporta de manera parecida a la operación JOIN
en SQL salvo que puede tomar en cuenta información espacial también. Esta entrada de StackExchange contiene algunos diagramas muy bonitas en la respuesta más gustada que explican cómo funciona este tipo de operación. Además de la capa de dispensarios he descargado una capa del sitio web de CABQ que consta de puntos que marcan las ubicaciones de escuelas en Albuquerque. Si juntamos la capa de búfer de dispensarios con ls capa de escuelas usando el predicado de intersección, el resultado debe ser una capa que indica todas las escuelas que se encuentren dentro de una bola de radio 300 pies centrado en algún dispensario.
Realizando esto por mi cuenta sólo encontré un único resultado: el Releaf Cannabis CO
que se encuentra en 1606 Central Ave SE
y una escuela particular llamado Tierra Adentro
que se encuentra enfrente. Pero hice una búsqueda y descubrí en el sitio web de Tierra Adentro que actualmente se ubican en 1781 Bellamah Ave NW
, sitio que queda a una distancia de algunas millas. El campo LASTUPDATE
para esta escuela contiene el valor 11/9/16
en el conjunto de datos que descargué, así que deduzco que la escuela debe haberse reubicado desde entonces.
Para encontrar pares de dispensarios con una distancia de menor que 600 pies entre sí, sólo hace falta calcular si algunas de esta bolas de radio 300 pies se cortan entre sí - pues si una bola de radio 300ft centrado en un punto corta la pola de radio 300ft centrado en otro, entonces los dos puntos tienen una distancia menor que 600ft entre ellos. Como tal debemos llevar a cabo una combinaci´øn espacial de la capa de búferes de dispensarios consigo mismo y entonces limpiar el resultando quitando pares duplicados ("x
se encuentra a menor que 600ft de y
y y
se encuentra a menor que 600ft de x
") y entradas degenerados que juntan un dispensario consigo mismo ("x
se encuentra a menor de 600ft de x
"). Cada dispensario con búfer posee un identificador único en la columna objectid
y cada par de dispensarios con búfer que aparece en la nueva capa contiene el identificador de cada uno en las columnas objectid
y objectid_2
. Hay un truco que se puede usar para eliminar las entradas duplicadas y degeneradas: realizar un Filter
con el predicado objectid < objectid_2
. (Puedes averiguar por qué funciona esto?)
Yo encontré 47 pares (no duplicados) de dispensarios con una distancia menor que 600 pies entre sí. Al parecer, los dispensarios con licensia de microempresa tienen la subcadena MICB
o bien micb
en su campo state_cannabis_licence_number
, así que podemos quitar estas excepciones con el predicado siguiente:
Encontré 14 resultados después de ejecutar este filtro. Inspeccionándolos uno por uno encontré que algunos claramente son errores (e.g. Leaf & Flower LLC
y Leaf & Flower LLC Producer
tienene entradas distintas pero probablemente se refieren a la misma empresa, y Urban Wellness
tiene dos entradas correspondientes con identificadores distintos). Sin embargo, algunos parecen ser contraejemplos verdaderos, como este par aquí: Se supone que una empresa de estas dos disponga de un "conditional use approval".
Pues basta ya con el análisis, pero me he divertido mucho jugueteando con estos conjuntos de datos en QGIS. Esta diversión ha estimulado varias partes de mi cerebro, entre ellas mi interés en las bases de datos, mi razonamiento geométrico y topológico, y estos restos de materia gris que en el pasado me hicieron entusiasmarme tanto al descubrir huevos de Pascua desde encima en la vista áerea de Wii Sports. Ahora que lo pienso, no creo que hubieran tantos dispensarios de cannabis en la isla de Wuhu...