Sistemas de Información Geográfica BD Espaciales y BD Espacio

Anuncio
Sistemas de Información
Geográfica
BD Espaciales y
BD Espacio-temporales
Miguel Rodríguez Luaces
Laboratorio de Bases de Datos
Universidade da Coruña
Objetivo


Hemos descrito de modo teórico y abstracto los campos
de SIG, SBGD espaciales y espacio-temporales
Ahora describiremos las herramientas que nos permite
implementar estos sistemas. En particular
— ¿Por dónde empezar?
— Herramientas SIG comerciales
— Sistemas gestores de bases de datos
— Servicios web de información geográfica
— Clientes web de información geográfica
— Herramientas de escritorio
— Librerías de desarrollo
— Fuentes de información geográfica
2/72
¿Por dónde empezar?

Free GIS [http://www.freegis.org]
— 355 componentes software, 25 fuentes de datos, 19
fuentes de documentación y 10 proyectos
— Clasificados por aplicación, lenguaje, SO, licencia, etc.
3/72
¿Por dónde empezar?

Open Source GIS [http://www.opensourcegis.org/]
— 247 componentes software
— Ahora mismo es sólo una lista enorme de descripciones
4/72
¿Por dónde empezar?

Open Geospatial Consortium [http://www.opengeospatial.org]
— Estándares para información geográfica
— Registro de productos que los cumplen
5/72
¿Por dónde empezar?

Open Source Geospatial Foundation [http://www.osgeo.org/]
— Incubadora de proyectos
— Capítulo español
6/72
Herramientas SIG comerciales

ESRI ArcGIS [http://www.esri.com/]
— El líder del mercado
7/72
Herramientas SIG comerciales

ESRI ArcGIS [http://www.esri.com/]
— Conectores para bases de datos SFS


Oracle Spatial
PostGIS desde la versión 9.3
— Soporte para otros SGBD

Access, Oracle, DB2, SQL Server, Informix
— Servidores de datos


ArcSDE [ArcGIS Server]
ArcIMS
— Soporte para estándares, pero con trabajo

Conectores para los servicios
8/72
Herramientas SIG comerciales

ESRI ArcGIS [http://www.esri.com/]
— Mucha funcionalidad


Vectorial
Raster
— Visor gratuito [ArcExplorer]

http://www.esri.com/software/arcexplorer/explorer.html
— Creador del formato shapefile





Estandar de facto en sistemas de información geográfica
Descripción técnica del formato publicada
Utilizado como formato de intercambio
Permite datos alfanuméricos y geográficos
No permite geometrías de distintos tipos en un fichero
9/72
Herramientas SIG comerciales

Intergraph GeoMedia [http://www.intergraph.es]
— El gran rival de ESRI
10/72
Herramientas SIG comerciales

Intergraph GeoMedia [http://www.intergraph.es]
— Conectores para bases de datos SFS
Oracle Spatial
 NO tiene soporte para PostGIS
Soporte para otras bases de datos
 Access, SQL Server, DB2
Servidores de datos
 Geomedia Web Map Professional
Mucha funcionalidad
 Vectorial
 Raster
Visor gratuito (Geomedia Viewer)

—
—
—
—

http://www.intergraph.es/Productos/GeoMedia/geomedia_viewer.asp
11/72
Herramientas SIG comerciales

Otras herramientas SIG
— MapInfo [http://www.mapinfo.es]
— AutoCAD Map 3D
— Autodesk MapGuide
— Microstation Geographics

Tienen las ventajas y los problemas de los productos
comerciales
— Ventajas


Productos llave en mano
Soporte de una gran empresa
— Problemas


El producto se vende en paquetes
El software es una caja negra
12/72
Sistemas gestores de bases de datos

Oracle Spatial
[http://www.oracle.com/technology/products/spatial/]
— Es una opción para Oracle 11g
13/72
Sistemas gestores de bases de datos

Oracle Spatial
[http://www.oracle.com/technology/products/spatial/]
— Oracle 11-g incluye Oracle Locator
— Funcionalidad



Tipos de datos y operadores (OGC y SQL/MM)
Sistemas de coordenadas
Índices espaciales
— Oracle Spatial es una opción adquirible por separado
— Funcionalidad



Soporte para raster, topología y redes
Cálculo de rutas
Servicios web de publicación de información
14/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Desarrollado por Refractions Research
15/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Extensión para PostgreSQL
— Tipos de datos y operaciones para objetos geográficos
basados en el modelo vectorial
— Funcionalidad
 Funciones de gestión


Creación y borrado de tablas y columnas geométricas

Gestión de sistemas de referencia espacial
Predicados espaciales



Dimension-Extended 9 Intersection Model
Operadores espaciales
Predicados espaciales usando el bounding box
16/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Funcionalidad (sigue)


Funciones de medición
Funciones de utilidad




Comprobación de validez geométrica
Constructores de geometrías
Operadores de acceso a las geometrías
Operadores de edición de geometrías

Modificar las coordenadas

Transformación de sistema de referencia espacial

Transformaciones afines (rotación, desplazamiento, escalado)

Simplificación
17/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Funcionalidad (sigue)




Conversión de formatos

Well-Know Text [WKT] y Extended WKT

Well-Know Binary [WKB] y Extended WKB

GML, KML y SVG (con precisión configurable)
Operaciones de SQL Multimedia
Importación y exportación de datos

shp2pgsql (de Shapefile a SQL)

pgsql2shp (de SQL a Shapefile)
Clases para utilizar en un driver JDBC
18/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Funcionalidad (sigue)

Índices espaciales

No todas las funciones del SQL hacen uso de los índices

Ejemplo:
SELECT the_geom
FROM geom_table
WHERE
distance(
the_geom,
GeomFromText('POINT(100 200)', -1)
) < 10

La función distance no utiliza el índice espacial, el planificador
resuelve la consulta como una búsqueda secuencial
19/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Funcionalidad (sigue)

Índices espaciales

Para que la consulta utilice el índice podemos reescribirla:
SELECT the_geom
FROM geom_table
WHERE the_geom &&
'BOX3D(90 190, 110 210)'::box3d
AND
distance(
the_geom,
GeomFromText('POINT(100 200)', -1)
) < 10

El planificador sabe que puede utilizar el índice espacial para
evaluar la operación &&, con lo que el número de tuplas que
deben ser analizadas secuencialmente es mucho menor
20/72
Sistemas gestores de bases de datos

PostGIS [http://www.postgis.org/]
— Instalación

En Windows:




En Linux: (dos alternativas)




Instalar Postgres sin instalar el PostGIS que viene integrado
Instalar PostGIS con su propio instalador
El instalador crea una plantilla (template_postgis) que hay que
usar para crear bases de datos con funcionalidad geográfica
Encontrar un paquete apropiado para nuestra distribución
Descargar y compilar PostGIS con el código fuente de Postgres
Hay dos scripts (lwpostgis.sql y spatial_ref_sys.sql) que añaden
la funcionalidad geográfica a una base de datos ya creada
Una BD con soporte espacial incluye:


Una tabla geometry_columns con metadatos de PostGIS
Una tabla spatial_ref_sys con los sistemas de referencia
21/72
Sistemas gestores de bases de datos

MySQL [http://www.mysql.com/]
— Incluye soporte espacial de forma nativa
22/72
Sistemas gestores de bases de datos

MySQL [http://www.mysql.com/]
— Funcionalidad [diferencias]


Funciones de gestión

Los tipos de datos geográficos están integrados en el lenguaje

No hay soporte para sistemas de referencia espacial
Predicados espaciales


Operadores espaciales y operadores de edición


No implementados
Conversión de formatos


Implementados usanfo el bounding box
Sólo Well-Know Text [WKT] y Well-Know Binary [WKB]
Importación y exportación de datos

Son necesarias herramientas externas
23/72
Sistemas gestores de bases de datos

SQLite [http://www.sqlite.org/]
— Librería C que implementa un SGBD autocontenido
— La base de datos se almacena en un fichero portable
24/72
Sistemas gestores de bases de datos

SpatiaLite y VirtualShape [http://www.gaia-gis.it/spatialite/]
— Extensión para SQLite con funcionalidad geográfica
— Funcionalidad

Formatos de datos: WKT y WKB

Soporte para sistemas de referencia espacial

Construcción de geometrías

Operaciones de acceso y medición

Predicados espaciales calculados con el bounding box

Tansformaciones afines (rotación, escalado y desplazamiento)

Importación y exportación de shapefiles
— VirtualShape permite utilizar shapefiles directamente desde SQL
25/72
Servicios web de información geográfica

UMN MapServer [http://mapserver.gis.umn.edu/]
— El servicio web más exitoso
26/72
Servicios web de información geográfica

UMN MapServer [http://mapserver.gis.umn.edu/]
— Lenguaje de implementación: C++
— Modos de empleo:


Como servicio web: CGI
Como librería: PHP, Python, Perl, Ruby, Java, y C#
— Desarrollado para Unix. La instalación en Windows es
complicada (cada vez menos)
— Configuración mediante ficheros de texto
— El más rápido y ligero
27/72
Servicios web de información geográfica

UMN MapServer [http://mapserver.gis.umn.edu/]
— Fuentes de datos



ESRI: Shapefiles, ArcSDE
SGBD: Oracle, PostGIS, MySQL
Muchos otros formatos (ver OGR)
— Estándares soportados




WMS (cliente y servidor), WMC y SLD
WFS (no transaccional), Filter encoding
WCS
GML
28/72
Servicios web de información geográfica

GeoServer [http://geoserver.org]
— El más fácil de instalar y configurar
29/72
Servicios web de información geográfica

GeoServer [http://geoserver.org]
— Lenguaje de implementación: Java
— Modo de empleo:

Como servicio web: aplicación J2EE
— Configuración mediante interfaz de usuario
— Rendimiento limitado: no es el más rápido
— Incluye OpenLayers como visor integrado
— Genera mapas en muchos formatos



Google Earth: KML
PDF
SVG
30/72
Servicios web de información geográfica

GeoServer [http://geoserver.org]
— Fuentes de datos


Maduras: PostGIS, Shapefile, ArcSDE, DB2, Oracle
Soportadas: WFS, MySQL, MapInfo
— Estándares soportados




WMS y SLD
WFS (transaccional), Filter encoding
WCS
GML
31/72
Servicios web de información geográfica

Deegree [http://www.deegree.org/]
— El más completo
32/72
Servicios web de información geográfica

Deegree [http://www.deegree.org/]
— Lenguaje de implementación: Java
— Modo de empleo:

Como servicio web: aplicación J2EE
— Configuración mediante ficheros y difícil
— Buen rendimiento
— Es el que implementa más estándares del OGC
— Incluye un GeoPortal como desarrollo propio
— Tiene la peor documentación
33/72
Servicios web de información geográfica

Deegree [http://www.deegree.org/]
— Fuentes de datos


SGBD: PostGIS, Oracle, SQL Genérico (SQL Server, DB2)
ESRI: Shapefile, ArcSDE
— Estándares soportados







WMS y SLD
WFS (transaccional), Filter encoding
WCS
GML
CSW
Web Processing Service
Web Terrain Service / Web Perspective View Service
34/72
Servicios web de información geográfica

MapGuide Open Source [http://mapguide.osgeo.org/]
— Liberado por Autodesk (parte de su software comercial)
35/72
Servicios web de información geográfica

MapGuide Open Source [http://mapguide.osgeo.org/]
— Lenguaje de implementación: C++
— Modo de empleo:


Como servicio web: CGI
Como librería: PHP, Java, .Net
— Ofrece clientes web listos para usar
— Acceso a datos sobre la biblioteca FDO



ESRI: Shapefile, ArcSDE, MySQL, ODBC
GDAL / OGR
Cliente de WMS y WFS
— Estándares soportados


WMS
WFS
36/72
Servicios web de información geográfica

TileCache [http://www.tilecache.org/]
— Implementación de un WMS-C por MetaCarta
37/72
Servicios web de información geográfica

TileCache [http://www.tilecache.org/]
— Lenguaje de implementación: Python
— Modo de empleo:

Como servicio Web: CGI
— Funcionalidad



En lugar de generar la imagen con cada petición al WMS,
se almacena una cache de tiles
Para cada nivel de escala, se renderiza de antemano la
cartografía como un conjunto de celdas
TileCache actua como servicio WMS-C que puede ser
utilizado desde clientes que soporten el estándar
38/72
Servicios web de información geográfica

FeatureServer [http://featureserver.org/]
— Servidor de features desarrollado por MetaCarta
39/72
Servicios web de información geográfica

FeatureServer [http://featureserver.org/]
— Lenguaje de implementación: Python
— Modo de empleo:

Como servicio Web: CGI
— Fuentes de datos:



SGBD: DBM, BerkeleyDB, PostGIS
Servicios: WFS
Otros: OGR (Shapefile, GML, etc.), Flickr
— Servicios (entrada y salida)


Entrada y salida: JSON, GeoRSS, KML
Sólo salida: HTML, WFS (GML), OpenStreetMap
40/72
Servicios web de información geográfica

GeoNetwork [http://geonetwork-opensource.org/]
— Catálogo de metadatos
41/72
Servicios web de información geográfica

GeoNetwork [http://geonetwork-opensource.org/]
— Lenguaje de implementación: Java
— Modo de empleo:

Como servicio web: aplicación J2EE
— Permite gestionar y publicar metadatos de nuestra
infraestructura de datos espaciales
— Fuentes de datos
 Estándares ISO de metadatos (ISO 19115 y 19139)
 Otros estándares: FGDC (EE.UU.), Dublin Core
— Estándares soportados
 CSW de Open Geospatial Consortium
 Open Search
 Open Archive Initiative
42/72
Clientes web de información geográfica

Chameleon [http://chameleon.maptools.org/]
— Orientado a UMN MapServer
43/72
Clientes web de información geográfica

Chameleon [http://chameleon.maptools.org/]
— Lenguaje de desarrollo: PHP + Javascript
— Diseño orientado a Widgets y utiliza AJAX
— Baja actividad
— Funcionamiento:

El interfaz de usuario se define en una plantilla HTML
<CWC2

TYPE="MapDHTML" VISIBLE="true" WIDTH="400" HEIGHT="300"
ALLOWRESIZE="true" MARQUEECOLOR="#FF3333" MARQUEEWIDTH="2"
MINSCALE="1"/>
La plantilla se procesa en una página PHP
$szTemplate = "./sample_basic.html";
$szMapFile = "../map/chameleon.map";
$oApp->CWCInitialize( $szTemplate, $szMapFile
$oApp->CWCExecute();
);
44/72
Clientes web de información geográfica

CartoWeb [http://www.cartoweb.org/]
— Orientado a UMN MapServer
45/72
Clientes web de información geográfica

CartoWeb [http://www.cartoweb.org/]
— Lenguaje de desarrollo: PHP + Javascript
— Arquitectura escalable (altamente modular)
— Implementa un geoportal completo. Utiliza AJAX
— Baja actividad
46/72
Clientes web de información geográfica

Ka-Map [http://ka-map.maptools.org/]
— Orientado a UMN MapServer
47/72
Clientes web de información geográfica

Ka-Map [http://ka-map.maptools.org/]
— Lenguaje de desarrollo: PHP + JavaScript
— Uso de Tiling, PreCaché y AJAX
— Colaboración con OpenLayers
— Funcionamiento:



El interfaz de usuario se define una página HTML
La página realmente se genera con PHP, que se encarga
de cargar el mapa
El mapa se define en el formato de UMN MapServer
— El menos dependiente de MapServer, pero necesita
adaptación para hacerlo independiente
48/72
Clientes web de información geográfica

OpenLayers [http://openlayers.org/]
— Independiente del servidor
49/72
Clientes web de información geográfica

OpenLayers [http://openlayers.org/]
— Lenguaje de desarrollo: JavaScript
— Utiliza AJAX, tiles, cache
— Mucha actividad y sinergia con otros proyectos
— Funcionamiento:
<html><head><title>OpenLayers Example</title>
<script src="OpenLayers.js"></script></head>
<body><div style="width:100%; height:100%" id="map"></div>
<script defer="defer" type="text/javascript">
var map = new OpenLayers.Map('map');
var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
"http://labs.metacarta.com/wms/vmap0",
{layers: 'basic'} );
map.addLayer(wms);
map.zoomToMaxExtent();
</script>
</body></html>
— Cliente de: WMS, WFS, WMC, GeoRSS, KML, GeoJSON
50/72
Clientes web de información geográfica

Community MapBuilder [http://communitymapbuilder.org/]
— Independiente del servidor
51/72
Clientes web de información geográfica

Community MapBuilder [http://communitymapbuilder.org/]
— Lenguaje de desarrollo: JavaScript
— Buena documentación
— Muy bien estructurado y extensible
— Funcionamiento:



El interfaz de usuario es una página HTML con etiquetas
marcadas con ids específicos
Mediante JavaScript se carga un fichero XML de
configuración que define el interfaz de usuario
El fichero referencia a un fichero WMC que define el mapa
— Cliente: WMS, WFS, WMC, GeoRSS, GML, Google
— Edición sobre un WFS-T
52/72
Herramientas SIG de escritorio

gvSIG [http://www.gvsig.gva.es]
— Desarrollo español
53/72
Herramientas SIG de escritorio

gvSIG [http://www.gvsig.gva.es]
— Liderado por la Generalitat Valenciana
— Lenguaje de desarrollo: Java
— Desarrollo rápido y gran comunidad de usuarios
— Mucha funcionalidad



Raster y vectorial
Edición
Soporte de estándares
— Buen diseño arquitectónico
— Escasa documentación técnica
54/72
Herramientas SIG de escritorio

uDIG [http://udig.refractions.net/]
— Desarrollo de Refractions Research (PostGIS)
55/72
Herramientas SIG de escritorio

uDIG [http://udig.refractions.net/]
— Lenguaje de desarrollo: Java
— Basado en Eclipse
— Requerimientos hardware bastante elevados
— Muy buena documentación, pero en inglés
— Gran comunidad de usuarios
— Proyecto muy relacionado con Geotools y GeoServer,
comparten desarrolladores.
56/72
Herramientas SIG de escritorio

openJUMP [http://openjump.org]
— El pionero
57/72
Herramientas SIG de escritorio

openJUMP [http://openjump.org]
— Lenguaje de desarrollo: Java
— Un buen punto de partida



Muy bien estructurado internamente
Fácil extensibilidad
Complejidad reducidad
— La funcionalidad es limitada
— Gran número de proyectos derivados:



Kosmo (español),
JUMP (el desarrollo original)
deeJUMP (de los creadores de deegree)
58/72
Herramientas SIG de escritorio

GRASS [http://grass.itc.it/]
— El más fuerte en análisis raster
59/72
Herramientas SIG de escritorio

GRASS [http://grass.itc.it/]
— Lenguaje de desarrollo: C++
— Desarrollo en UNIX, su uso en Windows es complejo
— Se apoya en GDAL/OGR y PROJ4
— Orientado a línea de comandos
— Incluye mucha funcionalidad y documentación



Análisis 2D y 3D
Cálculos sobre imágenes
Funcionalidad vectorial y SQL
— El punto débil siempre ha sido el interfaz de usuario y la
curva de aprendizaje
60/72
Herramientas SIG de escritorio

Quantum GIS [http://www.qgis.org/]
— Lenguaje de desarrollo: C++
— Pensado como la versión amigable de GRASS

SAGA GIS [http://www.saga-gis.uni-goettingen.de/]
— Lenguaje de desarrollo: C++
— Orientado principalmente a raster
— Comunidad de usuarios escasa

MapWindow [http://www.mapwindow.com/]
— Lenguaje de desarrollo: C++
— Incluye un cliente de escritorio y un control ActiveX
— Desarrollado para la plataforma .Net
— Orientado al análisis hidrológico
61/72
Herramientas SIG de escritorio

Globos 3D
— NASA WorldWind [http://worldwind.arc.nasa.gov/]




Lenguaje de desarrollo: C#
Utiliza información geográfica libre en la visualización
Es software open source
Acaban de sacar un SDK en Java
— Google Earth [http://earth.google.com]



Es la aplicación referencia
Permite incluir nueva información (KML)
Ni la cartografía ni el software son libres
62/72
Herramientas SIG de escritorio

CatMDEdit [http://catmdedit.sourceforge.net/]
— Desarrollo del consorcio TeIDE (Español)
— Actualmente mantenido por la Universidad de Zaragoza y
GeoSLab
— Editor de metadatos de escritorio
— Soporta:
 ISO 19115 - NEM
 Dublin Core
 CSDGM
— Visor de tesauros incluido
63/72
Librerías de desarrollo

GeoTools [http://geotools.codehaus.org/]
— Lenguaje de desarrollo: Java
— Proyecto maduro
— Mucha funcionalidad (datos, filtros, pintado, etc.)
— Fuerte adherencia a estándares:
WFS, SLD, Filter Encoding
— Soporte completo de formatos:
 Vector:
SHP, PostGIS, MySQL, Oracle,
Geomedia, ...
 Ráster: GeoTIFF, ArcGrid, formatos GDAL,...
— Utilizado por:
 uDIG
 GeoServer

ArcSDE,
64/72
Librerías de desarrollo

Java Topology Suite [http://tsusiatsoftware.net/jts/]
— Lenguaje de desarrollo: Java
— Implementación del estándar SFS con objetos Java
— Incluye funcionalidad adicional (índices, poligonización)
— Muy utilizado en otros proyectos

Java Conflation Suite [http://www.jump-project.org]
— Lenguaje de desarrollo: Java
— Librería para la combinación datasets geoespaciales

GEOS [http://geos.refractions.net/]
— Migración de JTS a C++
— Utilizado en PostGIS
65/72
Librerías de desarrollo

GDAL [http://www.gdal.org/]
— Lenguaje de desarrollo: C++
— Soporte raster:
50+ formatos: GeoTIFF, Erdas, ECW, MrSID, JPEG2000,
SDE,...
— Utilizado como librería de acceso a datos en
 Software libre: MapServer, Grass, QGIS, gvSIG
 Software propietario: ArcGIS, Google Earth, FME, ...
— Es la biblioteca geoespacial más utilizada


OGR [http://www.gdal.org/ogr/]
— Soporte Vectorial:

20+ formatos: SHP, ArcSDE, ESRI Personal geoDB, GML,
GPX, MapInfo, DGN, KML, Oracle Spatial, ...
66/72
Librerías de desarrollo

PROJ4 [http://proj.maptools.org/]
— Lenguaje de desarrollo: C++
— Soporte de sistemas de proyeccción


GDAL, MapServer, gvSIG, Grass, ...
FDO [http://fdo.osgeo.org/]
— Lenguaje de desarrollo: C++
— API acceso Ráster y Vector de MapGuide Open Source
— Soporte formatos:

ArcSDE, SHP, SDF, WMS, WFS, GDAL, mySQL, SQL
Server (beta).
— Comunidad activa no exclusiva de Autodesk
67/72
Fuentes de información geográfica

Infraestructura de Datos Espaciales de España (IDEE)
— http://www.idee.es/
— Datos propios
— Registro de servidores de España

IDE de Galicia (SITGA)
— http://sitga.xunta.es/
— Servicios OGC (WMS y WFS
— Datos descargables

IDE de A Coruña (Deputación da Coruña)
— http://www.dicoruna.es/webeiel
— Cartografía de la provincia de A Coruña
— Servicios OGC (WMS, WFS, Nomenclátor, CSW)
68/72
Fuentes de información geográfica

Visible Earth Project [http://visibleearth.nasa.gov/]
— Imágenes de satélite de la Tierra
— Blue Marble: imágenes a 500 m/pixel

SRTM [http://www2.jpl.nasa.gov/srtm/]
— Shuttle Radar Topography Mission
— Datos de elevación cada 90 m (aprox)

OpenStreetMap [http://www.openstreetmap.org/]
— Aplicar el concepto Wiki a la información geográfica
— Hay herramientas de edición, visualización y descarga

Geonames [http://www.geonames.org/]
— Nomenclator (Gazetteer)
— Listado de nombres de lugar con ubicaciones geográficas
69/72
Conclusiones
70/72
Referencias

Esta presentación contiene material extraído de:
Panorama actual del ecosistema de software libre para SIG
Miguel Montesinos, Jorge Gaspar Sanz
Prodevelop
[email protected], [email protected]

Presentado en las II Jornadas de SIG Libre
http://www.sigte.udg.es/jornadassiglibre
http://www.sigte.udg.es/jornadassiglibre/uploads/file/Ponencias/P5.odp
71/72
Propiedad intelectual
72/72
Descargar