Re: [Portugal] Criar uma rotina no postgres

2016-09-19 Por tôpico Paulo Mendes (Sapo TLM)


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

2016-09-14 Por tôpico Jorge Gustavo Rocha

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

2016-09-14 Por tôpico Jorge Sanz
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

2016-09-14 Por tôpico 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