56958736 Manual Tecnico de Postgres Postgis en Ubuntu Todo Sobre GIS

Embed Size (px)

Citation preview

Manual tcnico de PostgreSQL/PostgisElaborado por: Enrique Flores Escudero Natanael Garca Sosa Validacin tcnica: Lic. Agustn Garca Rodrguez rea de TI: Laboratorio de Visin por Computadora INAOE

ContenidoQu es un SIG? .............................................................................................................................. 3 Sistema de coordenadas................................................................................................................. 4 Proyeccin cilndrica ........................................................................................................................ 5 Proyeccin cnica ............................................................................................................................ 5 Proyeccin azimutal, cenital o polar .............................................................................................. 5 Informacin geogrfica en un SIG ................................................................................................. 6 El Datum ............................................................................................................................................ 6 Datum de referencia......................................................................................................................... 6 Instalacin de PostgreSQL 8.4...................................................................................................... 8 Instalacin del complemento Postgis 1.4. .................................................................................... 8 Transformacin de cartas ............................................................................................................... 9 Ogrinfo.............................................................................................................................................. 10 Comandos de ogrinfo..................................................................................................................... 10 Ver Datum, Proyeccin y Atributos de una carta....................................................................... 10 Ver el tipo de objetos de un .shp.................................................................................................. 11 ogr2ogr ............................................................................................................................................. 12 Comandos de ogr2ogr ................................................................................................................... 12 Unir varios archivos .shp en un solo .shp ................................................................................... 15 S57.................................................................................................................................................... 15 Subir directamente una carta nutica .000 al PostgreSQL ...................................................... 15 pgsql2shp......................................................................................................................................... 20 shp2pgsql......................................................................................................................................... 20 Convertir nuestro archivo .shp a .sql ........................................................................................... 21 gdal info............................................................................................................................................ 22 gdal_rasterize .................................................................................................................................. 23 Crear un punto, lnea o polgono a travs de un query sql ...................................................... 25 Bibliografa: ...................................................................................................................................... 34 Anexo ............................................................................................................................................... 35

2

Qu es un SIG?Un Sistema de Informacin Geogrfica es una integracin organizada de hardware, software y datos geogrficos diseada para capturar, almacenar, manipular, analizar y desplegar en todas sus formas la informacin geogrficamente referenciada con el fin de resolver problemas complejos de planificacin y gestin. Tambin puede definirse como un modelo de una parte de la realidad referido a un sistema de coordenadas terrestre y construido para satisfacer unas necesidades concretas de

informacin. En el sentido ms estricto, es cualquier sistema de informacin capaz de integrar, almacenar, editar, analizar, compartir y mostrar la informacin geogrficamente referenciada. En un sentido ms genrico, los SIG son herramientas que permiten a los usuarios crear consultas interactivas, analizar la informacin espacial, editar datos, mapas y presentar los resultados de todas estas operaciones. La tecnologa de los Sistemas de Informacin Geogrfica puede ser utilizada para investigaciones cientficas, la gestin de los recursos, gestin de activos, la arqueologa, la evaluacin del impacto ambiental, la planificacin urbana, la cartografa, la sociologa, la geografa histrica, el marketing, la logstica por nombrar unos pocos. Por ejemplo, un SIG podra permitir a los grupos de emergencia calcular fcilmente los tiempos de respuesta en caso de un desastre natural, el SIG puede ser usado para encontrar los humedales que necesitan proteccin contra la contaminacin, o pueden ser utilizados por una empresa para ubicar un nuevo negocio y aprovechar las ventajas de una zona de mercado con escasa competencia.

3

Sistema de coordenadasUn sistema de coordenadas es un conjunto de valores y puntos que permiten definir unvocamente la posicin de cualquier punto de un espacio eucldeo o ms generalmente variedad diferenciable. En fsica se usan normalmente sistemas de coordenadas ortogonales. Un sistema de referencia viene dado por un punto de referencia u origen y una base vectorial ortonormal, quedando as definidos los ejes coordenados.

4

Proyeccin cilndricaLa proyeccin de Mercator, que revolucion la cartografa, es cilndrica y conforme. En ella, se proyecta el globo terrestre sobre una superficie cilndrica. Es una de las ms utilizadas, aunque por lo general en forma modificada, debido a las grandes distorsiones que ofrece en las zonas de latitud elevada, lo que impide apreciar a las regiones polares en su verdadera proporcin. Es utilizada en la creacin de algunos mapamundis. Para corregir las deformaciones en latitudes altas se usan proyecciones pseudocilndricas, como la de Van der Grinten, que es policnica, con paralelos y meridianos circulares. Es esencialmente til para ver la superficie de la Tierra completa. Proyeccin de Mercator Proyeccin de Peters

Proyeccin cnicaLa proyeccin cnica se obtiene proyectando los elementos de la superficie esfrica terrestre sobre una superficie cnica tangente, situando el vrtice en el eje que une los dos polos. Aunque las formas presentadas son de los polos, los cartografos utilizan este tipo de proyeccin para ver los pases y continentes. Proyeccin cnica simple Proyeccin conforme de Lambert Proyeccin cnica mltiple

Proyeccin azimutal, cenital o polarEn este caso se proyecta una porcin de la Tierra sobre un plano tangente al globo en un punto seleccionado, obtenindose una imagen similar a la visin de la Tierra desde un punto interior o exterior. Si la proyeccin es del primer tipo se llama proyeccin gnomnica; si es del segundo, ortogrfica. Estas proyecciones ofrecen una mayor distorsin cuanto mayor sea la distancia al punto tangencial de la esfera y el plano. Este tipo de proyeccin se relaciona principalmente con los polos y hemisferios. Proyeccin ortogrfica Proyeccin estereogrfica Proyeccin gnomnica Proyeccin azimutal de Lambert

5

Informacin geogrfica en un SIGModelo vector Usa segmentos de lnea discretos o puntos para sealar localizaciones, de acuerdo con un sistema de referencia Los elementos geogrficos se forman a partir de la conexin de segmentos de lneas rectas Los objetos vectoriales no necesariamente ocupan la totalidad del espacio; as, no se requiere identificar absolutamente todas las localizaciones. Posee una base de datos espacial (x,y), y una base de datos descriptiva (atributos) Modelo raster Divisin del rea

Almacenamiento a nivel de celda. Qu almacena? Representacin explcita: cada punto corresponde a una loc. En Una celda

Concepto de capa o layer Codificacin de relaciones topolgicas No est asociada a una base alfanumrica.

El DatumEl trmino datum se aplica en varias reas de estudio y trabajo especficamente cuando se hace una relacin hacia alguna geometra de referencia importante, sea sta una lnea, un plano o una superficie (plana o curva).

Datum de referenciaUn datum geodsico es una referencia de las medidas tomadas. En geodesia un datum es un conjunto de puntos de referencia en la superficie terrestre en base a los cuales las medidas de la posicin son tomadas y un modelo asociado de la forma de la tierra (elipsoide de referencia) para definir el sistema de coordenadas geogrfico. Datums horizontales son utilizados para describir un punto sobre la superficie terrestre. Datums verticales miden elevaciones o profundidades. En ingeniera y drafting, un datum es un punto de referencia, superficie o ejes sobre un objeto con los cuales las medidas son tomadas. Un datum de referencia (modelo matemtico) es una superficie constante y conocida utilizada para describir la localizacin de puntos sobre la tierra. Dado que diferentes datums tienen diferentes radios y puntos centrales, un punto medido con diferentes datums puede tener coordenadas diferentes. Existen cientos de datums de referencia

6

desarrollados para referenciar puntos en determinadas reas convenientes para ese rea. Datums contemporneos estn diseados para cubrir reas ms grandes.

Cdigos EPSG epsg:3034 epsg:3035 epsg:4230 epsg:4258 epsg:4267 epsg:4269 epsg:4324 epsg:4326 epsg:23028 epsg:23029 epsg:23030 epsg:23031 epsg:25828 epsg:25829 epsg:25830 epsg:25831 epsg:32628 epsg:32629 epsg:32630 epsg:32631

Descripcin EPSG (European Petroleum Survey Group) ETRS89/ETRS-LCC Para la cartografa pan-Europeo a escalas menores o iguales a 1:500.000 IDEE ETRS89/ETRS-LAEA Para representacin y anlisis estadstico panEuropeos IDEE Coordenadas Geogrficas ED50 Coordenadas Elipsoidales ETRS89 IDEE Coordenadas Geogrficas North American Datum 1927 (NAD 27) Coordenadas Geogrficas North American Datum 1983 (NAD 83) Coordenadas Geogrficas WGS 72BE Transit Broadcast Ephemeris Coordenadas Geogrficas WGS84 Proyeccin UTM ED50 Huso 28 N Proyeccin UTM ED50 Huso 29 N Proyeccin UTM ED50 Huso 30 N Proyeccin UTM ED50 Huso 31 N Proyeccin UTM ETRS89 Huso 28 N Proyeccin UTM ETRS89 Huso 29 N Proyeccin UTM ETRS89 Huso 30 N Proyeccin UTM ETRS89 Huso 31 N Proyeccin UTM WGS84 Huso 28 N Proyeccin UTM WGS84 Huso 29 N Proyeccin UTM WGS84 Huso 30 N Proyeccin UTM WGS84 Huso 31 N

7

Instalacin de PostgreSQL 8.4$ apt-get update $ apt-get install vim //editar el fichero siguiente $ vim /etc/apt/sources.list //agregar al final del fichero las siguientes lineas deb http://ppa.launchpad.net/pitti/postgresql/ubuntu jaunty main deb-src http://ppa.launchpad.net/pitti/postgresql/ubuntu jaunty main //agregar la llave del postgresql $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8683d8a2 $ sudo apt-get update $ sudo apt-get install postgresql-8.4 //cambiamos el puerto 5433 al 5432 $ sudo sed -i.bak -e 's/port = 5433/port = 5432/' /etc/postgresql/8.4/main/postgresql.conf //reiniciamos el servidor de postgresql $ sudo /etc/init.d/postgresql restart

Instalacin del complemento Postgis 1.4.$ apt-get install postgresql-server-dev-8.4 libpq-dev $ apt-get install libgeos-dev $ wget http://postgis.refractions.net/download/postgis-1.4.0.tar.gz $ apt-get install proj $ tar xvfz postgis-1.4.0.tar.gz $ cd postgis-1.4.0 $ ./configure $ make $ make install $ sudo su postgres //cambiamos la clave del usuario postgres por la que desees $ psql -c"alter user postgres with password 'tu_contrasea'" $ createdb geodb $ createlang -dgeodb plpgsql $ psql -dgeodb -f /usr/share/postgresql/8.4/contrib/postgis.sql $ psql -dgeodb -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql $ psql -dgeodb -c"select postgis_lib_version();" //con esto habremos agregado las tablas espaciales del postgis para crear una plantilla de postgis y utilizarla en las demas bases de datos

8

No1 2 3 4 5 6 7 8 9 10 11 12 13

Transformacin de cartas Posible transformacinShapefile (datum diferente) a Shapefile (datum WGS84) Shapefile (Proj. diferente) a Shapefile (Proj. cilndrica) Shapefile (Datum WGS84, Proj. cilndrica) a Formato POSTGIS Formato POSTGIS a Shapefile (Datum WGS84, Proj. Cilndrica) Formato POSTGIS a Shapefile a Visor GIS Formato POSTGIS a Visor GIS a SHP Carta S57 a PostgreSQL a Shapefile a Shapefile (wgs84, Proj. Cilndrica) a PostgreSQL a Visor Carta S57 a Shapefile (wgs84, Proj. Cilndrica) Carta S57 (Datum diferente) a Carta S57 (Datum WGS84) Carta S57 (Proj. Diferente) a carta S57 (Proj. Cilndrica) Carta S57 a Visor a SHP Cartas Aereas (Datum diferente) a Shapefile (Datum WGS84) Cartas Aereas (Proj. Diferente) a Shapefile (Proj. Cilndrica)

RevisinSI SI SI SI SI SI SI SI SI SI SI NO NO

AprobacinSI SI SI SI SI SI SI SI SI SI SI NO NO

9

OgrinfoPara poder realizar una transformacin lo primero que debemos de hacer es identificar el datum y la proyeccin de la carta, para eso tenemos el complemento de la librera gdal llamado ogrinfo y es una herramienta que sirve para ver los contenidos de un Shapefile, proyeccin, datum y atributos de la carta, adems ver que geometra la compone.

Comandos de ogrinfo$ ogrinfo Usage: ogrinfo [--help-general] [-ro] [-q] [-where restricted_where] [-spat xmin ymin xmax ymax] [-fid fid] [-sql statement] [-al] [-so] [-fields={YES/NO}] [-geom={YES/NO/SUMMARY}][--formats] datasource_name [layer [layer ...]]

Ver Datum, Proyeccin y Atributos de una cartaEn el siguiente ejemplo hacemos uso de la herramienta ogrinfo, la cual muestra la informacin de la carta detalladamente. Sintaxis: $ ogrinfo -al -so nombre_carta.shp Ejemplo: $ ogrinfo -al -so CurvasNivel.shp INFO: Open of `CurvasNivel.shp' using driver `ESRI Shapefile' successful. Layer name: CurvasNivel Geometry: Line String Feature Count: 99488 Extent: (911404.625948, 352702.863535) - (3914799.979274, 2349596.704755) Layer SRS WKT: PROJCS["North_America_Lambert_Conformal_Conic", GEOGCS["ITRF92", DATUM["ITRF_1992", SPHEROID["GRS_1980",6378137.0,298.257222101]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]], PROJECTION["Lambert_Conformal_Conic_2SP"], PARAMETER["False_Easting",2500000.0], PARAMETER["False_Northing",0.0], PARAMETER["Central_Meridian",-102.0], PARAMETER["Standard_Parallel_1",17.5], PARAMETER["Standard_Parallel_2",29.5],

10

PARAMETER["Latitude_Of_Origin",12.0], UNIT["Meter",1.0]] OBJECTID: Integer (10.0) FC: Integer (5.0) ENTIDAD: String (15.0) TIPO: String (51.0) ELEVACION: Real (19.5) LENGTH: Real (15.3) SHAPE_len: Real (19.11)

Ver el tipo de objetos de un .shpEl tipo de objetos que puede contener una carta tipo .shp son lneas, polgonos y puntos, si deseamos unir varias cartas .shp el ejemplo siguiente sirve para comprobar si las cartas contienen el mismo tipo de geometra. Sintaxis: $ ogrinfo -ro -q nombre_carta.shp Ejemplo: $ ogrinfo -ro -q CurvasNivel.shp 1: CurvasNivel (Line String)

Obtenemos como resultado Line String, lo cual nos indica que contiene lneas en su geometra.

11

ogr2ogrNos permite importar/exportar archivos .shp a otros formatos y viceversa. Si solo escribimos ogr2ogr en la terminal podremos comprobar el tipo de sintaxis que se puede utilizar y los formatos que soporta la herramienta.

Comandos de ogr2ogrUsage: ogr2ogr [--help-general] [-skipfailures] [-append] [-update] [-gt n] [-select field_list] [-where restricted_where] [-sql ] [-spat xmin ymin xmax ymax] [-preserve_fid] [-fid FID] [-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def] [-f format_name] [-overwrite] [[-dsco NAME=VALUE] ...] [-segmentize max_dist] dst_datasource_name src_datasource_name [-lco NAME=VALUE] [-nln name] [-nlt type] [layer [layer ...]] -f format_name: output file format name, possible values are: Estos son los formatos admitidos: -f "ESRI Shapefile" -f "MapInfo File" -f "TIGER" -f "S57" -f "DGN" -f "Memory" -f "BNA" -f "CSV" -f "GML" -f "GPX" -f "KML" -f "GeoJSON" -f "Interlis 1" -f "Interlis 2" -f "GMT" -f "SQLite" -f "ODBC" -f "PostgreSQL" -f "MySQL" -f "Geoconcept" -append: Append to existing layer instead of creating new if it exists -overwrite: delete the output layer and recreate it empty -update: Open existing output datasource in update mode -select field_list: Comma-delimited list of fields from input layer to copy to the new layer (defaults to all) -where restricted_where: Attribute query (like SQL WHERE)

12

-sql statement: Execute given SQL statement and save result. -skipfailures: skip features or layers that fail to convert -gt n: group n features per transaction (default 200) -spat xmin ymin xmax ymax: spatial query extents -segmentize max_dist: maximum distance between 2 nodes. Used to create intermediate points -dsco NAME=VALUE: Dataset creation option (format specific) -lco NAME=VALUE: Layer creation option (format specific) -nln name: Assign an alternate name to the new layer -nlt type: Force a geometry type for new layer. One of NONE, GEOMETRY, POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT, MULTIPOLYGON, or MULTILINESTRING. Add "25D" for 3D layers. Default is type of source layer. -a_srs srs_def: Assign an output SRS -t_srs srs_def: Reproject/transform to this SRS on output -s_srs srs_def: Override source SRS Srs_def can be a full WKT definition (hard to escape properly), or a well known definition (ie. EPSG:4326) or a file with a WKT definition. Shapefile (datum diferente) a Shapefile (datum WGS84) Shapefile (Proj. diferente) a Shapefile (Proj. cilndrica) Existen 3 maneras de realizar estas transformaciones: 1.- Con la herramienta ogr2ogr especificar el tipo de proyeccin detalladamente: ogr2ogr: es la herramienta utilizada para la transformacin de la carta. -f: tipo de formato de salida en este caso queremos obtener ESRI Shapefile que es un archivo .shp. -s_srs: aqu se especifica la proyeccin de entrada y datum, esta se puede obtener de los metadatos de la carta .shp. -t_srs: este parmetro precisa la proyeccin de salida en el ejemplo usamos "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" debido a la proyeccin y datum que nos interesa obtener. archivo_salida.shp: pondremos la ruta y nombre del nuevo archivo que tendr la proyeccin y datum que nos interesa. archivo_a_transformar.shp: es el archivo de entrada, tendremos que poner la ruta donde se encuentra. Sintaxis: $ ogr2ogr -f "ESRI Shapefile" -s_srs "proyeccin_carta_entrada" "proyeccin_carta_salida" archivo_salida.shp archivo_a_transformar.shp

-t_srs

13

Ejemplo: $ ogr2ogr -f "ESRI Shapefile" -s_srs "+proj=lcc +lat_1=17.5 +lat_2=29.5 +lat_0=12 +lon_0=-102 +x_0=2500000 +y_0=0 +ellps=GRS80 +units=m +no_defs" -t_srs "+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs" salida.shp CurvasNivel.shp

2.- Utilizar solo el cdigo EPSG (European Petroleum Survey Group). -t_srs: introducimos el cdigo EPSG:4326 ya que este contiene proyeccin cilndrica y el datum wgs84, podemos encontrar esta informacin en la tabla spatial_ref_sys del complemento Postgis en las columnas auth_name (estndar usado), auth_srid (nmero del estandar), srtext (datum), proj4text (proyeccin). archivo_salida: especificar la ruta y el nombre del archivo de salida.shp que tendr el nuevo datum y proyeccin. archivo_entrada: ponemos la ruta y el nombre del archivo del cual se va a modificar el datum y proyeccin. Sintaxis: $ ogr2ogr t_srs EPGS:Nmero_estandar archivo_salida.shp archivo_entrada.shp Ejemplo: $ ogr2ogr -t_srs EPSG:4326 pruebakike2.shp CurvasNivel.shp

3.- Cambiar la proyeccin de la carta .shp y el datum usando la proyeccin de otro .shp Los archivos .prj contienen el datum y la proyeccin utilizada en la carta; existen cartas que no contienen este archivo. -t_srs: se utiliza para definir el datum y la proyeccin a partir de un archivo con extensin .prj. archivo.prj: definimos la ruta del archivo .prj que contiene la proyeccin y el datum adecuado. archivo_salida.shp: ruta del nuevo archivo que se va a crear con el nuevo datum y proyeccin. archivo_entrada.shp: ruta del archivo .shp existente que vamos a transformar. Sintaxis: $ ogr2ogr t_srs archivo.prj archivo_salida.shp archivo_entrada.shp Ejemplo: $ ogr2ogr -t_srs 10m_ocean.prj /home/enrique/Escritorio/curvas.shp /home/enrique/Escritorio/curvas/CurvasNivel.shp

14

Unir varios archivos .shp en un solo .shpEsto se puede realizar solo si los archivos .shp tienen la misma geometra (punto, lnea, polgono, etc) y el mismo datum y proyeccin.

Sintaxis: archivo_nuevo se fusionara con el archivo_existente en este caso archivo_nuevo tomara todos los valores del archivo_existente. $ ogr2ogr archivo_nuevo.shp archivo_existente.shp -update: abre el origen de datos de salida existente en el modo de actualizacin en lugar de intentar crear una carta nueva. -append se realizara una unin de capas, actualizando el archivo nuevo sin generar otro archivo, este mismo archivo tendr dos capas en uno solo. archivo_nuevo.shp: poner la ruta y el nombre del nuevo archivo.shp. siguiente_capa_a_unir.shp: la capa que se va a unir con el archivo_nuevo.shp. -nln: asigna un nombre alternativo a la nueva capa. $ ogr2ogr -update -append archivo_nuevo.shp siguiente_capa_a_unir.shp -nln archivo_nuevo.shp Ejemplo: $ ogr2ogr file_merged.shp Acueducto.shp $ ogr2ogr -update -append file_merged.shp carretera.shp -nln file_merged

S57Subir directamente una carta nutica .000 al PostgreSQL-f: aqu se pone el formato de salida, en la pgina 12 se muestran todos los archivos soportados por ogr2ogr, en este ejemplo usaremos PostgreSQL. PG: especificamos que se har una conexin al servidor PostgreSQL. host: ponemos la ip del servidor o en caso de ser conexin local se usar localhost. user: este parmetro lleva el nombre de un usuario por ejemplo postgres en el ejemplo. dbname: especificar a qu base de datos se va a subir la carta nutica. password: introducimos la contrasea con la cual se entra a PostgreSQL; por ltimo se escribe el nombre de la carta s57 con extensin .000 Sintaxis: $ ogr2ogr f "formato_salida" PG:"host=servidor user=usuario dbname=base_datos password=contrasea" archivo.000 Ejemplo: $ ogr2ogr -f "PostgreSQL" PG:"host=localhost user=postgres dbname=pruebashp password=kikeflores" US2EC03M.000

15

Carta S57 a Shapefile (wgs84, Proj. Cilndrica)

16

17

18

19

pgsql2shpFormato POSTGIS a Shapefile (Datum WGS84, Proj. Cilndrica) pgsql2shp: herramienta para exportar una tabla a formato .shp. Los siguientes parmetros se utilizan para poder conectarse al servidor PostgreSQL y poder exportar la tabla como archivo .shp. -f: identifica el formato y seguido de este va la ruta de salida y nombre del archivo que se va a obtener. -h: ip del servidor al que se realizara la conexin, en caso de ser servidor local poner localhost. -u: aqu se especifica el usuario que tiene permiso para realizar transacciones sobre la base de datos, en el ejemplo se utilizo postgres. -P: este parmetro se utiliza para hacer una conexin mediante contrasea, en caso de tener habilitada la seguridad para las bases de datos, si no se tiene seguridad, omitir este. -p: nmero de puerto que se est utilizando en la conexin. Despus de haber introducido los parmetros correctos para la conexin al servidor PostgreSQL se define el nombre de la base de datos seguido de la tabla a exportar. Sintaxis: $ pgsql2shp -formato nombre_archivo_salida -h host -u usuario -P contrasea -p puerto base_datos tabla Ejemplo: $ pgsql2shp -f prueba -h localhost -u postgres -P kike1uno -p 5432 acueducto wfsgeo

shp2pgsqlshp2pgsql es una herramienta va consola que permite la conversin de nuestro archivo en formato shp a sql. $ shp2pgsql RCSID: $Id: shp2pgsql-core.h 5098 2010-01-04 05:47:04Z pramsey $ RELEASE: 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1 USAGE: shp2pgsql [] [.] OPTIONS: -s Set the SRID field. Defaults to -1. (-d|a|c|p) These are mutually exclusive options: -d Drops the table, then recreates it and populates it with current shape file data. -a Appends shape file into current table, must be

20

exactly the same table schema. -c Creates a new table and populates it, this is the default if you do not specify any options. -p Prepare mode, only creates the table. -g Specify the name of the geometry/geography column (mostly useful in append mode). -D Use postgresql dump format (defaults to SQL insert statments. -G Use geography type (requires lon/lat data). -k Keep postgresql identifiers case. -i Use int4 type for all integer dbf fields. -I Create a spatial index on the geocolumn. -S Generate simple geometries instead of MULTI geometries. -W Specify the character encoding of Shape's attribute column. (default : "WINDOWS-1252") -N NULL geometries handling policy (insert*,skip,abort) -n Only import DBF file. -? Display this help screen.

Shapefile (Datum WGS84, Proj. cilndrica) a Formato POSTGIS Convertir nuestro archivo .shp a .sqlUtilizamos el shp2pgsql para convertir el archivo .shp a un archivo .sql y psql para poder subir dicho script (.sql). shp2pgsql: herramienta para convertir de archivo .shp a archivo .sql. archivo.shp: especificamos la ruta del archivo .shp que vamos a transformar. base_datos: aqu va el nombre de la base de datos donde se crearan las tablas. script.sql: aqu va el nombre del archivo .sql que se obtendr (el nombre del script puede cambiar; se utilizo script solo como referencia). psql: para que funcione este comando se debe identificar como un usuario de PostgreSQL. -d: identifica la base de datos en la cual se van a subir las tablas. base_datos: nombre de la base de datos en la que se subirn las tablas. -f: tipo de formato que se va a subir y al final ponemos el nombre del script.sql. Sintaxis: $ shp2pgsql archivo.shp base_datos > script.sql $ psql -d base_datos -f script.sql Ejemplo $ shp2pgsql /home/user/curvas_nivel.shp bd_curvas > script.sql $ psql -d bd_curvas -f script.sql

21

gdal infoPermite visualizar los atributos de una capa raster. Sintaxis: $ gdalinfo archivo.tif Ejemplo: $ gdalinfo HYP_50M_SR.tif Driver: GTiff/GeoTIFF Files: HYP_50M_SR.tif HYP_50M_SR.aux HYP_50M_SR.rrd Size is 10800, 5400 Coordinate System is: GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.2572235629972, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0], UNIT["degree",0.0174532925199433], AUTHORITY["EPSG","4326"]] Origin = (-179.999999999999972,90.000000000000000) Pixel Size = (0.033333333333330,-0.033333333333330) Metadata: AREA_OR_POINT=Area TIFFTAG_SOFTWARE=Adobe Photoshop CS3 Macintosh TIFFTAG_DATETIME=2009:09:09 14:51:29 TIFFTAG_XRESOLUTION=342.85699 TIFFTAG_YRESOLUTION=342.85699 TIFFTAG_RESOLUTIONUNIT=2 (pixels/inch) Image Structure Metadata: INTERLEAVE=PIXEL Corner Coordinates: Upper Left (-180.0000000, 90.0000000) (180d 0'0.00"W, 90d 0'0.00"N) Lower Left (-180.0000000, -90.0000000) (180d 0'0.00"W, 90d 0'0.00"S) Upper Right ( 180.0000000, 90.0000000) (180d 0'0.00"E, 90d 0'0.00"N) Lower Right ( 180.0000000, -90.0000000) (180d 0'0.00"E, 90d 0'0.00"S) Center ( -0.0000000, 0.0000000) ( 0d 0'0.00"W, 0d 0'0.00"N) Band 1 Block=10800x1 Type=Byte, ColorInterp=Red Overviews: 2700x1350, 1350x675, 675x338, 338x169, 169x85, 85x43 Metadata: LAYER_TYPE=athematic Band 2 Block=10800x1 Type=Byte, ColorInterp=Green

22

Overviews: 2700x1350, 1350x675, 675x338, 338x169, 169x85, 85x43 Metadata: LAYER_TYPE=athematic Band 3 Block=10800x1 Type=Byte, ColorInterp=Blue Overviews: 2700x1350, 1350x675, 675x338, 338x169, 169x85, 85x43 Metadata: LAYER_TYPE=athematic

gdal_rasterizePermite hacer una unin de una capa raster y una capa vectorial, siempre y cuando el datum y la proyeccin de las dos capas sean las mismas. Missing source or destination. Usage: gdal_rasterize [-b band] [-i] [-burn value] | [-a attribute_name] | [-3d] [-l layername]* [-where expression] [-sql select_statement]

$ gdal_rasterize -b 1 -burn 255 -l 10m_rivers_europe 10m_rivers_europe.shp /home/enrique/Descargas/HYP_50M_SR/HYP_50M_SR.tif

23

Diagrama de transformacin de cartas.

Crear un punto, lnea o polgono a travs de un query sql Para poder crear una capa con cualquiera de los elementos vectoriales en una capa gis, puede punto, lnea o polgono necesitamos tener instalado Postgres con el complemento postgis. La Base de datos que se crea debe heredar las tablas de postgis que son: SPATIAL_REF_SYS GEOMETRY_COLUMNS

1. Pasos para crear la base de datos en pgAdmin III. Iniciar PostgreSQL

Damos clic derecho y seleccionamos conectar.

Hacemos clic derecho sobre la opcin Bases de Datos y seleccionamos Nueva Base de Datos

Llenamos los campos necesarios para crear la base de datos y damos clic en aceptar.

2. Query para crear una tabla con campo geomtrico.

26

Iniciamos con las sentencias del leguaje SQL para la creacin de la tabla

El script nos debe quedar de la siguiente forma: create table river ( gid serial , NAME varchar, DIAK_CDE varchar, NAME2 varchar, DIAK_CDE2 varchar, TYPE varchar, STATUS varchar, NAVIG varchar );

27

Verificamos si se cre correctamente la tabla en la base de datos.

Ntese que todava no se ha agregado el campo de geometra, estn nicamente los campos alfanumricos. Para agregar el campo de geometra utilizamos una funcin de PostGIS denominada AddGeometryColumn. La cual tendremos que mandarle el parmetro de esquema, tabla, campo geomtrico, SRID, tipo de geometra, y nmero de dimensiones

Procedimiento para agregar un campo geomtrico a la tabla.

28

El Query de AddGeometryColumn quedara de la siguiente manera: EJEMPLO: Select AddGeometryColumn('', 'river','the_geom','-1','POLYGON',2);

Descripcin de los valores posibles que se pueden introducir cuando agregamos en campo geomtrico a la tabla.

Select AddGeometryColumn ('', 'river','the_geom','-1','POLYGON',2);

El primer atributo es = '' En este apartado es para poner el nombre del esquema que queramos agregar siempre y cuando ya se encuentre en la base de datos, En este ejemplo pasamos los parmetros vacos para que tome el esquema principal que sera de tipo 'Public'.

Segundo atributo del Query nombre de la tabla = 'river' Solo se introduce en nombre de la tabla a la cual queremos agregar el campo geomtrico.

29

El tercer componente es agregar el campo geomtrico = 'the_geom' Es donde se van almacenar todas las posiciones geogrficas de cada elemento que se vaya creando en la tabla.

El Cuarto atributo se refiere a la proyeccin = '-1' Es el identificador de referencia espacial. En este caso se pone -1 ya que se refiere a la proyeccin mundial (WGS84).

El Quinto componente se refiere al tipo de objeto espacial = 'POLYGON' Dentro de este campo se pude especificar si es POINT, LINESTRING, POLYGON, MULTYPOINT, GEOMETRYCOLLECTION.

En el ltimo parmetro se refiere a la dimensin espacial = 2 En este parmetro se determina si la dimensin espacial es 2D, 3D, 4D, solo basta con colocar el nmero como en el ejemplo.

Cuando se agrega el campo geomtrico a la tabla automticamente se agrega el registro a la tabla GEOMETRY_COLUMNS para determinar que existe una tabla con campos geoespaciales.

30

3. Insertar datos a la tabla espacial. A continuacin se muestra como insertar datos a travs del Query de PostgreSQL a una tabla espacial.

Cdigo ejemplo:

insert into river values(

31

'0', 'Manistee', NULL, NULL, NULL, 'stream', 'secondary', 'nonnavigable', GeometryFromText('POLYGON((-101.004056 38.2435 ,-101.004056 48.999968 ,-100.501953 48.999718 ,-100.002228 49 ,-99.835556 49 ,-99.335556 48.999435 ,-98.868607 49 ,-98.502228 48.999435 ,-98.269165 49.000275 ,97.969162 49.000275 ,-97.801941 49 ,-97.635834 48.999435 ,-97.502792 48.999435 ,-97.21994 48.999718 ,-95.266556 48.999977 ,-95.154175 48.999435 ,-95.153961 49.173332 ,-95.154449 49.333328 ,-95.154175 49.366386 ,95.152786 49.376656 ,-95.142502 49.371658 ,-95.120834 49.364998 ,-95.081863 49.359592 ,-95.025833 49.357498 ,-94.998611 49.357498 ,-94.96209 49.36097 ,94.931961 49.35854 ,-94.81778 49.305546 ,-94.805687 49.186661 ,-94.798332 49.15749 ,-94.766953 49.075554 ,-94.74527 49.028603 ,-94.729996 48.996941 ,94.718605 48.974709 ,-94.705841 48.933186 ,-94.700981 48.902493 ,-94.707039 48.857998 ,-94.708054 48.796799 ,-94.694992 48.77874 ,-94.640419 48.741104 ,-94.605835 48.724434 ,-94.523895 48.701935 ,-94.500839 48.696938 ,94.461044 48.694988 ,-94.433319 48.701935 ,-94.400352 48.710827 ,-94.29847 48.707214 ,-94.267365 48.695892 ,-94.247887 48.660995 ,-94.134171 48.642769 ,-94.111938 48.641106 ,-94.063889 48.638046 ,-93.882919 48.630272 ,93.858749 48.628605 ,-93.833954 48.616383 ,-93.818893 48.586243 ,-93.804787 48.531864 ,-93.785835 48.517078 ,-93.724167 48.513885 ,-93.660698 48.515137 ,-93.496254 48.538609 ,-93.464241 48.551727 ,-93.454063 48.584332 ,-93.40834 48.608604 ,-93.315697 48.629158 ,-93.244995 48.640549 ,-92.951317 48.622627 ,-92.715286 48.541382 ,-92.697769 48.485268 ,-92.58223 48.441376 ,-92.455276 48.394157 ,-92.426392 48.311661 ,-92.359856 48.231728 ,-92.33168 48.234161 ,-92.291405 48.248863 ,-92.28611 48.269993 ,-92.299789 48.299366 ,-92.27681 48.334991 ,-92.257233 48.346939 ,-92.162216 48.356659 ,-92.141678 48.357216 ,-92.039375 48.345341 ,-92.014168 48.304436 ,-92.008064 48.280964 ,91.991798 48.261246 ,-91.963715 48.240536 ,-91.940277 48.230545 ,-91.850555 48.20388 ,-91.78389 48.19471 ,-91.740135 48.191376 ,-91.6875 48.144714 ,91.645142 48.098343 ,-91.573624 48.093048 ,-91.462784 48.05777 ,-91.418335

32

48.041107 ,-91.386803 48.05888 ,-91.347229 48.068054 ,-91.318611 48.069439 ,-91.27639 48.072632 ,-91.240555 48.083603 ,-91.19249 48.114998 ,-91.14917 48.144157 ,-91.126099 48.154991 ,-90.969162 48.214714 ,-90.928329 48.2286 ,90.898056 48.236656 ,-90.868607 48.237495 ,-90.835213 48.227074 ,-90.8358 48.20446 ,-90.773895 48.103748 ,-90.749863 48.09277 ,-90.279999 48.113052 ,90.146523 48.121449 ,-90.065552 48.106453 ,-90.032776 48.069717 ,-89.99424 48.025269 ,-89.899788 47.990616 ,-89.862503 48.000832 ,-89.838898 48.011665 ,-89.755562 48.029575 ,-89.606384 48.011868 ,-89.572914 48.002251 ,89.493126 48.003166 ,-89.447769 48.003326 ,-89.356659 47.979713 ,-89.323334 47.99305 ,-88.974167 48.13916 ,-88.691666 48.255554 ,-88.645554 48.26416 ,88.368057 48.31221 ,-88.188324 48.244156 ,-87.444717 47.955826 ,-87.341675 47.915543 ,-87.201401 47.860275 ,-86.884445 47.734718 ,-86.568893 47.60833 ,-86.46666 47.567215 ,-86.051392 47.39888 ,-86.014725 47.383881 ,-85.908544 47.340395 ,-85.908544 38.2435 ,-101.004056 38.2435 ))',-1) );

Este ejemplo de Query geoespacial.

hace una insercin de datos a la tabla river que

A continuacin se muestra la representacin grfica de la tabla geoespacial en un visualizador.

33

Bibliografa:http://help.nceas.ucsb.edu/GDAL http://www.naturalearthdata.com/downloads http://www.guia-ubuntu.org/index.php?title=PostgreSQL http://www.libgd.org/Main_Page http://www.digipedia.pl/man/doc/view/shp2pgsql.1 http://www.gdal.org/ogr2ogr.html http://www.inf.ufrgs.br/~vbogorny/CMP539/exercicio1/spatialQueries.html

34

Anexo

35

Las cartas descargadas de divisin poltica, lagos y ros del mundo se obtuvieron del sitio: www.naturalearthdata.com/downloads estn elaboradas con el apoyo de las siguientes empresas:

Natural Earth es un conjunto de datos de dominio pblico disponibles en el mapa 01:10 m, 1:50, y las escalas 1:110. Con los datos vectoriales y raster estrechamente integrado, con Natural Earth puedes elaborar mapas con la cartografa o el software SIG. Natural Earth fue construido gracias a la colaboracin de muchos voluntarios y con el apoyo de NACIS (North American Cartographic Information Society), y es gratuito para su uso en cualquier tipo de proyecto (ver nuestro Trminos de uso pgina para ms informacin).

Las cartas de ros y lagos de Mxico respaldas por ESRI se obtuvieron de la pgina: http://www.cas.sc.edu/gis/datalinks/topic_nonscgeog.html La carta de divisin poltica de Mxico respalda por ESRI se obtuvo de la pgina: http://www.maplibrary.org/stacks/Central%20America/Mexico/index.php

36

La carta de curvas de nivel de Mxico respaldada por el INEGI (Instituto Nacional de Estadstica y Geografa) se obtuvo de la siguiente pgina: http://mapserver.inegi.gob.mx/data/inf1m/?c=720

37