Está en la página 1de 11

NOTAS GVSIG, POSTGIS, ETC

La reproyección raster en gvSIG se hace a través de GDAL pero sin ofrecer


muchas de las opciones de éste. Lo que hace es obtener el código EPSG de
origen y de destino que introduzcas y aplicar lo que harías con GDALWARP
con los parámetros -s_srs y -t_srs. El método de resampleo que utiliza por
defecto es el vecino más próximo (-r near) que de momento no es
seleccionable.

- Los etiquetados definidos por el usuario a través de su tabla de


atributos se pueden convertir en anotaciones y posteriormente editar
esa capa de anotaciones para mover los textos en la posición que
haga falta.
- Para saber cómo se estructura una IDE correctamente es mejor tener
un mapfile con todas las capas y éstas deben seguir una jerarquía
temática.
- Las curvas de nivel se pueden generar usando los MDT que te puedes
descargar del CNIG. Eliges la cuadrícula, el MDT 25 ó 50; para hacer
las curvas de nivel necesitas Sextante.
- En la versión gvSIG 1.9 y 1.10 no se guarda la simbología de una
capa multipunto. Hay un bug subido al respecto. Un bug es un error o
defecto del software o hardware que hace que un programa funcione
incorrectamente. Suele estar causado por conflictos del software
cuando las aplicaciones intentan funcionar en tandem.
- La versión soportada de Autocad es la r14. Antes era la r12. Todo lo
que esté dibujado en una versión más nueva de Autocad hace que no
se pueda leer la tabla de atributos.
- Al cargar un DXF generado en una versión no conocida de Autocad en
gvSIG 1.10 ocurre lo siguiente:
o La capa DXF se visualiza en el TOC.
o Su tabla de atributos correspondiente contiene los atributos
o Su tabla de atributos está vacía, no tiene registros
Si el DXF se guarda como Autocad 2004 y repetimos el proceso en
gvSIG, la capa se carga sin problemas y la tabla de atributos contiene
todos los atributos y todos los registros esperados.

- gvSIG no admite bloques ni tramas de Autocad.

- Para instalar GRASS 6.4 SVN sobre Sextante, hay que dirigirse a
Archivos de Programas, buscar la carpeta en la que se instaló GRASS,
abrirla y buscar la carpeta extralib. Copia todos los archivos que hay
en ella y pégalos en la carpeta .lib. Instalar GRASS y debe funcionar
correctamente.

- La herramienta para trabajar con LIVE CD-DVD tipo ISO es Oracle VM


Virtualbox (gratuito) que sirve para crearse una máquina virtual
dentro de la instalación del sistema operativo.
- Obtención de datos de PostgreSQL desde Excel:
o Primero necesitamos instalar lo que se conoce como driver
ODBC para poder conectarnos a la base de datos.
o Primero buscamos en google sobre postgresql odbc driver.
o Un vistazo rapido y como que algo nos dice que la página
http://gborg.postgresql.org/project/psqlodbc/projdisplay.php
tiene algo que ver.

1
o Ahi claramente dice que se han cambiado a pgfoundry y que
debemos buscar en http://www.postgresql.org/ftp/odbc/
o De ahi nos muestra el directorio FTP, entramos a la carpeta de
versiones, vemos que hay DLL, MSI y otras, si no sabemos que
significan estas siglas pues a buscar en internet (no hay
pretexto por no saber), sabemos que MSI son las siglas de
MicroSoft Installer, o sea algo que se instala haciendo click en
windows, por tanto esta es la que elegimos, luego de la lista de
versiones escojemos la última disponible que corresponda con
nuestra version de postgresql, elegimos mirror y la
descargamos. Al momento de escribir esto utilice este enlace
o El archivo es un .zip así que extraemos los archivos a una
ubicacion temporal, por ejemplo c:\tmp para despues hacer
doble click en el .msi, esto arranca el programa de instalación,
luego seguimos los pasos, generalmente, next, next, next, ….,
finish.
o Una ves terminado nos vamos al Panel de Control >
Herramientas Administrativas > Origenes de datos ODBC
o Seleccionamos la pestaña DSN de sistema, luego boton
Agregar, vemos que en la lista de drivers ya aparece nuestro
driver para PostgreSQL, vienen uno ANSI y otro UNICODE (esto
tiene que ver con que tabla de caracteres esta usando la base,
cuando no se entienda un concepto o palabra, no duden en
buscar en internet, ya que abundan explicaciones para todos
los gustos sobre cada cosa).
o Vamos a seleccionar la version UNICODE, aquí ya nos pide la
información de conexión, primero el nombre que le vamos a
poner a nuestra fuente de datos por ejemplo FUENTE1, luego el
nombre de la base de datos que vamos a usar (ya que puede
haber diversas bases de datos en un mismo servidor), la
direccion IP o nombre del servidor de base de datos, un usuario
y un password.
o Poniendo todos estos datos, los salvamos y le damos en Test,
si vemos un mensaje Connection Successful, quiere decir que
ya nos conectamos a la base de datos.
o Ahora la parte interesante, como leer los datos desde excel.
Abrimos una hoja de calculo nueva, y en el menú: Datos >
Obtener datos externos > Nueva consulta de base de datos.
Aquí aparece el cuadro de selección de origen de datos, en el
listado aparece el origen que creamos con el nombre FUENTE1,
así que seleccionamos este y le damos aceptar. A continuación
nos pedirá que seleccionemos las tablas y columnas que
queremos consultar, para lo cual podemos usar el asistente o
mediante Microsoft Query, podemos usar la función que tiene
algo escondida para especificar el query mediante SQL, y
finalmente, una vez que nuestra consulta es lo que queremos,
exportar los datos a Excel.

- Crear un archivo de texto con extensión CSV para usarlo en gvSIG


como capa de eventos. Usa el ; para separa los campos y el . como
separador de decimales, del siguiente modo: 9; 31; 36.6; S; -1 77;
31; 16.2; W; -1. Primero la latitud y luego la longitud. Si es 1 indica
latitud N, si es -1 indica latitud S. Si es 1 indica longitud E, si es -1
indica longitud W.

2
- Se observan diferencias en las especificaciones del WFS 1.0.0 y WFS
1.1.0. En esta última especificación el Bounding Box se expresa de la
siguiente forma BBOX= lcc1, lcc2, ucc1, ucc2; siendo lcc= lower
corner coordinate y ucc= upper corner coordinate. Mientras
que en la version 1.0.0, el BBOX= minimum X, minimun Y,
maximum X, maximum Y. Nosotros estabamos aplicando la versión
1.1.0 pero estábamos introduciendo mal los pares de coordenadas. La
correspondencia en gvSIG es Derecha/Izquierda representan la X
(latitud) y Superior/Inferior representan la Y (longitud).

- Sólo me funciona la edición del mapa resultante si lo exporto a PS y


luego lo trato con GIMP. El pdf, no sé por qué, no lo abre GIMP. Otra
opción para poder editar los gráficos a posteriori es convertir el pdf
en svg mediante el convert de imagemagick y abrirlo con inkscape.
Exporta la totalidad de las capas activas, es decir, supongamos que
mi capa es un mapamundi y en mi mapa simplemente aparece por
ejemplo el Golfo de Cádiz... pues en el svg resultante aparece la
totalidad de la capa, esto es, el mapa mundi, aunque en el PDF sólo
se ve el mapa que has generado.

La estructura de ficheros es la siguiente:


- Bin: contiene los .class del subsistema
- Doc: contiene la documentación javadoc
- Lib: contiene diferentes librerías utilizadas por el subsistema
- Src/images: contiene las imágenes que utiliza la aplicación

Para hacer un recuento del nº de filas de tramo_dipu y tramo_cdua hago


un SELECT DISTINCT nombre_columna FROM nombre_tabla; y así evito
los duplicados. Pero si quiero saber el nº total la sintaxis es SELECT
COUNT (nombre_columna) FROM nombre_tabla;

Tipos de vía: están pendientes de ver si se añaden porque la función


recoge los tipos de via de la tabla GESTA.
AG: agregado
AL: aldea, alameda
AR: área, arrabal
AU : autopista
AV : avenida
AY : arroyo
BJ : bajada
BO : barrio
BR : barranco
CA: cañada
CR: carretera
BA: barriada
CJ: callejón
CM: camino
LU: lugar
PB: poblado
PJ: pasaje
PL:
PS: pasadizo
PZ: plaza
TR: travesía

3
UR: urbanización

CICE se encarga de la plataforma tecnológica y es a quién se van a


realizar los entregables.
La IP del ordenador de Agus es 192.168.1.143.

WFS-T (Geoserver): para entrar, admin/avalon.


WMS: http://ovc.catastro.meh.es/Cartografia/WMS/ServidorWMS.aspx?
http://www.idee.es/wms/PNOA/PNOA?

Registro usuario CARTOCIUDAD:


- Usuario: sponsm
- Contraseña: spons123
- E-mail: spons@avalon.com.es

Códigos proyecto:
IEA_TG10—CSI: procesar datos , construcción
--- DSI: analizar información y transformación de formato

DGIEM_GIS10 --- Fase Técnico GIS 2.

www.idemap.es es la infraestructura de datos espaciales de Málaga


provincia.

Capas GIS_AVALON proceden de la siguiente ruta: C:\Documents and


Settings\spons\Mis documentos\MTA10.000_Sevilla. Las capas son las
siguientes: bibliotecas, edificios, ferrocarriles, iglesias, jardines,
manzanas, parques, policía, polideportivos, sociocultural, superficies de
agua.

www.terrativa.net proveedores de datos meteorológicos, su servicio


WMS: http://www.opengis.uab.es/cgi_bin/iberia/MiraMon5.0.cgi , extrae el
mapa climático para toda España. La fuente procede de
www.worldclim.org

JSON es el acrónimo de Java Object Notation, es un formato ligero para el


intercambio de datos. JSON es un subconjunto de la notación literal de
objetos Javascript que no requiere el uso de XML.

JRE es el acrónimo de Java Runtime Environment, es un conjunto de


utilidades que permite la ejecución de programas Java. Actúa como
intermediario entre el sistema operativo y Java.

.msi significa Microsoft Installer

JASPA (Java Spatial)... mirar información.

Primero exporto la tabla de PostgreSQL con gvSIG a GML. Luego la abro


con Notepad y la guardo como XML. Este lo abro en Excel y lo normalizo.
Después ya puedo abrirlo con JTS Builder.

4
Si utilizamos nextval(), avanza en la secuencia y devuelve un nuevo
valor, creándose en la tabla un campo autonumérico, incremental. Sólo
sirve para cuando realizamos insert.

DML (Data Management Language) es el Lenguaje de Manipulación de


Datos: INSERT, DELETE, UPDATE.
DDL (Data Definition Language) es el Lenguaje de Definición de Datos:
CREATE, ALTER, DROP, TRUNCATE.

Con una geometría de tipo punto usamos el hiperenlace para que apunte
a un fichero de imagen.

El valor -99999 es para celdas sin datos.

Redes: base de datos para grafos> http://neo4j.org/ en gvSIG en


memoria se guarda el grafo (gvGraph), así consume poca memoria. Para
ello buscar en Inicio>Desarrollo>Guia Extensiones (versión
desarrollo)>plugins>redes>subsistemas>solvers+gui>solvers.

ETRS89EPSG Projection 4258:


• WGS84 Bounds: -10.6700, 34.5000, 31.5500, 71.0500
• Projected Bounds: -10.6700, 34.5000, 31.5500, 71.0500
• Scope: Horizontal component of 3D System
• Last Revised: 2007-08-27
• Area: Europe ETRS89

Ine_via <> ‘ ‘ ‘ ‘ ‘ ‘ : esta expression sirve para eliminar los campos


donde no hay datos y que PostgreSQL los rellene con las comillas
simples. Si queremos inserta una comilla simple sólo debemos ponerla
doble.

El tipo de vía válido siempre es el que procede de Gesta. A no ser que esta
fuente contemple tipos de vía nuevos, no hace falta actualizar ni la función
ni la tabla tipo_via de cda.
Los tipos de vía de las diferentes fuentes son sólo para contrastar y traer la
geometría que más nos interese.

ST_Transform devuelve una nueva geometría con sus coordenadas


transformadas al SRID referenciado por el parámetro de tipo integer. Para
que estén en metros las unidades los transforma a ED50.

ST_GeometryType devuelve el tipo de geometría del valor ST_Geometry ,


p.e. ST_Linestring, ST_Polygon, ST_Multipolygon, etc.

Refcursor es un tipo especial de datos que sirve para declarar variables


cursores. Puede ser usado con cualquier Query.

ST_Length devuelve la longitud 2D de una geometría si es un linestring o un


multilinestring

ST_NPoints() devuelve el nº de vértices de una geometría.

ST_Collect() de una linestring crea una multilinestring

5
ST_ AsEWKT() devuelve el SRID y la GEOMETRY COLLECTION con sus
coordenadas y todos los tramos que la componen.

Now() devuelve la fecha y hora actuales de acuerdo con la configuración de


la fecha y hora actuales de acuerdo con la configuración de la fecha y hora
del sistema de tu pc.

Trewa GIS, GEA y Mapea.

El orden de la función migración completa() es:


Migra_via_gesta();
Migra_carto();
Migra_dipu();
Migra_cdua();
Migra_carto_in();
Migra_cdua_in();
Migra_carto_nt();
Migra_cdua_nt();
Migra_carto_n();
Migra_cdua_n();
Migra_carto_it();
Migra_cdua_it();
Migra_carto_i();
Migra_dipu_i();
Migra_cdua_i();
Calc_distancias();

Cuando abro el cursor apunta al primer registro. Pero hasta que no hago el
FETCH no se vuelcan los datos de la SELECT en el repositorio creado para el
cursor.
El 1er cursor se sitúa en el 1er registro y el 2º cursor va recorriendo registro
a registro la tabla, evitando el registro donde se sitúa el 1er cursor hasta
que acaba de recorrer toda la tabla y se acaba el 2º cursor. Luego, el 1er
cursor baja al siguiente registro y el 2º cursor inicia de nuevo el recorrido de
cada uno de los registros.

El Agente Ransack es un buscador de ficheros alternativo al que tiene


Windows por defecto.

Para copiar una tabla de 1 esquema a otro, pero solamente sus datos no sus
restricciones, la sintaxis es: SELECT * INTO esquema.tabla_nueva FROM
esquema.tabla_vieja.

Creo una vista y luego puedo hacer SELECT sobre el nombre de la vista. La
vista se actualiza si se ejecutan modificaciones en cualquiera de las tablas
que la componen.

Map: view scale is wrong when the view coordinates are lat/long
(fallo reconocido)

• Create a view and open it


• Set CRS to EPSG 4326, e.g.
• Add a layer (reprojecting if necessary)

6
• Pay attention to the scale showed in the status bar
• Create a map and open it
• Insert a view and link it to the previous view. Since the scale default
type is “Automatic” the scale denominator will appear under the scale
combo box. See that the number is extremely low.
• If you try to put a more logical number by selecting the scale
manually the features of the layer seems to disappear but what
happens is that all of them are drown as one point because the scale
is “too little”.
• If you try to configure a grid in the inserted view , gvSIG crash.
• It happens also in gvSIG 1.9.

La proyección al vuelo (on the fly) es la capacidad de algunos software de


GIS de representar datos en una proyección diferente a la suya, sin
transformar realmente los ficheros de datos.
Es como proyectar virtualmente, sin generar nuevos ficheros, nada más que
temporales que el software gestiona internamente y el usuario no ve ni
maneja.

Campos truncados al exportar Capa de eventos


El problema, como dices, se da en el caso de archivos csv. Al exportar
cualquier otra capa a shp, gvSIG mira en la cabecera la información de
tamaño máximo de cada campo y "respeta" ese tamaño para el resultado.
Pero en los csv, no tiene esa información (y por defecto se ha puesto
este tamaño de campo a 30 caracteres).

He observado un fallo que puede provocar pérdida de datos si no se tiene


en cuenta al crear capas de eventos:

1. Se añade una tabla csv con coordenadas y atributos de puntos.


2. Se añade una capa de eventos en una vista basada en esa tabla.
3. Se exporta la capa de eventos a Shape con el menú "Capa->Exportar a
SHP"
4. El resultado es un shape cuya tabla tiene todos los campos de 30
caracteres, DONDE SE HA PERDIDO la información en los campos que
superan esa longitud.

En gvsig 1.10, propiedades del proyecto y poner path relativo, lo guardas


todo en la misma carpeta, lo pones en un pendrive o en dropbox y te lo
llevas al otro ordenador.

Proyecciones
Yo creo que no estás haciendo nada mal. Simplemente se trata de que la
geometría no proyectada (geometría en coordenadas geográficas) debería
ser observada sobre una superficie esférica en su "forma natural" (una

7
pantalla flexible en forma esférica con esfericidad variable en función del
zoom, cuando estén disponibles las pantallas flexibles y además
elásticas...).

Si se utiliza una pantalla o papel (planos, no esféricos) como área de dibujo


para cartografía no proyectada, y se hace la suposición de que los ejes
ortogonales horizontal y vertical (X, Y) se corresponden con las coordenadas
angulares lon/lat, el resultado tendrá formas distorsionadas, ya que en el eje
X gvSIG colocará las unidades angulares medidas sobre el paralelo
(longitud) como si fueran distancias sobre el plano, y en el eje Y colocará las
unidades angulares medidas sobre el meridiano (latitud).

Un ejemplo con datos numéricos:


Círculo de diámetro 1000 metros en 23029:

Coordenadas del centro:


-Proyectadas (23029): 500.000, 4.500.000 -Geográficas (4230): -9,
40,65154111

Medida del diámetro "aparentemente mayor" (el horizontal):


-En la proyección (23029) sobre el eje X: 1000 metros -En geográficas
(4230) sobre el paralelo: 0,01182753 deg (grados en expresión decimal)

Diámetro "aparentemente menor", el vertical:


-En la proyección (23029) sobre el eje Y: 1000 metros -En geográficas
(4230) sobre el meridiano: 0,00900853 deg (grados en expresión decimal)

Como puedes ver, la "medida" en unidades angulares no es proporcional en


ambos ejes, como es lógico por ser de diferente diámetro los meridianos
que los paralelos en esa latitud. La desproporción es:

0,01182753/0,00900853=1,3129

PL SQL

La estructura de control IF permite decidir entre dos opciones resultantes de


la evaluación de una sentencia. Si la evaluación es positiva hace una cosa,
también podemos especificar acciones para realizar en caso de que la
evaluación sea negativa.

IF (expresion)
then
Sentencias
....
END IF

Vemos que en primer lugar tenemos la sentencia IF, luego una expresión,
que puede o no ir entre paréntesis, y más tarde la palabra THEN. Después
de poner las sentencias asociadas a la evaluación positiva colocamos un
END IF, para acabar la estructura del IF.

Enunciado ELSE

8
Opcionalmente se puede colocar una serie de sentencias asociadas a la
evaluación negativa de la expresión. Estas sentencias se deben colocar
después de la orden ELSE y antes del END IF.

IF (expresion)
then
Sentencias
....
ELSE
Sentencias
....
END IF

Enunciado ELSEIF
Sirve para encadenar sentencias IF de modo que en un resultado negativo
de un IF se pueda evaluar otra expresión, que tendría a su vez otros
enunciados THEN y probablemente ELSE u otro ELSEIF.

IF (expresion1) then
Sentencias1
....
ELSEIF (expresion2)
then
Sentencias2
....
ELSEIF (expresion3)
then
Sentencias3
....
ELSE
Sentencias4
....
END IF

Se evalúa la primera expresión, en caso positivo se ejecutan las


sentencias1, en caso negativo se evalúa la expresión 2. Si la expresión 2 es
positiva se ejecutan las sentencias 2 en caso negativo evaluamos la
expresión 3 con el siguiente ELSEIF. Todo acaba en un ELSE en este
ejemplo, pero el ELSE final no es obligatorio.

Iteraciones

Bucles LOOP anidados:

BEGIN
<< Loop Exterior>>
LOOP
v_counter:=v_counter+1;
EXIT WHEN v_counter>10;
<<Loop Interior>>
LOOP
...
EXIT Loop Exterior WHEN total_done=’YES’;

9
EXIT WHEN inner_done=’YES’;

END LOOP<<Loop interior>>;
END LOOP <<Loop Exterior>>;

Secuencias
Las secuencias sirven para la generación de códigos numéricos
automáticos. Son una solución fácil y elegante al problema de los códigos
autogenerados. La sintaxis general es la siguiente:

CREATE SEQUENCE <secuence_name>


[MINVALUE <min_val>]
[MAXVALUE <max_val>]
[START WITH <ini_val>]
[INCREMENT BY <inc_val>]
[NOCACHE | CACHE <cache_val>]
[CYCLE]
[ORDER];

Para obtener el siguiente valor de una secuencia debemos utilizar la función


NEXTVAL. NEXTVAL se puede utilizar el cualquier sentencia SQL DML
(SELECT, INSERT, UPDATE).

Podemos obtener el último valor generado por la secuencia con la función


CURRVAL. Para poder ejecutar la función CURRVAL debemos haber
ejecutado previamente la función NEXTVAL.

Servidores WMTS (Web Map Tile Service Standard) del CREAF


(Centre de Recerca Ecològica i Aplicacions Forestals)

El OGC ha publicado recientemente, el pasado 6 de abril de 2010, la muy


esperada versión 1.0.0 del estándar Web Map Tile Service (WMTS), que se
podría traducir por Servicio Web de Teselas de Mapa.

Esta especificación, inspirada en la recomendación WMS-C de OSGeo y


teniendo en cuenta iniciativas similares como Google maps y NASA On
Earth, trata de resolver uno de los puntos débiles que limita más el uso del
WMS, la lentitud de respuesta, mediante la definición de una teselación
estándar, independiente del ámbito que se solicite en cada momento, que
permite almacenar las teselas que componen las respuestas en una
memoria intermedia (caché), con lo que el rendimiento se puede multiplicar
hasta por un factor 20 ó 30.

Se han tenido en cuenta muchos de los aspectos definidos en OWS


Common, pero es posible que en el futuro sea necesario adaptar
completamente WMTS a esa especificación.

El estándar soporta interfaces de tipo RESTfull, KVP y SOAP y define tres


operaciones: GetCapabilities, GetTile y la opcional GetFeaureInfo. La
operación GetCapabilities devuelve información descriptiva del servicio,
incluyendo la descripción de la teselación adoptada, que admite varias
posibilidades. La operación GetTile obtiene una tesela de una capa

10
determinada. Para obtener varias capas en una petición es necesario que el
servicio tenga definida una capa que las incluya.

http://www.opengis.uab.es/cgi-bin/ICCTiled/MiraMon5_0.cgi?
REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0

http://www.opengis.uab.es/cgi-bin/TiledWorld/MiraMon.cgi?
REQUEST=GetCapabilities&SERVICE=WMTS&VERSION=1.0.0

La herramienta que comentas para la generación de un MDT un software


gratuito que se llama Fusion
(http://forsys.cfr.washington.edu/JFSP06/lidar_&_ifsar_tools.htm).
www.dielmo.com

Formas de codificación de tildes, eñes, etc

La forma de trabajo por defecto de gvSIG es con Latin1 si usas PostGIS. Otra
cosa es si usas dbf. En ese caso, me inclino a pensar que con tu dbf "te está
mintiendo", o te confundes con la codificación que has escogido.

Windows usa la codificación Windows1252 que es prácticamente igual que


la Latin1 = ISO 8859-1. Si quieres el símbolo del euro, puedes usar la ISO-
8859-15. Muchos dbf provienen de ArcView, que codificaba normalmente
usando CP-850. También podrás encontrar en muchos sitios dbf con
codificación UTF-8.

Tercero, cuidado con las conversiones, a veces puedes tener problemas con
los tamaños de los campos. Los caracteres en UTF8 y cp850 son siempre de
1 byte, pero en Latin1 a veces son de dos bytes.

Lo que suelo hacer yo cuando dudo, es abrirlo en OpenOffice y ver qué


codificación tiene. Luego le asigno esa en gvSIG con Asignar codificación Y
(OJO CON ESTO) a veces tengo que salir y volver a entrar de gvSIG para que
los cambios tengan efecto (solo una vez, luego ya lo entiende bien).

GeoJson (Geometry Javascript Annotation Object Notation )

Subversion (SVN) Tortoise: spons/spons_cda

Pablo se pilla paternidad desde el 15 de marzo hasta abril.

En rediris existe una lista de distribución de PostGIS.

OGR Tools FWTools Shell ¡: ogr2ogr –f “PostgreSQL” PG: “host=myserver


user=my user dbname=mydb password=my password”
D:\GIS\Data\somefile.dbf –nln newtablename

11

También podría gustarte