Introducción a Python para usos geoespaciales

SIGTE

Roger Veciana i Rovira

meteocat

Twitter: @rveciana

Blog: http://geoexamples.blogspot.com

Python: Qué es

Python: Algunas ventajas

Instrucciones básicas de python

a = 3
b = 4
a + b

Condicionales

if b > a:
    print "b es mayor que a"

Iteraciones

for i in range(10):
    print "Iteración número " + str(i)

NumPy para el tratamiento de matrices

Abrir consola ipython

import numpy
a = numpy.ones((20,10))
a * 23
a + 1
a.sum()
a[3:6,4:8]
a[3:6,4:8] = 2
a[[2,3],[4,4]]

Probar

GDAL/OGR

Geospatial Data Abstraction Library

Ejemplo de uso de GDAL

El archivo con los ejemplos es gdal_ejemplos.py

Ejercicios GDAL

Ejemplo de uso de fiona

El archivo con los ejemplos es fiona_ejemplos.py

Ejercicios Fiona

Uso de proyecciones

El archivo con los ejemplos es osr_ejemplos.py

Formato WKT de las proyecciones

'PROJCS["ETRS89 / UTM zone 31N", Nombre de la proyección (arbitratrio)

GEOGCS["ETRS89", Código del Datum
DATUM["European_Terrestrial_Reference_System_1989", Nombre del Datum
SPHEROID["GRS 1980",6378137,298.2572221010002, AUTHORITY["EPSG","7019"]], Definición del elipsoide

TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6258"]], Transformación aproximada del datum a WGS84. 0 indica que el programa asume que son similares
PRIMEM["Greenwich",0],Meridiano de referencia
UNIT["degree",0.0174532925199433],AUTHORITY["EPSG","4258"]],Transofmación a radianes

PROJECTION["Transverse_Mercator"],Etiqueta que define la proyección que usará proj4

PARAMETER["latitude_of_origin",0],
PARAMETER["central_meridian",3],
PARAMETER["scale_factor",0.9996],
PARAMETER["false_easting",500000],
PARAMETER["false_northing",0], Parámetros de la proyección UTM
UNIT["metre",1,AUTHORITY["EPSG","9001"]],AUTHORITY["EPSG","25831"]]' Unidades usadas

Geotransform

(258047, 1000, 0.0, 4753640, 0.0, -1000)

Xgeo = gt(0) + Xpixel*gt(1) + Yline*gt(2)
Ygeo = gt(3) + Xpixel*gt(4) + Yline*gt(5)

geotransform = ds.GetGeoTransform()
gdal.ApplyGeoTransform(geotransform, x, y)
gdal.InvGeoTransform(geotransform)

Ejemplo de uso de Mayavi2

El archivo con los ejemplos es mayavi_ejemplos.py

Algunos recursos

Muchas gracias

/

#