miércoles, 26 de enero de 2011

Build a SHP with Z values from CSV ready to use in gvSIG 3D



- Español -

En este tutorial, explicaremos como construir un SHP de puntos con un valor Z para cada uno a partir de un archivo CSV (fichero de texto separado por comas).

Para hacer este tutorial necesitaremos:

- Un fichero CSV con los valores separados por comas, donde la primera fila son los nombres de las columnas:

X,Y,Z,Value
570373,4759206,919.00,4558.033732
569900,4757435,395.00,10601.35443
573725,4761400,1165.00,3594.570815


- La herramienta de linea de comandos "ogr2ogr" disponible en FWTools [1].

NOTAS:

1) Podemos crear archivos Virtual Format (.vrt) para crear otros SHP. Las opciones para la creacion de archivos Virtual Format esta disponible en [2]. El fichero utilizado en el video contiene el siguiente código:

<OGRVRTDataSource>
     <OGRVRTLayer name="data">
          <SrcDataSource relativeToVRT="1">data.dbf</SrcDataSource>
          <SrcLayer>data</SrcLayer>
          <GeometryType>wkbPoint25D</GeometryType>
          <GeometryField encoding="PointFromColumns"
x="X" y="Y" z="Z"/>
     </OGRVRTLayer>
</OGRVRTDataSource>


2) El primer comando del video crea un fichero ".dbf" a partir del archivo CSV.
ogr2ogr -f "ESRI Shapefile" [carpeta_destino] [archivo_csv]

Podemos crear este fichero con la herramienta exportar tabla de gvSIG y saltarnos este paso.

3) El segundo comando genera el SHP a partir del DBF. Es muy importante que la carpeta destino sea distinta a la del archivo DBF para no sobreescribirlo:
ogr2ogr -f "ESRI Shapefile" [carpeta_destino] [archivo_vrt]


Actualización


En algunas versiones de ogr2ogr es necesario indicar el fichero dbf de datos dentro del archivo vrt. Si no os funciona como en el video debeis editar el fichero vrt incluyendo el dbf como fichero fuente de datos y ejecutar el siguiente comnado añadiendo el nombre del archivo shp de salida:

ogr2ogr -f "ESRI Shapefile" [carpeta_destino\archivo.shp] [archivo_vrt]


- English -

In this tutorial, we explain how to build a points SHP file with Z values from a CSV file.

We need the following tools to do this tutorial:

- A CSV file with comma separated values, where the first row is the column names:

X,Y,Z,Value
570373,4759206,919.00,4558.033732
569900,4757435,395.00,10601.35443
573725,4761400,1165.00,3594.570815


- The command line tool "ogr2ogr" available on FWTools [1].

NOTES:


1) We can create Virtual Format files (.vrt) to build different SHP files. The Virtual Format options are explained at [2]. The file used in the video has the following code:

<OGRVRTDataSource>
     <OGRVRTLayer name="data">
          <SrcDataSource relativeToVRT="1">data.dbf</SrcDataSource>
          <SrcLayer>data</SrcLayer>
          <GeometryType>wkbPoint25D</GeometryType>
          <GeometryField encoding="PointFromColumns"
x="X" y="Y" z="Z"/>
     </OGRVRTLayer>
</OGRVRTDataSource>


2) The first command shown in the video, builds a ".dbf" file from CSV:
ogr2ogr -f "ESRI Shapefile" [carpeta_destino] [archivo_csv]

We can build a ".dbf" file using the "Export from table" tool in gvSIG and avoid this command.

3) The second command builds the SHP file from a DBF. We need specify a different destination directory of the current dbf directory to avoid overwriting the file:
ogr2ogr -f "ESRI Shapefile" [destination_directory] [vrt_file]



Update


Some ogr2ogr versions needs to specify the dbf file into vrt code. If you are following the video tutorial and it doesn't works, try to modify the vrt file including the dbf file as data source and execute this command adding the shp output filename.

ogr2ogr -f "ESRI Shapefile" [destination_directory\file.shp] [vrt_file]


--

[1] Download GDAL binaries from: http://trac.osgeo.org/gdal/wiki/DownloadingGdalBinaries
[2] Virtual Format Files: http://www.gdal.org/ogr/drv_vrt.html

4 comentarios:

  1. Enhorabuena al equipo de 3d por este tutorial que enseña cómo visualizar en un SIG nube de puntos en 3D!

    Además, una vez añadida la capa de puntos en la vista, se le podría aplicar una simbología temática calculada en función del campo "valor" para poder interpretar mejor los datos.

    Un saludo!
    Viqui-.

    ResponderEliminar
  2. Gracias este tutorial es magnífico y viene muy bien.
    Sería la bomba si se puede añadir de alguna forma como extensión a gvSIG.

    ResponderEliminar
  3. genial, y para editar un poligono?

    ResponderEliminar
  4. Hola,

    No le he probado directamente, pero seguramente puedas hacerlo cambiando el campo GeometryType a wkbPolygon25D en el archivo vrt. Puedes darle un vistazo a [2] en el apartado Virtual File Formats para ver todas las opciones disponibles.

    Un saludo.

    ResponderEliminar