Entrades classificades amb: escoles bressol

Primers passos en el rutatge al QGIS

En aquest post mostraré els passos que he hagut de seguir per tal de crear el primer dels mòduls que utilitza funcions de rutatge en el QGIS. En aquest cas, volem traslladar el mòdul que calcula els 3 camins a les escoles bressol i llars d’infants més pròximes a cada portal de la ciutat de Mataró. En primer lloc presento les capes amb les quals es treballa. Llavors segueixo amb la creació del mòdul i la seva utilització.

Capes de treball

Actualment amb el GeoMedia treballem amb bases de dades de Microsoft Access majoritàriament. Aquestes incorporen tot tipus de dades, ja sigui taules amb informació sobre el padró o el cadastre, que no estan georeferenciades, o capes de punts, línies o polígons com poden ser els mapes de carrers, illes, cruïlles i serveis públics de la ciutat. Les dades en aquest format ens permeten una gran versatilitat d’ús i facilitat tan en l’ús com en la creació, modificació i eliminació. També són fàcilment exportables a qualsevol altre tipus de format per seguir treballant. Ocasionalment també treballem amb arxius SHAPE.

El QGIS permet gestionar formats raster i vectorials a través de les biblioteques GDAL i OGR, així com altres bases de dades. Una biblioteca GDAL i OGR és un conjunt de programes que estan formats per comandes, cada un amb moltes possibilitats d’ús.

Les capes més comunes amb les quals hem treballat són el Vector Layer, on utilitzem arxius SHAPE (.shp), i Delimited Text Layer on utilitzem arxius CSV (.csv).

Ambdos tipus de dades poden ser modificats fàcilment: tan crear, inserir, modificar o eliminar objectes i/o camps, la qual cosa els fa idonis treballar amb aquests tipus d’arxius ja que si volem fer proves per poder desenvolupar les consultes o els mòduls, ens són de gran utilitat.

Procés de creació

Per crear la interfície gràfica s’utilitza un creador de models que porta incorporats una sèrie de funcionalitats. Haurem d’anar a la caixa d’eines de processat i allà “crear model nou”.
fuc
I seguidament se’ns obra la següent finestra:
nou
Les dues imatges següents corresponen a la columna de l’esquerra de l’anterior imatge hi tenim tots els tipus de paràmetres amb els quals podem treballar, i si canviem a la pestanya de algoritmes, trobem totes les funcions amb les quals podrem treballar sobre les dades. Cal veure el funcionament d’aquestes per tal de poder-les utilitzar correctament.

fuc

dades

 

 

 

 

 

Seguidament, vam afegir el tipus de dades i buscar les funcionalitats adequades per construir la interfície gràfica.

dades2
Una vegada introduïdes les capes, va ser necessari buscar una funcionalitat que convertís el tipus de geometria dels objectes de les capes de punts ja que van sorgir problemes per què obteníem una capa buida. En el nostre cas vam utilitzar el mòdul “Convert Geometry type”.
convert
Seguidament vam començar la recerca d’entre les funcionalitats alguna que calculi una ruta entre dos punts. No existeix una funcionalitat que faci tal funció, així que vam seguir la cerca. Vam seguir buscant entre els plugins que permet instal·lar el QGIS. Vam trobar-ne un que si que fa aquesta funció però no ens era d’utilitat ja que no hi ha cap manera d’automatitzar el procés de càlcul de les distàncies. Això doncs, vam recórrer a l’últim recurs: crear un script en Python que realitzi la funció.

Vam trobar un script que calculava la ruta entre dos punts sobre un graf de carrers. Aquest script utilitza una funció interna de la API de QGIS anomenada “dijkstra” que et retorna un camí. El següent script és el que vam trobar a Internet:

##ruta=name
##ruta=name
##points=vector
##network=vector
##output=output vector

#Algorithm body
#==================================
from PyQt4.QtCore import *
from PyQt4.QtGui import *

from qgis.core import *
from qgis.gui import *
from qgis.networkanalysis import *
from processing.tools.vector import VectorWriter

point_layer = processing.getObject(points)
network_layer = processing.getObject(network)
writer = VectorWriter(output, None, [QgsField("order", QVariant.Int)],
network_layer.dataProvider().geometryType(), network_layer.crs())

# prepare graph
vl = network_layer
director = QgsLineVectorLayerDirector(vl,-1,'','','',3)
properter = QgsDistanceArcProperter()
director.addProperter( properter )
crs = vl.crs()
builder = QgsGraphBuilder( crs )

# prepare points
features = processing.features(point_layer)
point_count = point_layer.featureCount()
points = []
for f in features:
  points.append(f.geometry().asPoint())
tiedPoints = director.makeGraph( builder, points )
graph = builder.graph()
route_vertices = []

for i in range(0,point_count-1):
    progress.setPercentage(int(100 * i/ point_count))
    
    from_point = tiedPoints[i]
    to_point = tiedPoints[i+1]
    from_id = graph.findVertex(from_point)
    to_id = graph.findVertex(to_point)

    (tree,cost) = QgsGraphAnalyzer.dijkstra(graph,from_id,0)
    if tree[to_id] == -1:
        continue # ignore this point pair
    else:
        #collect all the vertices between the points
        route_points = []
        curPos = to_id 
        while (curPos != from_id):
            route_points.append(graph.vertex(
graph.arc(tree[curPos]).inVertex()).point())
           curPos = graph.arc( tree[ curPos ] ).outVertex()
        route_points.append(from_point)
    # add a feature
    fet = QgsFeature()
    fet.setGeometry(QgsGeometry.fromPolyline(route_points))
    fet.setAttributes([i])
    writer.addFeature(fet)
del writer

Un cop testejat i debuguejat, vam començar amb la modificació de l’script per tal d’obtenir el resultat desitjat. Aquest va ser un procés complex ja que s’havia de canviar el programa per dins. Després de forces entrebancs en el procés vam aconseguir un resultat força aproximat al que volíem. Van caldre forces hores per acabar de depurar el codi ja que teníem petits errors que costaven de detectar.

##dintreilla=vector
##EscolesBressol=vector
##network=vector
##output=output vector
#Algorithm body
#==================================
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import time
from qgis.core import *
from qgis.gui import *
from qgis.networkanalysis import *
from processing.tools.vector import VectorWriter

start_time = time.time()
network_layer = processing.getObject(network)

inputPoint = processing.getObject(dintreilla)
features = processing.features(inputPoint)

inputPoint2 = processing.getObject(EscolesBressol)
features2 = processing.features(inputPoint2)

di= 0
eb= 0
id = -1
fields = []
fields.append (QgsField("ID", QVariant.Int))
fields.append (QgsField("Length", QVariant.Int))
fields.append(QgsField("From_Node",QVariant.String))
fields.append(QgsField("To_Node",QVariant.String))

writer = VectorWriter(output, None, 
fields, network_layer.dataProvider().geometryType(), network_layer.crs())

#Per buscar els 3 millors de cada punt

for fea1 in features:
    di=di+1
    #xx = fea1.geometry().asPoint().x()
    #yy = fea1.geometry().asPoint().y()
    #pStart = QgsPoint(xx, yy)
    from_node = fea1.attributes()
    inici = from_node[0]
    print inici
    fea2=None
    features2 = processing.features(inputPoint2)
    eb = -1
    vec = []
    for fea2 in features2:
        eb=eb+1
        id  = id + 1
        nom = fea2.attributes()
        desti = nom[2]
       #---------------------------------------------------------------
        vl = network_layer
        director = QgsLineVectorLayerDirector(vl,-1,'Cost','Cost_inver','',3)
        properter = QgsDistanceArcProperter()
        director.addProperter(properter)
        crs = vl.crs()
        builder = QgsGraphBuilder(crs ,True,0.001)

        # prepare points
        points = []
        points.append(fea1.geometry().asPoint())
        points.append(fea2.geometry().asPoint())

        tiedPoints = director.makeGraph( builder, points )
        graph = builder.graph()

        route_vertices = []
        for i in range(0,2-1):
            from_point = tiedPoints[i]
            to_point = tiedPoints[i+1]

            from_id = graph.findVertex(from_point)
            to_id = graph.findVertex(to_point)

            (tree,cost) = QgsGraphAnalyzer.dijkstra(graph,from_id,0)
            if tree[to_id] == -1:
                continue # ignore this point pair
            else:
                # collect all the vertices between the points
                route_points = []
                curPos = to_id 
                while (curPos != from_id):
                    route_points.append(graph.vertex(
graph.arc(tree[curPos]).inVertex()).point())
                    curPos = graph.arc(tree[curPos]).outVertex()

                route_points.append(from_point)

            # add a feature
            geom=QgsGeometry.fromPolyline(route_points)
            fet = QgsFeature()
            fet.setGeometry(QgsGeometry.fromPolyline(route_points))
            fet.setAttributes([id, geom.length(), inici, desti])
            vec.append(fet)
           
    if (len(vec) > 0):
        vec.sort(key=lambda vec: vec[1])
        for i in range (0,3):
            writer.addFeature(vec[i])
del writer
print("--- %s seconds ---" % (time.time() - start_time))

Finalment vam aconseguir un resultat que s’ajustava a les nostres necessitats, i així completar el procés de creació d’un mòdul amb el QGIS. Vam posar l’script en un mòdul per a python, vam posar-li totes les connexions necessàries.
python
I aquest en va ser el resultat final de tot el procés:
final

Procés d’utilització

Aquí es descriu el procés d’utilització del mòdul per trobar els 3 Camins més pròxims a una Escola Bressol i una d’infants. Aquest comença amb la preparació de les dades a la llegenda o panell de capes del QGIS. En el cas que ens ocupa necessitarem 4 capes SHAPE, 3 de punts i una de segments. Les 3 capes de punts són les Escoles Bressol, les Llars d’Infants  i els dintreilles, que són tots els portals de la ciutat.  I la capa de segments són el conjunts de carrers de la ciutat, és a dir, per on hem de trobar el camí.

Primer de tot, hem de tenir les capes en el tipus desitjat: SHAPE. En el cas que no estiguin ja en aquest format, cal transformar-les per tal de poder-hi treballar. Un cop les tinguem, les guardem per tal de poder-les agafar i emprar.

Tal com s’indica a la fotografia, s’afegeix cada capa via Capa -> Añadir capa -> Añadir capa vectorial:
afe3

afe

Seleccionem explorar i amb l’ajuda de la finestra, busquem els arxius SHAPE que volem posar.

afe2

Repetim l’acció 3 vegades més fins a aconseguir les 4 capes desitjades, tal i com es veu a la foto.

Un cop fet, anem al panell de la dreta de la pantalla on hi ha la “caja de herramientas de procesado” i busquem a l’apartat de Modelos -> CCU, un model anomenat “3EB més pròximes”.
afe4

Una vegada trobat, cal executar-lo. S’obrirà una pestanya amb el següent diàleg:

afe5

Posem a cada pestanya la capa que ens demani: a la primera hi posem la xarxa de carrers sobre la qual volem treballar, a la segona hi posem els Dintreilles o portals de la ciutat(assegurar-se de que sigui la versió “dintreilla_trajectes”) i finalment les escoles bressol o les llars d’infants. Haurem de repetir el procés per cada una de les capes: una per les EB i una altre per les LI.

Un cop tot estigui a punt, només cal executar el procés i esperar a obtenir el resultat. El temps d’espera pot variar segons l’ordinador on s’estigui executant aquest.

Quan finalitzi el procés cal guardar el resultat en un fitxer SHAPE, ja que està en un fitxer temporal i per tant, es perdria en el moment en què tanquem el programa.

Prova del mòdul

En aquest apartat es mostra un exemple de mostra del mòdul. No utilitzaré la capa del ‘dintreilla’ ja que es massa gran i per veure el funcionament, amb una simple capa en tenim prou.

En aquest cas utilitzaré una capa amb un punt (de color vermell) que serà el punt d’origen i una altre capa (de color verd) amb els possibles destins més propers. D’aquesta manera es pot veure ben clar el funcionament.
ex1

Posem en marxa el mòdul i el resultat que obtenim és el següent:

ex2

A la imatge es pot veure el graf de carrers de la ciutat de Mataró. S’hi pot veure 3 camins ressaltats de color verd clar. Tots tres tenen com a origen el punt vermell.

Iniciació al software QGIS (Quantum GIS)

Fins ara, en el CCU s’ha treballat en un entorn Windows-Geomedia fent la programació en Visual Basic degut a la gran facilitat d’ús d’aquest entorn i a la seva generalització en tots els àmbits tant de l’Empresa Privada com de l’Administració. Però, darrerament, el Programari Lliure s’ha anat obrint camí allà on abans només hi havia programari de propietari. Malgrat tot, encara resten molts inconvenients pels usuaris del Programari Lliure que s’han d’anar superant.

En aquest sentit, s’ha començat un projecte que té com a finalitat el pas total de tota la operativa desenvolupada en l’entorn Geomedia a Programari Lliure, i concretament els mòduls funcionals que s’han anat creat com a plug-ins del Geomedia.

Així doncs, en aquesta primera entrada es parla del QGIS com a alternativa al GIS de desktop Geomedia Professional i s’explica de la forma més entenedora possible els primers passos per iniciar-se en aquest nou entorn.

Aquest nou entorn a treballar és el Programari Lliure QGIS. És un Sistema d’informació Geogràfica (SIG) de codi lliure per plataformes GNU/Linux, Unix, Mac OS i Microsoft Windows. Permet gestionar formats raster i vectorials a través de les biblioteques GDAL i OGR, així com altres bases de dades.

QGIS permet construir d’una forma més senzilla i gràfica models que realitzen les mateixes funcions que, actualment, desenvolupen els mòduls utilitzats al GeoMedia. I el més important, l’elaboració d’aquests models al QGIS es realitzen en molt menys temps que si es volgués fer amb el GeoMedia, tot i que requereixen un elevat temps previ d’investigació. A més, QGIS ofereix una àmplia gamma de funcionalitats que el GeoMedia no ofereix.

Per tant, la finalitat d’inicar-se en aquest nou programa és acabar substituint l’actual programa que es fa servir, el GeoMedia Professional.

Primers passos en el QGIS.

El primer que s’ha de fer en executar per primera vegada el programa, és carregar en la llegenda totes aquelles capes que siguin necessàries per poder treballar i realitzar les corresponents consultes.

En aquest cas, es carreguen dos tipus de capes:

  • Vector Layer: Es tracten d’arxius tipus “shape”. Aquest arxius són aquelles capes que tenen alguna forma geomètrica (punt, línia, polígon). Exemples d’aquestes capes són les illes, les parcel·les, els  números de policia, les entitats base, etc. Per efectuar la càrrega, primer de tot s’han d’exportar aquests “Arxius Shape” des del GeoMedia.
  • Delimited Text Layer: Es tracten d’arxius tipus “CSV”. Per tant, són arxius en format taula, on dins d’aquestes, es troba una sèrie d’informació que serà necessària per efectuar futures consultes. Igual que amb els Arxius Shape, també s’han d’exportar des del GeoMedia.

1. Afegir les capes “Vector Layer” al QGIS

  • El primer pas a seguir, es exportar les capes des del GeoMedia. Un cop dins del GeoMedia Professional, es realitza l’exportació de les capes que interessi.

Fig. 1. Exportació dels arxius shape.

  • S’indiquen aquelles capes que es vulguin exportar, per exemple, les illes, i es clica en “Aplicar”.

Fig. 2. Exportació de les Illes.

  • Un cop s’han exportat les capes des del GeoMedia, s’executa el QGIS i s’importen aquestes capes. Es clica en “Add Vector Layer”.

Fig. 3. Importar capes en format shape.

  • Es busca la ubicació de l’arxiu i es polsa en “Open”.

Fig. 4. Importar capes en format shape.

  • A continuació, apareix la capa “Illes” en la llegenda del QGIS i per tant, es mostra per pantalla tot el mapa de Mataró.

Fig. 5. Mapa de Mataró (Illes).

  • És molt important indicar en cada capa que s’afegeix, el seu sistema de coordenades de referència (ha de ser el mateix que el del GeoMedia: EPSG:23031 – ED50 / UTM zone 31N). Si s’afegeix  una capa, i per defecte no té  aquest sistema de coordenades, la capa no es mostrarà en pantalla. Per fer això, es fa doble clic a sobre de la capa i es va a la pestanya “General”.

Fig. 6. Canviar Sistema de Coordenades.

  • Repetir aquests passos per totes aquelles capes que es vulguin afegir.

2. Afegir les capes “Delimited Text Layer” al QGIS

  • Igual que s’ha fet amb les capes “vector layer”, primer de tot s’han de realitzar les exportacions d’aquelles taules que es vulguin fer servir al QGIS des del GeoMedia. Però, en aquest cas, no existeix una opció al GeoMedia per poder fer-ho directament. Les taules que es desitgin exportar per afegir-les posteriorment al QGIS, han d’estar en format CSV, és a dir, delimitades per comes. Això es pot realitzar des del mateix Excel. Per tant, una opció per dur a terme l’exportació, és anar a buscar la taula que interessi en la base de dades (BBDD) que utilitza el GeoMedia per la taula en concret. En aquest cas, es farà l’exportació de la Taula Resum, que es troba en la BBDD “Padro28Feb14”.

Fig. 7. Exportar les taules a l'Excel.

  • Un cop realitzada l’exportació de la taula des de l’Access, s’obre l’arxiu generat en Excel i es guarda en “CSV (delimitado por comas)”.

Fig. 8. Guardar en format csv.

  • Ara, un cop dins del QGIS, es procedeix a carregar les taules exportades. Es clica en “Add Delimited Text Layer”.

Fig. 9. Importar capes en format CSV.

  • Es busca la ubicació de l’arxiu, es seleccionen les opcions “First record has field names” i “No geometry (attribute only table)” i es clica en “OK”.

Fig. 10. Importar capes en format CSV.

  • A continuació, apareix la capa “Resum” en la llegenda del QGIS i es pot comprovar que tota la informació que conté la taula és correcte. Per fer això, es clica amb el botó dret del ratolí a sobre de la taula i es selecciona “Open Attribute Table”.

Fig. 11. Comprovar informació correcte.

  • Repetir aquests passos per totes aquelles capes que es vulguin afegir.

Editar elements de la llegenda

Un cop ja s’han carregat en la llegenda del QGIS els elements corresponents (entitats, illes, taules…), aquests elements poden ser editats i visualitzar les seves propietats. A continuació, s’explica com fer-ho per l’entitat “Escoles Bressol”, que prèviament ha hagut de ser carregada a la llegenda de la mateixa manera que s’ha fet amb les Illes, seguint el mateix procediment.

  • Si es fa activa la capa de l’entitat “Escoles Bressol” perquè es visualitzin per pantalla, es pot consultar informació de cada una de les escoles que es troben a Mataró. Per fer això, s’ha de clicar a “Identify Features” que es troba en la barra d’eines superior.

Fig. 12. Consultar informació.

I a continuació, clicar a sobre del mapa a l’Escola Bressol que es vulgui consultar i apareixerà una sèrie d’informació.

Fig. 13. Informació de l'Escola Bressol.

  • Una altra manera de visualitzar la informació de les Escoles Bressol sense haver d’anar clicant una per una, és clicar amb el botó dret a sobre de “EscolaBressol” que es troba en la llegenda i seleccionar “Open Attribute Table”.

Fig. 14. Open Attribute Table.

S’observa com es visualitza la taula amb tota la informació de cada una de les Escoles Bressol.

Fig. 15. Informació de les Escoles Bressol.

  • Si el que es vol es visualitzar les propietats de les entitats, el que s’ha de fer és pitjar amb el botó dret a sobre de “EscolaBressol” i clicar a “Properties”.

Fig. 16. Propietats de les Escoles Bressol.

En la següent entrada d’aquest bloc, s’explicarà com construir un model des del QGIS que realitzi les mateixes funcions que, actualment, realitza en el GeoMedia.

 

Generador de polígons de Voronoi (2/2)

En l’anterior entrada del bloc s’ha explicat l’aplicació “generador de polígons de Voronoi” des del punt de vista d’un programador, en aquest capítol s’explicarà com funciona des del punt de vista de l’usuari.

Es comentarà tot el procés que ha de fer l’usuari per poder utilitzar el mòdul de forma correcte i treure-l’hi el millor partit possible. Per això també es realitzaran una sèrie d’exemples per que l’usuari tingui la màxima facilitat a l’hora d’entendre el funcionament.

Carregar l’aplicació al Geomedia

Primerament explicaré com carregar el mòdul VB al Geomedia, de tal forma que pugui ser utilitzat per l’usuari.

  • Quan utilitzem el geomedia command wizard , plug-in que serveix per implementar el mòdul visual basic per que pugi ser utilitzar en l’entorn del geomedia profesional, se’ns creen dues carpetes.

Fig. 1. Contingut del nou projecte.

  • La carpeta “src” conté tots els arxius del projecte (mòduls, formularis etc..)

Fig. 2. Contingut carpeta "scr".

  • En la carpeta “bin” trobem l’arxiu .dll que es el que s’haurà d’instal·lar dintre del Geomedia.

Fig. 3. Contingut de la carpeta "bin".

  • Per instal·lar-ho utilitzem l’icona “install” d’intergraph, com podem veure a la següent imatge. Seleccionem la ruta de la carpeta “bin” del nostre projecte i pitgem “OK”.

Aquest procés tan sols s’haurà de fet un primer cop, ja que una vegada instal.lat el mòdul una vegada, per qualsevol canvi en el mòdul tan sols s’haurà de generar una nova dll, amb el procés explicat anteriorment al final del capítol anterior.

Fig. 4. Instal•lació nou mòdul creat.

  • Finalment, s’hi la instal·lació ha estat un èxit, ens hauria de sortir un missatge com el següent.

Fig. 5. Instal•lació satisfactòria del mòdul.

  • Una vegada estem dintre del interface del Geomedia Professional abans de poder provar el nostre mòdul, haurem de fer una mínim una connexió amb una base de dades que contingui classes d’entitat puntual de línia i d’àrea. ja que les tres son necessàries de cara al funcionament del aplicatiu. Per fer la connexió seguim el mateix procés explicat en el capítol 2, apartat Geomedia Professional.

Fig. 6. Addició de les connexions necessàries.

  • Una vegada fetes les connexions necessàries haurem de pitjar sobre un icona que ens apareixerà per defecte com el de la següent imatge. (Si volem tenir el mòdul a un dels menús, s’ha de seguir el procés explicat a L’annex 1).

Fig. 7. Icona per defecte del nostre mòdul.

  • Que ens portarà a la finestra del nostre mòdul, preparat per ser utilitzat.

Fig. 8. Finestra mòdul.

Exemples de la aplicació

En aquest capítol s’explicarà amb exemples el funcionament de la aplicació creada en l’entorn del Geomedia Profesional.

És realitzaran 4 exemples  amb centres proveïdors de serveis (escoles bressol, CAPS, centres de formació primària, Parades de bus) i un especial amb una consulta. Aquests exemples estaran documentats pas per pas i aportant diferents captures per mostrar els diferents punts de vista.

Escoles bressol

Per poder visualitzar el resultat dels polígons de Voronoi de la millor manera posible, haurem de tenir activades a la llegenda un mínim de dos classes d’entitat. Per una banda, l’area que limitarà el Voronoi, en aquest cas, el terme municipal de Mataró i per l’altra la classe d’entitat puntual sobre la que volem crear les nostres zones d’influència, en aquest exemple, seran les escoles bressol. Per això anem a Leyenda>Agregar entradas de leyenda i seleccionem aquestes en els desplegables de les connexions i pitgem el botó “aceptar”.

Fig. 9. Agregació de entrades de llegenda necessàries.

Com podem veure en les imatges, ens apareixeran les escoles bressol situades en el terme municipal.

Fig. 10. Escoles bressol i el terme municipal mostrats a la pantalla.

Si volem saber més detalls sobre les escoles, simplement pitgem a sobre d’una i ens apareixerà un quadre de diàleg com el següents on ens donarà propietats com el nom de l’escola o el numero de places entre d’altres.

Fig. 11. Propietats de les escoles bressol.

Una vegada tenim les classes d’entitat seleccionades a la llegenda, anem al mòdul  i seleccionem en els desplegables “EscolaBressol” com a entitat puntual, “Terme_municipal” com àrea delimitada i “Linies” com a sortida lineal per guardar el resultat del diagrama de Voronoi. Finalment pitgem el botó Calcular Voronoi.

Fig. 12. Omplir desplegables del mòdul per escoles bressol.

Com podem veure obtenim el diagrama Voronoi perfecte sobre les escoles bressol. El diagrama per aquest cas constarà de 17 línies guardades a la classe d’entitat “linies”.

Fig. 13. Polígons de Voronoi sobre les escoles bressol.

Com es pot comprovar, les línies no acaben en el límit del terme municipal, això es deu, ja que l’algoritme de Voronoi sempre es base en un quadrat o rectangle per arribar al punt final de les línies. Per tant en aquest cas calcula un quadrat imaginari amb els punts més alts de l’amplada i l’alçada. Per poder arreglar aquest problema, tenim dos formes de fer-ho des de el Geomedia:

  1. Fent una intersecció espacial:

Anem a Analisis> Intersección espacial .Una vegada dintre haurem de seleccionar  les classes d’entitat de línia i terme municipal i deixar per defecte la opció ” es toquen”. Escrivim el nom final de la consulta resultant i pitgem “aceptar”.

Fig. 14. Intersecció espacial entre línies i terme municipal.

Amb aquesta intersecció aconseguirem el resultat desitjat, com podem veure a la següent captura. El resultat de la consulta com podem veure a la llegenda es una barreja entre línies i àrees.

Fig. 15. Voronoi final sobre les escoles bressol mitjançant intersecció.

2.  Amb la opció dividir entidades.

Pitgem el boto “dividir entidades”.

Fig. 16. Procés dividir entitats (1/3).

Marquem el cursor i seleccionem el mapa amb les línies amb un quadrat.

Fig. 17. Procés dividir entitats (2/3).

Pitgem amb el botó dret a la pantalla i seleccionem la opció “realizar division”. Llavors, et va dividint el terme municipal en seccions de una en una.

Fig. 18. Procés dividir entitats (3/3).

Fins arribar al resultat final on tenim el Terme municipal dividit en regions de Voronoi.

Fig. 19. Voronoi resultant sobre escoles bressol mitjançant divisió d'entitats.

Llavors amb aquest mètode obtenim com a resultat final àrees. Seleccionant a la llegenda la classe d’entitat  “illes” podríem veure les regions d’una forma més visual.

Fig. 20. Voronoi resultant sobre escoles amb la capa d'illes.

Per últim activant la capa de la “ortofoto2013” a la llegenda podem visualitzar els polígons des de una vista Aérea similar a la de Google Maps.

Fig. 21. Voronoi resultant sobre escoles amb la capa "ortofoto".

CAPS

En aquest exemple crearem les regions de Voronoi al voltant dels CAPS de Mataró.

Primer de tot, com hem fet en l’exemple anterior agreguem a la llegenda la classe d’entitat puntual (CAPS)i  l’àrea  delimitant (terme_municipal). Com podem comprovar tenim 8 CAPS tal i com ens mostra la llegenda.

Fig. 22. Caps i terme municipal mostrats en pantalla.

Obrim el mòdul i  com hem fet en l’exemple anterior, seleccionem l’entitat puntual,(CAPS en aquest cas), el terme municipal com a area delimitada i per últim “linies” com a classe d’entitat de sortida per guardar el resultat. Pitgem Calcular Voronoi.

Fig. 23. Omplir desplegables del mòdul per escoles bressol.

Obtenim el  digrama de Voronoi resultant pels CAPS, que conté en aquest cas 14 línies.

Fig. 24. Diagrama de Voronoi sobre CAPS.

Llavors, utilitzant el segon sistema explicat anteriorment (Escoles bressol) per separar el Terme municipal en les regions de Voronoi obtindríem la següent imatge.

Fig. 25. Voronoi final sobre els CAPS mitjançant intersecció espacial .

Agregant la classe d’entitat illes a la llegenda tindríem la següent vista.

Fig. 26. Voronoi final sobre els CAPS amb la capa d'illes .

Finalment amb activant la Ortofoto com en l’exemple anterior, tindríem la vista des de dalt.

Fig. 27. Voronoi final amb la vista Aérea.

Parades de bus

Com als altres dos exemples, agreguem a la llegenda les parades de bus en aquest cas i el terme municipal. Com es pot comprovar a la següent imatge hi ha un total de 144 parades de bus a Mataró.

Fig. 28. Parades de bus i terme municipal mostrats en pantalla.

Seleccionem ParadesBus, Terme_municipal i Linies en els desplegables del nostre mòdul.

Fig. 29. Omplir desplegables del mòdul per Parades de bus.

Una vegada pitgem al botó Calcular Voronoi, obtindrem un resultat com el següent, abans però haurem d’esperar uns segons ja que al haver-hi 144 parades de bus, el programa necessita més temps per executar l’algoritme. Per tant no serà de forma immediata com en els altres dos exemples. Com podem veure  a la imatge s’han necessitat 408 línies per completar el diagrama de Voronoi.

Fig. 30. Diagrama de Voronoi per Parades de bus.

En aquest exemple utilitzem el primer mètode de intersecció espacial per arribar al resultat final desitjat. Anem a Analisis> Interseccion espacial i omplim els camps de la mateixa manera que en l’exemple de les escoles bressol.

Fig. 31. Intersecció espacial entre línies i terme municipal.

Al prémer el botó Acceptar obtindrem el Voronoi final de les parades de bus.

Fig. 32. Polígons Voronoi resultants sobre parades de bus mitjançant intersecció espacial.

Si afegim les illes a la llegenda, l’aspecte ens quedaria de la següent forma.

Fig. 33. Polígons Voronoi resultants amb la capa d'illes.

Apliquem la ortofoto per visualitzar el resultat de la millor forma possible.

Fig. 34. Polígons Voronoi resultants amb la vista Aérea.

Consultes

Aquest mòdul no només es pot utilitzar per classe d’entitats que estiguin a la base de dades connectada. Aquesta aplicació com la majoria de les creades en el CCU també pot utilitzar consultes que estiguin en memòria. La particularitat de la consulta es que pots seleccionar d’una mateixa classe d’entitat les entitats que tu vols, i després executar el mòdul sobre aquella selecció feta.

Si per exemple volem fer el Voronoi dels CEIPcon en el centre Urbà de Mataró com és mostra en la fotografia, hi ha un CEIPcon que quedaria fora d’aquest centre urbà. El problema vindria, ja que al executar el mòdul ho faria per totes les entitats, inclús la que queda fora del territori, per tant una consulta ens pot permetre eliminar aquesta entitat en memoria sense modificar la base de dades i poder realitzar el diagrama de Voronoi de forma satisfactòria.

Fig. 35. CEIPcon i centre urbà en pantalla.

Per crear la consulta desitjada, anem a Analisis>consulta espacial. Seleccionem CEIPcon en el desplegable seleccionar entidades en: . Després haurem de seleccionar la opció “estan contenides en” en el segon desplegable. I Per últim seleccionarem Centre Urba en el tercer desplegable. Finalment introdüirem un nom per la consulta de sortida i pitjarem “Aceptar”.

Fig. 36. Consulta espacial.

Per tant aquesta consulta el que ens farà serà seleccionar totes les entitats de CEIPcon que estiguin dintre del centre urbà.

Fig. 37. Nova consulta espacial representada a la llegenda.

Ara ja podrem utilitzar el mòdul per la consulta desitjada.  Simplement accedim al mòdul i en el desplegable de selecció d’entitat puntual, seleccionem la consulta creada en el sub-desplegable de consultes.

Fig. 38. selecció de la consulta creada al desplegable.

Com en exemples anteriors, seleccionem l’àrea delimitada en aquest cas seria el centre urbà i la classe d’entitat de tipus línia de sortida.

Fig. 39. Omplir desplegables del mòdul per escoles bressol.

Obtenim el Voronoi de forma perfecte sense tenir en compte la entitat exclosa.

Fig. 40. Polígons de Voronoi per la consulta creada.

Utilitzem la opció “dividir entidades” per obtenir el digrama final.

Fig. 41. Polígons de voronoi finals per la consulta creada mitjançant dividir entitats.

 

Mòdul generador de polígons de Voronoi (1/2)

En aquesta entrada es comentarà de forma extensa el nou mòdul del CCU “generador de polígons de Voronoi” des de el punt de vista del programador.

La funció d’aquesta nova aplicació serà la de poder generar zones d’influència per els diversos centres proveïdors de servei en Mataró, així com Escoles, CAPS, parades de bus etc. Aquest sistema s’implementarà amb un mètode geomètric anomenat Voronoi

Els diagrames de Voronoi són un dels mètodes d’interpolació més simples, basats en la distància euclidiana, sent especialment apropiada quan les dades són qualitatives. Es creen en unir els punts entre si, traçant les mediatrius dels segments d’unió. Les interseccions d’aquestes mediatrius determinen una sèrie de polígons en un espai bidimensional al voltant d’un conjunt de punts de control, de manera que dintre de cada polígon o regió la distància a un punt de control associat és sempre menor que a qualsevol altre punt de les altres regions.

Fig. 1. Exemple de diagrama de Voronoi

Algoritme utilitzat

Primer de tot és comentarà l’algoritme utilitzat per du a terme la nova aplicació, trobats a la pagina web de l’informàtic japonès Takashi Ohyam.

http://www.nirarebakun.com/voro/evoro.html

El programa final ha constat  d’una sèrie de mòduls i un formulari.

Fig. 2. Llistat de mòduls i formulari del projecte.

 

Formulari

Primer de tot s’ha creat el formulari, que serà la finestra que apareixerà una vegada pitgem per accedir al mòdul creat. El formulari el podem veure a continuació.

Fig. 3. Formulari de la aplicació creada.

Ara comentaré part per part els diferents desplegables i botons utilitzats en el formulari.

  • En el primer desplegable hem de seleccionar la classe d’entitat puntual sobre el qual volem crear els polígons de Voronoi.

Fig. 4. Desplegable per seleccionar l'entitat puntual.

Fig. 5. Codi relacionat amb el desplegable de selecció d'entitat puntual.

  • En el segon desplegable, haurem de seleccionar la classe d’entitat d’àrea que volem que limiti els polígons de Voronoi. En el nostre cas el terme municipal de Mataró.

Fig. 6. Desplegable per seleccionar l'àrea delimitant.

Fig. 7. Codi relacionat amb el desplegable de selecció d'àrea delimitant.

  • Per últim, seleccionarem la classe d’entitat de línia de sortida. És a dir, on volem que vagin a parar les línies o segments que formaran els polígons de Voronoi finals.

Fig. 8. Desplegable per seleccionar la sortida de les línies dels polígons.

Fig. 9. Codi relacionat amb el desplegable del desplegable de selecció de sortida.

  • Botó “calcular Voronoi”.

Aquest botó el que ens farà serà primerament carregar les dades seleccionades als                 quadres de diàleg del formulari, utilitzant la subrutina “Carregar_dades”.

Fig. 10. Botó calcular Voronoi.

Fig. 11. Codi que va darrere del botó "Calcular Voronoi".

I finalment executarà la subrutina Voronoi_mapa ( que conté l’algoritme ) i d’aquesta manera formarà els polígons desitjats. Aquesta subrutina serà comentada més endavant en l’explicació del mòdul voronoi_code.

  • Botó Sortir

El botó sortir, simplement seria per poder sortir de la aplicació en qualsevol moment.

Fig. 12. Botó sortir.

Fig. 13. Codi que va darrere del botó sortir.

Mòduls

Pel que fa als mòduls, comentaré els dos mòduls principals ( “Obtencio de coordenades”i “voronoi_code”) ja que la resta són creats de forma automàtica quan creem el Geomedia Comand Wizard, que seria el plug-in per tal de poder utilitzar l’aplicatiu VB en el geomedia (Explicat en l’annex II). Tot i que com es veurà més endavant també s’afegeixen algunes funcions necessàries en el mòdul “OperacionsGM”.

Mòdul Obtenció de coordenades

Aquest mòdul és essencial per poder passar al algoritme les coordenades de les diferents classes d’entitats puntuals o serveis sobre les quals haurà de crear les zones d’influència (polígons Voronoi).

El mòdul consta de la subrutina “proximitat”, que li entren els paràmetres rs, entitats.SelectedItem i entitats.ConnectionName procedents de la subrutina “carregar_dades” esmentada al formulari.

  • El primer pas per obtenir les coordenades és afegir a la taula de l’entitat puntual escollida per l’usuari les coordenades X Y d’aquesta. Això és codifica de la següent manera:

  • Generem un recordset afegint a la taula de l’entitat puntual escollida els atributs funcionals que s’han definit anteriorment (Xep, Yep). Un recordset és una estructura utilitzada en programació que permet emmagatzemar informació des d’una taula d’una base de dades.

 

  • Passem el resultat de la consulta (recordset) a una array per les X i per les Y.

  • Obtenim les coordenades en les variables X i Y, que seran utilitzades més endavant en el mòdul Voronoi_code, de cara al algoritme.

Modul Voronoi_code

Aquest mòdul consta bàsicament del algoritme i de subrutines i funcions d’ajuda per que es puguin crear els polígons de Voronoi sobre les coordenades de les classes d’entitats puntuals obtingudes gràcies al mòdul anterior.

La subrutina principal del mòdul és “voronoi_mapa”que podem veure comentada per part seguidament.

  • Primerament, definim les variables i recordsets necessaris per la utilització del programa.

  • Calculem els paràmetres ample i altura que seran utilitzats més endavant en l’algoritme.

  • Establim alguns recordsets necessaris i definim les noves variables utilitzades en l’algoritme. També cridem la funció “borrar_entitat”, que ens permetrà cada vegada que obrim el mòdul buidar la classe d’entitat de línia que he utilitzat per crear el Voronoi anterior.

  • Definim la variable NNN que determina el nombre d’entitats que te la classe d’entitat seleccionada. També  a última hora es van haver d’augmentar el número de posicions dels vectors utilitzats en l’algoritme, ja que en alguns casos on hi havien moltes entitats no acabava de completar l’algoritme per totes elles.

  • Comença l’algoritme amb el següent bucle, ens carrega en memòria totes les entitats en les coordenades corresponents, de cara a crear els polígons.

  • ad(i-1), rep el valor del mòdul de les coordenades X i Y de cada punt i l’utilitza alguns cops en l’algoritme


  • Cridem la subrutina “hSort” passant-li els paràmetres NN, ad, ax, ay calculats anteriorment.


  • Es va executant el gruix de l’algoritme (explicat en l’apartat algoritme i codi inicial) .

  • Finalment amb la funció  Inserta_linia es formen els segments dels polígons a partir d’un punt inicial i un punt final, on les coordenades dels punts serien respectivament x0= kx(k-1) y0= Ky(k-1) i les finals x=kx(k2-1) i y= Ky(k2-1).

Els segments resultants es guarden en un recorset anomenat “Recordset_linia”.

  • Per últim, haurem de mostrar el resultat aconseguit en el mapa i la llegenda

– Seleccionem l’estil de la línia i el nom que li volem posar al resultat.

– Introduïm la entrada de la llegenda en la primera posició

  • Per compilar l’arxiu el programa creat, haurem d’anar a Archivo> generar nomprojecte.dll com podem veure en la següent captura d’imatge. En cas, que no doni cap error de compilació se’ns haurà creat un arxiu ddl i estarà llest per carregar-ho al Geomedia.

Fig. 14. Generar.dll.

Cada vegada que s’hagin fet canvis en el programa, s’haurà de crear una nova dll, de cara a que els canvis sorgeixin efecte en el Geomedia. Com també haurà d’estar tancat el Geomedia Professional m’entres és realitza aquest procés, ja que en cas contrari donarà error.


 


 

 

 

 

 


 

 

Aplicatiu per mostrar trajectes a entitats per ordre de proximitat

En anteriors entrades s’ha comentat la possibilitat de visualitzar la proximitat de la població com també d’obtenir els trajectes existents respecte a una entitat destí. En el nostre cas, s’ha vist aplicat precisament a les Escoles de Bressol Municipals.

Per això, i per la importància que suposa disposar de la informació necessària per tal de determinar si un servei es troba a prop del nostre domicili o bé lluny segons les diverses trajectòries obtingudes al destí desitjat i tenint present, en tot moment, les diverses zones d’influència possibles, s’ha desenvolupat l’aplicatiu de “cerca entitat propera”.

Aquest aplicatiu té la mateixa finalitat que l’utilitzat per cercar els camins a les tres Escoles Bressol més properes, però en canvi, ens permet fer la cerca de qualsevol entitat que es desitgi com també mostrar les dades entre un rang de 1-5 noms d’entitat diferents. Per tant, es pot triar el mode de cerca dels valors d’entre 1 i 5 entitats destí.

Figura 1: Aparença de l’aplicatiu de cerca camins a entitats properes.

Tal i com s’observa, l’aparença de l’aplicatiu és el mateix que l’utilitzat en la cerca de camins a les 3 Escoles més properes, amb la diferència d’haver modificat la grandària de la graella (Datagrid) per tal de poder arribar a visualitzar, en condicions, fins a 5 nom d’entitat diversa.

Per tant, com ja s’ha comentat, aquest nou aplicatiu serveix per indicar els trajectes des de qualsevol adreça de la ciutat a una sèrie d’entitats per ordre de proximitat, i no només limitat a les tres entitats més properes. Igualment el propòsit d’aquest mòdul és verificar les taules de proximitat generades pel mòdul generador de taules de proximitat, sense limitació en el tipus d’entitat ni en el nombre d’entitats properes. Tenint present que la verificació de les taules de proximitat ens és de molta utilitat pensant en la seva publicació via WFS tal com ja s’ha comentat a l’entrada al bloc anomenada: WFS Interacció amb mapes.

Aquesta taula de trajectes de proximitat s’haurà de crear amb anterioritat utilitzant el mòdul “càlcul de distàncies mitjançant el graf” en el qual tal i com s’observa a la Figura 2, es tria el camp d’origen (de quina direcció es parteix) i el camp destí (qualsevol entitat). També és possible triar la unitat de mesura que serà precisament l’observada com a resultat de distància o bé cost de l’aplicatiu. Apareixent els diversos filtres a triar, entre els quals pren importància el número d’entitats que seran amb les quals es farà l’estudi a l’aplicatiu en qüestió i les que es mostraran a la graella i mapa de resultats finals.

Figura 2: Aplicatiu de càlcul de distàncies mitjançant el graf.

Un altre aspecte important és el fet d’emmagatzemar la taula resultant de l’execució del mòdul, doncs s’haurà de triar quin serà el destí de la connexió creant tant la taula de trajectes com de proximitat.

I precisament, un cop es disposi d’aquesta taula, en el següent desplegable dins el mòdul creat s’ha de buscar la connexió on es troba emmagatzemada la BBDD que la conté.

Figura 3: Selecció de la BBDD de trajectes

En el present exemple s’ha creat una taula de trajectòries expressament del Veïnat de Mata tenint com a destí tant Escoles Bressol com Llars d’Infants. I triant 5 entitats destí que es visualitzaran a sobre el mapa com en la graella present a la part inferior de l’aplicatiu.

Figura 4: Incorporació de les dades a fer la recerca dins l’aplicatiu.

Un cop ja s’ha introduït el carrer, el número i la BBDD on es troba la taula de trajectes creada prèviament, s’executa l’aplicatiu: “INICI”.

En la següent imatge s’observa com apareixen les 5 entitats més properes, acompanyades de la distància existent entre el número de carrer (Número de portal) fins les 5 entitats de destí més properes. Aquestes es troben ordenades de més proximitat a menys.

Figura 5: Resultats obtinguts en l’execució.

Tal i com s’observa, apareix la columna del nom de l’entitat com també de la Distància/cost. Aquesta última columna indica la distància existent des del número de policia en la qual ens trobem (Veïnat de Mata, 5) fins a cadascuna de les entitats i que es poden trobar mesurades tant en distància, calculada en metres, com també en cost calculat en temps (segons).

En el present cas, el més pròxim a la situació definida (Núm. Portal 05490005x) és la Llar d’infant Snoopy II (3318 m) i en canvi la que es troba més lluny és el Grup d’Escoles Mataró GEM-Primària (3848m).

En la Figura 6 s’observa sobre el mapa quins són els 5 trajectes a les entitats destí. Cadascun marcat amb un color i gruixut diferent depenent de la seva proximitat fent que sigui més fàcil la visualització i entesa.

Figura 6: Visualització sobre el Mapa els camins a les Entitats obtingudes.

La validesa d’aquests trajectes obtinguts farà que es pugui realitzar posteriorment una publicació via WFS de forma satisfactòria i que per tant sigui possible observar la visualització via Internet (interacció amb mapes).

En resum, el fet de disposar d’aquest aplicatiu permetrà realitzar uns estudis més precisos respecte els diversos trajectes obtinguts disposant de més flexibilitat a l’hora de poder triar el número d’entitats destí, com també es podrà afinar en la cerca del recorregut òptim. Aquesta flexibilitat,  s’observa també en el fet de poder mostrar els resultats tant en distància (metres) com en cost (segons) tal i com succeïa en el mòdul de tria de les Escoles Bressol més properes. El fet de fer servir una variable temporal fa que la mesura obtinguda sigui molt més real respecte a la proximitat a cadascuna de les entitats, però en canvi requereix un model de velocitats més detallat i adequat.

Relació entre la capacitat d’un centre proveïdor de serveis i la seva àrea d’influència

 

Ja s’ha vist, en aquest mateix Bloc, com associar la població amb el territori, sabem que pot quedar associada a les Illes, parcel·les i els portals de la ciutat, i també s’ha vist com segmentar aquesta mateixa població segons determinats criteris, franja d’edat, estudis, procedència geogràfica, nacionalitat etc.

Ara anem a explicar com donat un determinat centre proveïdor d’un servei, per exemple un centre educatiu,  podem delimitar una zona del territori immediatament proper, de manera que ‘casin’ la capacitat del centre per una part i la població ‘target’ d’aquest zona propera per altra.

No cal dir que la vista del territori estudiat, en aquest cas la ciutat de Mataró, amb els centres proveïdors  del servei i les respectives àrees properes d’influència, pot donar una imatge, al menys teòrica, de la cobertura o no cobertura de les necessitats del global de la població en el servei objecte d’estudi.

Des d’un punt de vista tecnològic, és a dir, de les eines que ens poden permetre obtenir aquesta representació gràfica, un SIG (Sistema d’Informació Geogràfica) per sí mateix no ens permet obtenir-ho d’una forma fàcil i immediata. Per tant hem hagut d’anar a les funcionalitats base del nostre SIG, en aquest cas el GeoMedia, per generar un procés iteratiu i convergent de modificació de la zona d’influència fins que el nombre d’habitants continguts a la zona, coincideixi amb la capacitat de servei del centre estudiat.

Anem a veure-ho per un cas concret que coneixem. Suposem que volem estudiar la implantació de les Escoles Bressol Municipal a la ciutat de Mataró, recordem la situació dels centres en la figura 1.

Fig 1. Situació de les Escoles Bressol Municipals a la ciutat de Mataró.

Ja que els usuaris de les Escoles Bressol són nens entre 0 i 2 anys, el que s’ha de fer és preparar una segmentació de la població total que només tingui en compte aquesta franja d’edat, i també s’ha d’escollir si ho agreguem per Illes, parcel·les o portals. Utilitzarem el recurs basat en Visual Basic que ja vam explicar, la interfície seria la de la figura 2.

Fig 2. Escollim els habitants entre 0 i 2 anys agrupats per Illes.

Això vol dir exactament que tenim associat a cada illa de cases el nombre de nens entre 0 i 2 anys que hi ha empadronats en algun habitatge de l’illa. Ens cal també tenir associat a cada entitat Escola Bressol el nombre màxim de nens que pot acollir. A partir d’aquestes dues dades podem iniciar el procés de càlcul pròpiament dit. Cal tenir en compte que l’àrea d’influència resultant serà, probablement, diferent per a cada entitat ja que dependrà tant de la capacitat del centre com de la densitat que hi hagi a les illes del voltant de cada centre de nens entre 0 i 2 anys.

Fixem-nos en la interfície de càlcul de les Àrees d’Influència de la figura 3, aquí podem veure el formulari que s’ha d’omplir per iniciar el càlcul.

Fig 3. Interfície per generar les Àrees d’Influència

Els camps més importants són:

Tipus d’agregació: ILLES [podrien ser també Parcel·les o Portals]
Entitat Base: Escoles Bressol [a partir de les quals generem les Àrees d’Influència]
Paràmetre del Radi Incial: 400 [valor associal al radi de les Zones d’Influència incials]
Cobertura: 100% [si volem que Tota la població del rang tingui Escola Bressol, o només una part, en aquest cas aquest valor seria de menys del 100%]
Possibilitat de comptar els habitants que no estàn a cap zona: Sí
Possibilitat de fer un mapa temàtic de la població no inclosa: No
Treballar per Trams: No [Possibilitat d’agafar Zones d’Influència Circulars o a partir del Graf de Trams de Carrer]

Si premem el botó de ‘Calcular l’Àrea d’Influència’ obtenim el que surt a la figura 4.

Fig4. Àrees d’Influència de les EB Municipals

A l’anterior figura es pot veure l’Àrea d’Influència de cada Escola Bressol Muncipal on s’ha aproximat la població entre 0 i 2 anys de cada zona i la disponibilitat de places de cada centre. Encara que no es vegi a la figura 4, s’ha calculat igualment el  nombre de nens d’aquestes edats que queda fora del conjunt d’àrees, que és per a tota la ciutat de 1972. Cal pensar també que segons la mena d’agregació que es faci l’aproximació entre la xifra del recompte de nens dins de la zona i la del nombre de places serà més o menys propera, si comptem per illes l’error que es pot cometre és molt més gran que si comptem per parcel·les o portals, ja que a l’incloure o no una illa el nombre d’habitants de la zona canvia molt bruscament.

També hi ha la possibilitat de fer un mapa temàtic de tota aquesta població que queda fora, d’aquesta manera les illes més fosques són les que tenen més nens ‘exclosos’ en la situació actual de les Escoles Bressol Municipals i considerant una cobertura del 100%. Vegeu la figura 5.

Fig 5. Àrees d’Influència de les EB Municipals, amb mapa temàtic per illes de la població exclosa

Es imporant pensar que el que s’ha vist per les Escoles Bressol Municipals, es pot generalitzar a qualsevol grup d’entitats que ofereixin un servei determinat i de les que coneixem la seva capacitat en el servei, per exemple els Centres d’Assistència Primària, els Centres Cívics, les institucions socio-sanitàries, etc.

En un cop d’ull, si mirem per exemple la figura 5 podem saber a quins llocs de la ciutat seria més interessant que hi hagués un nou centre o a on no caldria que n’hi hagués un d’existent. L’eina permet fer simulacions modificant la ubicació i la capacitat d’un centre en concret observant com varien el nombre i distribució de la població no inclosa.

Igualment tot el que s’ha fet per les Àrees d’Influència circulars, a vista d’ocell, es pot fer també per les Àrees d’Influència seguint el Graf de Trams de Carrers, considerant els trajectes del vianants i donant una imatge més real de la capacitat d’accedir a un determinat servei.  Però això ja ho comentarem més endavant.

Nou concepte de Zones d’Influència lligat als desplaçaments de la població

 

Tots els Sistemes d’Informació Geogràfica (SIG) tenen el concepte de Zona d’Influència, normalment anomenat ‘buffer’, que consisteix en agafar una classe d’entitat (taula d’entitats) i generar en el seu entorn una àrea que amplia la frontera de les entitats una certa distància i respon a la idea de zona d’influència o zona de proximitat o de veïnatge.

Per tant si la classe d’entitat de la que volem definir el ‘buffer’ és una àrea, tal com hem dit, el seu ‘buffer’ és una altra àrea que comprèn l’entitat i té més o menys la mateixa forma, però si la classe d’entitat és lineal el seu ‘buffer’ és una àrea de tipus rectangular que pot estar arrodonida en els extrems  i si la classe d’entitat és puntual el seu ‘buffer’ és una àrea de tipus circular.

Un paràmetre característic de les zones d’influència és el ‘radi’ o distància, en realitat el concepte més adequat és el de distància ja que ens indica a quina distància de l’entitat base es troba el límit de la seva zona d’influència, però que en el cas d’entitats  puntuals, com que la zona d’influència és circular, sí que coincideix amb el radi d’aquest cercle.

Fig 1: Zones d’Influència sobre les Zones Verdes a una distància de 50 m.

A la figura 1 podem veure un exemple de les zones d’influència sobre entitats tipus àrea, com és el cas de les zones verdes accessibles de la ciutat de Mataró, en aquest cas s’ha considerat una distància fixa de 50 metres. Això podria tenir un sentit de comptar , per exemple, quants ciutadans viuen a menys de 50 metres d’una zona verda.

Un altre cas molt comú d’utilització de les zones d’influència seria veure quants ciutadans estan a més d’una determinada distància d’un centre proveïdor de serveis, com un Centre d’Assistència Primària (CAP) o un centre docent o un centre cívic, en aquest cas són molt útils els ‘buffers’ a l’entorn d’aquestes entitats, que normalment són representades com a entitats puntuals i per tant les seves zones d’influència seran circulars. Això ho podem veure a la figura 2 pel cas d’Escoles Bressol Municipals de la ciutat de Mataró.

Fig 2: Zones d’Influència a l’entorn de Escoles Bressol Municipals a 250 m

En aquesta figura es veuen els típics cercles que corresponen a les zones d’influència de les entitats puntuals i que podrien servir, tal com hem dit, per veure quanta població està a menys de 250 metres d’una Escola Bressol Municipal i quanta a més, per exemple.

Aquesta característica de dibuixar ‘buffers’ a l’entorn d’entitats és molt utilitzada en SIG quan es volen fer operacions espacials, com ara unió, intersecció, combinacions analítiques, agregacions etc. En el cas de les Escoles Bressol, es pot fer una agregació de tota la població (o dels infants entre 0 i 2 anys) que hi ha  dins de cada zona d’influència a partir de les dades que tenim prèviament agrupades per Illes de cases, parcel·les o portals, tal com s’ha descrit en un altre ‘post’ en aquest mateix bloc, indicant que es sumen tots els habitants que pertanyen a les entitats (siguin aquestes Illes, parcel·les o portals) que estan contingudes dins de la zona d’influència corresponent.

De totes maneres, en totes les operacions que tenen a veure amb la població i amb els seus desplaçaments per la ciutat, aquesta mesura de la proximitat directe que ens proporciona el ‘buffer’ dels SIG no sempre ens és útil, ja que si volem dir ‘nens que hi ha a menys de 250 m de l’Escola Bressol’ aquest concepte de ‘buffer’ ens mostra els nens que viuen  a menys de 250 m, però en línia recta, ja que és el radi de la zona d’influència. El que seria més real seria indicar els nens que hi ha a 250 m seguint la xarxa de carrers, comptant que els nens aniran a l’escola circulant pel carrer. També seria útil considerar en comptes de distància, el seu equivalent en temps, nens que hi ha a menys de 5 minuts del centre, i en aquest cas tenint en compte les facilitats o inconvenients que presenten els carrers, pendents, obstacles ,escales etc.

Això ens ha de portar a definir una nova zona d’influència lligada a la xarxa de trams de carrer (anomenem tram el segment de carrer entre cruïlla i cruïlla). En primer lloc considerarem la xarxa com a una entitat lineal arborescent que creix a partir de l’entitat puntual origen (en aquest cas serien les Escoles Bressol). Vegeu la figura 3

Fig 3. Graf de Trams de Carrer a partir de les Escoles Bressol fins a 250 m de distància

Efectivament  a la figura es poden veure els recorreguts a partir de l’entitat origen que faria un vianant anant en qualsevol direcció (sense passar dues vegades pel mateix lloc) i recorrent un màxim de 250 metres. Com es pot veure els possibles recorreguts depenen de la morfologia de la xarxa de carrers en cada lloc de la ciutat, a part de la pròpia distància a recòrrer. En aquest cas el sentit de distància és molt més real que considerant les zones d’influència clàssiques amb distància a vista d’ocell.

Com que volem tenir una zona d’influència amb les mateixes característiques que la definida de forma clàssica, hem de convertir aquest conjunt de trams en un àrea, agafant precisament un ‘buffer’ sobre aquesta entitat lineal (abans hem hagut de convertir el conjunt de trams en una entitat lineal única)

Fig 4. Zones d’Influència sobre el Graf de Trams de Carrer, distància 250 m

A la figura 4 es pot veure l’efecte d’agafar un ‘buffer’ sobre cada conjunt de trams desplegats a 250 m de la seva entitat origen. Aquest ‘buffer’ s’agafa a 20 m de les línies del graf de trams.

D’aquesta manera es poden continuar aplicant les operacions espacials que ens calguin pels nostres càlculs com si fossin àrees circulars, però amb l’avantatge d’uns resultats molt més realistes quan treballem amb població i distàncies.

 

Una altra cara de la mateixa moneda. Comptar entitats properes

Hem vist en el ‘post’ anterior d’aquesta secció com podem visualitzar la proximitat de la població a un centre de serveis utilitzant el recurs dels mapes de colors o mapes temàtics, ho hem vist aplicat a les Escoles Bressol Municipals.

Una altra manera de posar de manifest si un determinat servei està a prop del teu domicili o està més lluny, seria comptant quants centres proveïdors d’aquest servei tens com a màxim a una determinada distància, per exemple a menys de 200 metres de casa teva, en aquest cas la informació és un pel diferent, ja que també dóna una idea de saturació, o de possibilitats d’escollir, que conformen una altra categoria, de qualitat d’atenció.

En resum podem saber si estem a prop d’una determinada Escola Bressol si la nostra illa està pintada en un to de gris molt clar o també podem saber si tenim una, dues, tres o cap Escoles Bressol a una determinada distància de la nostra illa de cases.

Aquesta gradació de cap, una, dues, tres etc. es pot mostrar també en forma de mapa temàtic on cada color representa, no un rang, com fèiem en el cas de les distàncies sinó un nombre d’entitats properes.

Tornem a un exemple:

Compta les Escoles Bressol a menys de 400 de cada illa de cases

Aquí es veuen les Illes que tenen una Escola Bressol a menys de 400 m de distància (gris clar) les que en tenen dues (gris fosc) i les que no en tenen cap a menys de 400 m (blanc)

També podem fer un temàtic de la població de nens entre zero i dos anys que viuen en illes que estan a més de 400m de qualsevol Escola Bressol

En groc la població de les illes que estan a ms de 400 m de cada illa de cases

Les illes en groc més fosc corresponen a les que tenen un nombre més gran de nens entre zero i dos anys que haurien de desplaçarse més distància per anar a un centre. Això està fet pel cas de 400 m però ho podríem fer per a qualsevol distància.

Altres exemples d’aplicació d’aquesta mesura de quantitat de centres proveïdors de servei que tenim a una determinada distància màxima ho podem aplicar a les parades d’autobús, de taxi, de contenidors d’envasos de vidre etc.

Mirem ara un exemple aplicat a les Zones Verdes Accessible, podem mesurar quantes Zones Verdes Accessible tenim a prop, i a on viu més gent en les illes mes allunyades

Tematic de nombre de Zones Verdes Accessibles a menys de 100 de cada illa de cases i de la població exclosa

A la llegenda podem veure els dos temàtics: en tons de gris els que indiquen el nombre de Zones Verdes Accessibles a menys de 100 m de la nostra illa de cases i en tons de groc els habitants, en general, que viuen en cada illa per rangs equivalent.

Llegenda dels dos temàtics, el de la població que queda fora i els de les entitats a menys de 100 m de distància

Per tant visualment s’obtè informació del punts més faltats i també dels punts més ben situats des d’aquest punt de vista. Aquesta informació en matisa la que obteníem nomes de la proximitat. També veiem que podem fer dues menes de mapes temàtics, quan es tracta de variables contínues, en aquest cas es fan intervals o rangs i quan es tracta de variables discretes on hi ha un color per a cada valor.

Primera entrada al bloc: Una mica d’història

 

La nostra idea és que amb les entrades que es vagin fent en aquest bloc anem donant a conèixer tota la feina que s’ha dut a terme  dins del grup de treball ‘Centre de Coneixement Urbà’ des de fa quasi deu anys.

I una forma de fer palesa aquesta progressió és intentar reproduir aquí d’una forma quasi cronològica, les idees i els temes que hem anat desenvolupant al llarg del temps, estalviant-nos ,és clar, les anades i vingudes típiques de qualsevol procés creatiu i científic.

Tot va sorgir per unes ‘Jornades de Coneixement Urbà’ que es van fer a la EUPMt adreçades, l’any 2003, als ajuntaments i organismes públics. Aquestes entitats per la seva pròpia naturalesa han de treballar amb gran quantitat de dades sobre el territori, que per aquesta mateixa raó han d’estar perfectament geolocalitzades, aquest és un terme gairebé nou aleshores, però que amb els anys ens ha resultat familiar a tots, primer amb el desenvolupament i generalització dels receptors de GPS i després amb l’eclosió dels telèfons mòbils diguem-ne intel·ligents.

Per tant ja tenim un punt, la posició precisa en un lloc d’un element, sigui aquest una escola, una parada d’autobús , una cruïlla, un banc o un restaurant,  i aquesta situació la podem veure dins d’un model del territori com seria un plànol de més o menys detall, o d’una imatge de la realitat com seria una fotografia aèria posem pel cas.

Tenim també unes eines informàtiques que treballen amb aquestes  representacions  d’objectes que volen ser models d’una realitat ciutadana o territorial, aquestes eines són els Sistemes d’Informació Geogràfica (SIG) que a més a més de representar (dibuixar) ens permeten emmagatzemar  informació sobre els objectes que anem ubicant, això és un gran pas respecte al sistema clàssic de plànols sobre paper, on necessariament la informació ha de ser limitada. Per tant a més a més de la posició (coordenades)  d’una parada d’autobús podem tenir coneixement de les línies que hi passen , la periodicitat, els horaris, la data de construcció, si està coberta o no, la mitjana de viatgers etc, qualsevol dada que considerem rellevant podrà estar associada a un punt, una línia o una àrea ubicades en una situació concreta.

Malgrat tot, malgrat ser una eina molt poderosa la que tenim amb els SIG, ens cal anar més enllà de la representació d’entitats i dades associades amb una localització geogràfica concreta. Pensem que tenir tota la xarxa de canonades d’aigua i clavegueram, per exemple, amb els seus dipòsits, bombes i vàlvules és summament important de cara a tenir al dia la base de dades del que hi ha en cada moment a la xarxa i del seu estat de funcionament, però ja us dic, nosaltres volíem anar més enllà de la informació precisa i ordenada sobre el territori.

Precisament aquesta mateixa localització de la informació ens permet extreure una altra informació, diguem-ne de segon nivell, que ja representa un avenç sobre la mera ubicació de les dades. Ens anem acostant a un dels primers exemples que ens van permetre intuir la potència d’aquests recursos informàtics si els sabíem treballar adequadament, els de les Escoles Bressol.

Vam començar amb les Escoles Bressol Municipals de Mataró i és un tema que hem continuat treballant al llarg del temps. Podem ubicar les Escoles Bressol sobre un plànol de la ciutat i podem veure si tenen una distribució uniforme, si qualsevol ciutadà te un centre a una distància no gaire gran del seu domicili o si per al contrari  hi ha zones molt desproveïdes d’aquest servei.  Ens  sembla que  podem copsar tot això amb la simple visió del seu emplaçament, i en part és veritat i aquesta és la base de la ‘gran millora’ que representa la informació visual respecte a la informació només alfanumèrica, i d’això ens aprofitarem en les nostres anàlisis futures. Però veurem que encara podem incrementar més el coneixement del tema de les distàncies  i la cobertura amb l’ajuda del recursos del SIG.

Bé, ja va siguent hora de començar a veure algunes imatges. En la propera figura veiem les Escoles Bressol com a punts sobre el plànol de la ciutat representada simbòlicament com a un conjunt de illes de cases, això ens permet veure també el carrers. La informació en aquest sentit és clara, i si cliquem damunt del punts que representen les escoles obtenim la informació rellevant que tenim sobre aquella escola en particular.

Escoles Bressol Municipals sobre el conjunt de Illes de Mataró

Un canvi important en la informació que s’ofereix a l’usuari és quan veiem un mapa temàtic, mapa de colors, on cada color representa una determinada distància des de cada illa de cases a l’Escola Bressol més propera, això és el que mostra la següent figura:

Mapa temàtic de les distàncies de cada Illa a l’Escola Bressol més propera

Això ja és una informació més elaborada. Aquí ja es veuen les illes de cases que estan més properes a alguna escola en una gradació de gris més clar a més fosc, el darrer rang, les illes més allunyades resten en blanc. Això d’un cop de vista ens dóna molta informació sobre els llocs de la ciutat on és més fàcil accedir a una Escola Bressol Municipal i on no ho és tant.

Cal dir que fins ara la informació ha estat només de tipus geomètric, és a dir, només basada en la distribució dels objectes, Escoles Bressol i illes, però encara podem anar més enllà i saber dels llocs més allunyats on hi ha més concentració de gent.

En aquest cas la gradació de colors és de tons de groc, com més foscos més gent. Parlant de gent, en aquest cas no són només habitants sinó que són possibles usuaris del servei de les Escoles Bressol, ho sigui nens entre 0 i 2 anys.

Mapa temàtic de distàncies a les Escoles Bressol (gris) i de població en el rang mes allunyat (groc)

Pensem en la quantitat d’informació que ens dóna una sola imatge i les possibilitats que te la seva explotació en la gestió i la presa de decisions. Això és el que ens va motivar a continuar aprofundint en el tema mitjaçant la creació del CCU.