Workflow
Esta página es la documentación de la progamación para procesar las tablas base de HGIS de las Indias hasta llegar a los archivos geoespaciales y las páginas informativas de los lugares y territorios en la infraestructura dokuwiki.
#1 01_thegeom_add_XY.py
Este progama python añade coordenadas y territorios "genéricos" a los lugares de la feature class “a_gz_the_geom” en la geodatabase the_geom_gdb: país, región (=aproximadamente las audiencias hacia 1787); provincia (aproximadamente las intendencias y gobernaciones hacia 1787) y partido (divisiones de esas provincias, pero no tan claramente atribuibles a un momento exacto). Esas informaciones genéricas sólo sirven para desambiguar entre diferentes lugares homónimos, nada más.
#2: 02_thegeom_to_csv.py
Este programa convierte la feature class “a_gz_the_geom” en un archivo csv.
#3: Ejecutar macros en MS-Access
Este paso hay que hacerlo en MS-Access, abriendo “C:\\Hgis\\HGIS.accdb”!
Hay que ejecutar primero el macro “AA_Mastermacro” para los pasos 3a-3i; y luego el macro “AAA_Export Tables” para el paso 3j:
- 3a: Importa el csv creado #2 a la base de datos.
- 3b: Calcula la cronología que relaciona a los polígonos LCG con las entidades territoriales en todos los niveles de reconstrucción. En el paso se crean las tablas efímeras tabla_LCG_Alle_Niveaus y tabla_LCG_ZZZ.
- 3c: Añade las instancias de las entidades territoriales y combina las dos cronologías en una. Resultado es la tabla_Niveles.
- 3d: Remplaza caracteres especiales como ñ en algunos campos para poder usar esos textos en enlaces y URL.
- 3e: Calcula URLs relativos para uso en la dokuwiki.
- 3f: Exporta la tabla_Niveles.
- 3g: Calcula campos modelo para las fichas de las entradas de la BDD en la dokuwiki.
- 3h: Combina las variadas cronologías de los diferentes aspectos recopilados para los lugares del gazetteer, como su posición en la iglesia católica, las coordenadas, el nombre, la categoría de lugar y su estatus como república. El resultado es la creación de la tabla_gz_info_1.
- 3i: Similar a 3h, combina la cronología de la tabla_gz_info_1 con la tabla_cabeceras-entidades. El resultado es la creación de la tabla_cabeceras.
- 3j: Exporta varias tablas en formato excel: tabla_entidades, tabla_infotable, tabla_gz_entidades, tabla_gz_iglesia, tabla_gz_categoria, tabla_gz_cabildo, tabla_gz_nombres,tabla_gz_the_geom, tabla_gz_info_1, tabla_cabeceras, tabla_fuentes, tabla_entidades_wiki y tabla_entidades_fuentes.
#4: 04_xlsx_to_csv.py
El programa simplemente convierte los archivos exportados a csv.
#5: 05_backup hgis-gdb.py
Antes de calcular una nueva geodatabase HGIS de las Indias, se hace un backup de la existente.
#6: 06_Gazetteer_to_gdb.py
Importa los .csv de tabla_gz_info_1 y tabla_cabeceras a the_geom_gdb.
#7: 07_Create HGIS de las Indias.py
Programa masivo para crear hgisdelasindias_gdb.
- 7a: Crea la geodatabase vacía y otra llamada “Niveles_dissolve_temp” que se requiere para cálculos intermedios y que al final se elimina. Importa las siguientes feature classes a HGIS de las Indias: lcg y gz_info_1, así como cabeceras, fc_adm_tratados, fc_com_correo_maritimo, fc_com_correo_terrestre, fc_com_flotas, fc_nat_erupciones, fc_nat_lagos, fc_nat_rios, fc_nat_terremotos, fc_nat_tsunamis, fc_soc_indigenas_general y fc_soc_indigenas_puntos.
- 7b: Crea una nueva feature class a partir de tabla_Niveles y lcg:
- 7b1: Importa la tabla
- 7b2: Produce una query table que usa SQL para relacionar los ID de los polígonos en lcg con el campor correspondiente en la tabla_Niveles.
- 7b3: Crea una feature class a partir de la query table, combinando (con Dissolve) polígonos que coinciden en: la entidad a la que pertenecen, el nivel de reconstrucción y el período de validez marcado por los campos “START” y “END_”.
- 7b4: Cambia algunos nombre de campos mal elegidos. Ha sido más facil hacerlo en un propio paso aquí que en las tablas base y luego tener que cambiar el código en los pasos intermedios…
- 7c: Divide la nueva feature class, creando una propia para cada nivel de reconstrucción y cada año (12*108[o 258] feature classes!) en la gdb “Niveles_dissolve_temp” para luego volver a unir esta situación diferenciada en una sola feature class consolidada.
- 7c1: Porciona la fc para cada nivel.
- 7c2: Crea un nuevo campo “year” para poder hacer un “snapshot” para cada año.
- 7c3: Para todos los niveles, chequea para cada año entre 1551 y 1808 (en Nueva España, como ensayo, también hay reconstrucciones para tiempos anteriores a 1701) si el polígono es válido (START < año < END_ ).
En caso afirmativo, agrega el polígono a una feature class *nivel*_*año* y guarda el año como valor en el campo “year”.
Combina (con Dissolve) polígonos dentro de cada feature class si coinciden en la entidad territorial.
- 7c4: Combina (con Merge) todas las feature classes de un mismo nivel en una feature class llamada /\feature class/\_merge
- 7c5: Crea una versión simplificada (con (Simplify)) de la feature class Niveles. - Es una artefacto ya casi careciente de sentido porque ya simplificamos la geometría base en LCG. Se mantiene el paso porque más abajo, el paso 7f usa esta feature class.
- 7c6: Combina (con Merge) todas las feature classes individuales de los diferentes niveles en una sola llamada Niveles_merge.
- 7d: La feature class creada en 7c es enorme porque para cada entidad en cada nivel, tiene un polígono propio para cada año. Este paso reduce este número, uniendo polígonos del mismo nivel, de la misma entidad territorial, si tienen la misma geometría en años consecutivos.
- 7d1: Crea nuevos campos start/end para indicar el período de estabilidad (geométrica y calitativa) de las entidades. Crea un campo auxiliar “check” que se requiere sólo para el cálculo.
- 7d2: Hace una iteración registro por registro, ordenada por entidad y año. En el año más temprano de la entidad, copia el valor del campo *year* al campo *start* y pasa el valor como variable al siguiente registro. En el campo *end* siempre se guarda el valor de *year* del propio registro.
Si en un año consecutivo la entidad sigue teniendo la misma geometría, entidad y tipo (corregimiento…) como en el anterior, cambia el valor de *start* al de la variable y guarda el valor “delete” en el campo *check* (indica que el registro anterior es superflúo).
Si hay un cambio de geometría, tipo de entidad (una “gobernación” que cambia a “intendencia”…) o entidad, el valor de *year* del registro se guarda en *start* y se toma como nueva variable. Además, para indicar el tipo de cambio, se guarda “geometrydiffers”, “entitydiffers” or “typediffers” en el campo *check*
Al llegar al último registro, se invierte la dirección y se hace una nueva iteración. Se pasa el valor de *check* al registro siguiente y se remplaza el valor. Ahora, los registros superflúos todos tienen el valor “delete”.
Se eliminan todos los registros con el valor “delete” en *check*. Voilà!
- 7e: Crea archivos shapefile en el directory download de la página web (un shapefile por nivel y año (1701-1808).
- 7f: Crea los archivos para el servicio WMS para el año 1800.
#8: 08_aggregated_data.py
Procesa datos de tablas con datos agregados] - es decir datos de cualquier tipo que se relacionan con [[feature classes de hgisdelasindias_gdb.
Combinando las cronologías de la tabla agregada y el gazetteer o la entidad territorial en un nivel de reconstrucción se crean feature classes geoespaciales para cada tabla.
Hay tres tipos de proceso:
-a. Combinando tablas con el gazetteer de lugares, relacionados especificando el “gz_id” del lugar al que corresponde un dato; e indicando un período de validez del dato (START/END_).
-b. Combinando tablas con una entidad territorial, relacionadas especificando el “entidad_id” del territorio y el nivel dentro de la organización territorial; ; e indicando un período de validez del dato (START/END_).
-c. Como b., pero en vez de combinar cronologías la tabla relacionada y el objeto geoespacial relacionado, se especifica en la tabla relacionada un año particular en el que la geometría de la entidad territorial corresponde al área al que se refiere el dato de la tabla. Esto es útil porque datos no necesariamente se conforman con la organización “oficial” del territorio en un determinado momento.
#9: 09_dokuwiki_populate.py
Crea páginas-“template” para las entidades en tabla_entidades y tabla_gz_entidades.
Crea páginas-ficha para cada registro en las siguientes tablas: tabla_infotable,tabla_gz_iglesia, tabla_gz_categoria, tabla_gz_cabildo, tabla_gz_nombres,tabla_gz_the_geom, tabla_cabeceras, tabla_entidades_wiki, tabla_entidades_fuentes y tabla_fuentes.
Estas fichas se visualizan en las páginas-template relacionadas usando el plug-in “data” de dokuwiki (https://www.dokuwiki.org/plugin:data ).
Populate the dokuwiki by outputting rows from tables into entries usable with the “data”-plugin of dokuwiki, as well as template files for all territorial and place entities that show the related data entries.
#10: 10_Crear Atlas.py
Crea mapas base para entidades territoriales en algunos niveles de reconstrucción de la organización territorial (jurisdicción, provincia, audiencia, intendencia, obispado) para algunos años (1701, 1725, 1750, 1775, 1787, 1800, 1808), combinando varias capas de información existente en la base de datos. Ya que la organización territorial es muy heterogénea, las extensiones de las entidades en un mismo nivel varían mucho. Por esta causa, para algunos territorios los parámetros escogidos para los mapas cabe mejor que en otras.
La mayor diferencia existe en el nivel de “provincia”, por lo que definimos algoritmos adicionales para un par de provincias particularmente grandes y pequeñas para crear mapas más ajustadas.