Re: [Portugal] Criar uma rotina no postgres
Obrigado pela ajuda! Paulo Mendes Enviado do meu dispositivo Samsung Mensagem original De : Jorge Gustavo Rocha <j...@di.uminho.pt> Data: 15/09/2016 00:15 (GMT+00:00) Para: portugal@lists.osgeo.org Assunto: Re: [Portugal] Criar uma rotina no postgres Olá Paulo, O Jorge já apontou o caminho no email anterior. Acrescento alguns exemplos. Na verdade, usam o POstgresql mas não são scripts do Postgresql. São scripts normais em shell (bash). No linux tenho algumas scripts que usam o osm2pgsql e ogr2ogr. Para pores estes dois exemplos a correr automaticamente, acrescentas no cron algo do género: # m h dom mon dow command 17 04 * * * /home/osm/bin/sacaportugal.shp.sh 23 05 * * * /home/osm/bin/sacaportugal.osm.sh (podes editar o cron com: crontab -e) Exemplo: Sacar o OSM e por em Postgresql (sacaportugal.osm.sh) #!/bin/bash mkdir -p ~/tmp/portugal.osm cd ~/tmp/portugal.osm find . -type f -mtime +7 -name '*'.osm.bz2 -exec rm -f \{\} \; data=`date +%Y%m%d%H%M` planeta=portugal.$data.osm.bz2 wget http://download.geofabrik.de/europe/portugal-latest.osm.bz2 -O $planeta osm2pgsql -E 3763 -s -U osm -d osmpt -c --extra-attributes -S /usr/share/osm2pgsql/osmpt.style $planeta psql -U osm osmpt -c "ALTER TABLE planet_osm_line SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_point SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_polygon SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_roads SET SCHEMA planet;" psql -U osm osmpt -c "drop table planet_osm_nodes;" psql -U osm osmpt -c "drop table planet_osm_ways;" psql -U osm osmpt -c "drop table planet_osm_rels;" Outro exemplo: reconverter shapefiles (sacaportugal.shp.sh) #!/bin/bash rm -rf ~/tmp/portugal.shp mkdir -p ~/tmp/portugal.shp cd ~/tmp/portugal.shp wget http://download.geofabrik.de/europe/portugal-latest.shp.zip unzip portugal-latest.shp.zip ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" edificios.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln edificios buildings.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" usodosolo.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln usodosolo landuse.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" natureza.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln natureza natural.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" lugares.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln lugares places.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" pontos.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln pontos points.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" viaferrea.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln viaferrea railways.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" vias.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln vias roads.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" agua.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln agua waterways.shp -lco ENCODING=UTF-8 rm buildings.* landuse.* natural.* places.* points.* railways.* roads.* waterways.* rm portugal-latest.shp.zip zip edificios.zip edificios.* zip usodosolo.zip usodosolo.* zip natureza.zip natureza.* zip lugares.zip lugares.* zip pontos.zip pontos.* zip viaferrea.zip viaferrea.* zip vias.zip vias.* zip agua.zip agua.* mv *.zip /home/osm/wordpress/wp-content/uploads/ cd .. zip portugal.3763.shp.zip portugal.shp/* mv portugal.3763.shp.zip /home/osm/wordpress/wp-content/uploads/ Espero que ajude. Bom trabalho, J. Gustavo Às 22:55 de 14-09-2016, Paulo Mendes (Sapo TLM) escreveu: > > > > > Boa noite! > > Gostaria e saber se é possivel criar uma rotina no postgres que possa > fazer a exportação automática de varias tabelas geográficas para > shapefile e que essa rotina seja executada a determinada hora do dia! > > Obrigado > > Paulo Mendes > > > Enviado do meu dispositivo Samsung > > > ___ > Portugal mailing list > Portugal@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/portugal > J. Gustavo -- Jorge Gustavo Rocha Departamento de Informática Universidade do Minho 4710-057 Braga Tel: +351 253604480 Fax: +351 253604471 Móvel: +351 910333888 skype: nabocudnosor ___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal
Re: [Portugal] Criar uma rotina no postgres
Olá Paulo, O Jorge já apontou o caminho no email anterior. Acrescento alguns exemplos. Na verdade, usam o POstgresql mas não são scripts do Postgresql. São scripts normais em shell (bash). No linux tenho algumas scripts que usam o osm2pgsql e ogr2ogr. Para pores estes dois exemplos a correr automaticamente, acrescentas no cron algo do género: # m h dom mon dow command 17 04 * * * /home/osm/bin/sacaportugal.shp.sh 23 05 * * * /home/osm/bin/sacaportugal.osm.sh (podes editar o cron com: crontab -e) Exemplo: Sacar o OSM e por em Postgresql (sacaportugal.osm.sh) #!/bin/bash mkdir -p ~/tmp/portugal.osm cd ~/tmp/portugal.osm find . -type f -mtime +7 -name '*'.osm.bz2 -exec rm -f \{\} \; data=`date +%Y%m%d%H%M` planeta=portugal.$data.osm.bz2 wget http://download.geofabrik.de/europe/portugal-latest.osm.bz2 -O $planeta osm2pgsql -E 3763 -s -U osm -d osmpt -c --extra-attributes -S /usr/share/osm2pgsql/osmpt.style $planeta psql -U osm osmpt -c "ALTER TABLE planet_osm_line SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_point SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_polygon SET SCHEMA planet;" psql -U osm osmpt -c "ALTER TABLE planet_osm_roads SET SCHEMA planet;" psql -U osm osmpt -c "drop table planet_osm_nodes;" psql -U osm osmpt -c "drop table planet_osm_ways;" psql -U osm osmpt -c "drop table planet_osm_rels;" Outro exemplo: reconverter shapefiles (sacaportugal.shp.sh) #!/bin/bash rm -rf ~/tmp/portugal.shp mkdir -p ~/tmp/portugal.shp cd ~/tmp/portugal.shp wget http://download.geofabrik.de/europe/portugal-latest.shp.zip unzip portugal-latest.shp.zip ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" edificios.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln edificios buildings.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" usodosolo.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln usodosolo landuse.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" natureza.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln natureza natural.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" lugares.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln lugares places.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" pontos.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln pontos points.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" viaferrea.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln viaferrea railways.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" vias.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln vias roads.shp -lco ENCODING=UTF-8 ogr2ogr -overwrite -skipfailures -f "ESRI Shapefile" agua.shp -s_srs EPSG:4326 -t_srs EPSG:3763 -nln agua waterways.shp -lco ENCODING=UTF-8 rm buildings.* landuse.* natural.* places.* points.* railways.* roads.* waterways.* rm portugal-latest.shp.zip zip edificios.zip edificios.* zip usodosolo.zip usodosolo.* zip natureza.zip natureza.* zip lugares.zip lugares.* zip pontos.zip pontos.* zip viaferrea.zip viaferrea.* zip vias.zip vias.* zip agua.zip agua.* mv *.zip /home/osm/wordpress/wp-content/uploads/ cd .. zip portugal.3763.shp.zip portugal.shp/* mv portugal.3763.shp.zip /home/osm/wordpress/wp-content/uploads/ Espero que ajude. Bom trabalho, J. Gustavo Às 22:55 de 14-09-2016, Paulo Mendes (Sapo TLM) escreveu: Boa noite! Gostaria e saber se é possivel criar uma rotina no postgres que possa fazer a exportação automática de varias tabelas geográficas para shapefile e que essa rotina seja executada a determinada hora do dia! Obrigado Paulo Mendes Enviado do meu dispositivo Samsung ___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal J. Gustavo -- Jorge Gustavo Rocha Departamento de Informática Universidade do Minho 4710-057 Braga Tel: +351 253604480 Fax: +351 253604471 Móvel: +351 910333888 skype: nabocudnosor ___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal
Re: [Portugal] Criar uma rotina no postgres
En linux parece una combinación sencilla de uso de cron[1] y pgsql2shp[2] o ogr2ogr[3] Cumprimentos :-) [1] https://en.wikipedia.org/wiki/Cron [2] http://bostongis.com/pgsql2shp_shp2pgsql_quickguide.bqg [3] http://www.gdal.org/ogr2ogr.html 2016-09-14 23:55 GMT+02:00 Paulo Mendes (Sapo TLM): > > > > > Boa noite! > > Gostaria e saber se é possivel criar uma rotina no postgres que possa fazer > a exportação automática de varias tabelas geográficas para shapefile e que > essa rotina seja executada a determinada hora do dia! > > Obrigado > > Paulo Mendes > > > Enviado do meu dispositivo Samsung > > ___ > Portugal mailing list > Portugal@lists.osgeo.org > http://lists.osgeo.org/mailman/listinfo/portugal -- Jorge Sanz http://www.osgeo.org http://wiki.osgeo.org/wiki/Jorge_Sanz ___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal
[Portugal] Criar uma rotina no postgres
Boa noite! Gostaria e saber se é possivel criar uma rotina no postgres que possa fazer a exportação automática de varias tabelas geográficas para shapefile e que essa rotina seja executada a determinada hora do dia! Obrigado Paulo Mendes Enviado do meu dispositivo Samsung___ Portugal mailing list Portugal@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/portugal