Plataforma para el manejo de datos geo-espaciales, series de tiempo y movilidad
Contenido:
- RESCLIMA/
Aplicacion web hecha en Django.
- data/
Carpeta con datos de prueba
- StationsScripts/
Scripts para descargar los datos de las estaciones meteorologicas
Django 1.11
postgres 10
postgis
gdal
mapnik
lxml
TimescaleDB
$ sudo apt-get build-dep gdal
Descomprimir el archivo gdal-2.1.0.tar.gz (ubicado en el directorio raiz)
$ cd gdal-2.1.0/
$ ./configure --prefix=/usr/ --with-python3
$ make
$ sudo make install
$ cd swig/python/
$ sudo python3 setup.py install
Para comprobar si la instalacion fue correcta, en el interprete de python importar gdal:
from osgeo import ogr
https://askubuntu.com/questions/1009975/unable-to-install-postgresql-10-on-ubuntu-16-04
$ sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
$ sudo apt-get update
$ sudo apt-get install postgis
Se debe instalar PostGIS version 2.4.4
$ sudo add-apt-repository ppa:timescale/timescaledb-ppa
$ sudo apt-get update
Instalar para postgres 10:
$ sudo apt install timescaledb-postgresql-10
$ sudo nano /etc/postgresql/(postgres_version)/main/postgresql.conf
Localizar y descomentar la línea shared_preload_libraries e igualarla a 'timescaledb'.
Debe quedar: shared_preload_libraries = 'timescaledb'
$ sudo service postgresql restart
Crear un usuario en postgres; debe coincidir con el usuario del archivo settings.py
Crear una base de datos "resclima"
\c resclima;
CREATE EXTENSION postgis;
CREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;
Se debe ejcutar las migraciones de django:
$ python manage.py makemigrations $ python manage.py migrate
Ahora se debe crear la hypertabla de timescaledb
Debido a que en timescaledb el primary key siempre debe contener el campo de tiempo, se debe alterar la tabla:
Primero se debe eliminar los primary keys que creo django
ALTER TABLE "timeSeries_measurement" DROP COLUMN id_m;
ALTER TABLE "timeSeries_measurement" DROP COLUMN ts;
Luego de debe agregar esas columnas otra vez:
ALTER TABLE "timeSeries_measurement" ADD COLUMN id_m SERIAL;
ALTER TABLE "timeSeries_measurement" ADD COLUMN ts TIMESTAMP;
Se agrega un primary key compuesto por ts y id_m
ALTER TABLE "timeSeries_measurement" ADD CONSTRAINT ts PRIMARY KEY (ts,id_m);
Finalmente se crea la hypertabla
SELECT create_hypertable('"timeSeries_measurement"','ts');
La creacion del hypertable, no debe dar ningun problema
Para cargar datos iniciales en una tabla: colocarse dentro de RESCLIMA/RESCLIMA/fixtures/ python loaddata.py
En RESCLIMA/RESCLIMA se encuentra un script.sql con TRIGGERS, INDEX y FUNCTIONS. Entonces hay que conectarse a la base de datos y ejecutar ese script
Para crear los triggers, ejecutar script.sql sudo -u postgres psql \c resclima \i RESCLIMA/script.sql
$ sudo pip install mapnik
En setting.py se debe modificar los parametros: STYLE_FILES_PATH y RASTER_FILES_PATH