[Gvsig_usuarios] transformar arquivo txt em csv

Joaquin Jose del Cerro Murciano jjdelcerro en gvsig.org
Dom Dic 20 13:46:31 CET 2015


El 19 de diciembre de 2015, 12:48, Gilberto Cugler <gilbertocugler en gmail.com
> escribi贸:

> Hola Joaquim;
> Mi problema es que el archivo txt no tiene el nombre de los campos, s贸lo
> valores. As铆 que tenemos que poner los nombres de campo en la primera
> l铆nea. Lo hago manualmente con Notepad ++ y cambiar el nombre de * .CSV y
> llevo como una tabla, como me explic贸 en el correo electr贸nico.
> La soluci贸n tiene que ser con script porque la gente que va a ense帽ar el
> uso de gvSIG son voluntarios para el servicio de los desastres naturales
> (protecci贸n civil) que no tienen un buen conocimiento de la computadora. La
> otra que es importante dar a conocer el potencial de gvSIG con script.
>
>

Hola Gilberto,
te dejo aqui un script que carga ficheros CSV con el formato que
me has comentado. Asi pudes lanzar el script desde el
"scripting launcher" y seleccionando solo el fichero txt
te lo carga con los parametros que habia comentado antes.


#---------><---- test_csv_20151220 --------><--------------
# - inicio script -
import os
from gvsig import *
from commonsdialog import *
from org.gvsig.fmap.dal import DALLocator
from org.gvsig.fmap.mapcontext import MapContextLocator
from java.util.prefs import Preferences

def main(*args):
  view = currentView()
  if view == None:
    msgbox("Debera tener activa la vista en la que desea cargar la capa.")
    return

  # Cogemos la carpeta de datos de las preferencias de gvSIG
  prefs = Preferences.userRoot().node( "gvsig.foldering" )
  initfolder = prefs.get("DataFolder",os.getcwd())
  f = filechooser(OPEN_FILE, "Seleccione el fichero CSV a cargar",
initfolder)
  if f == None or len(f)<1:
    msgbox("Operacion cancelada")
    return
  f = f[0]

  # Abrimos el fichero CSV y cremos el "store"
  dataManager = DALLocator.getDataManager()
  params = dataManager.createStoreParameters("CSV")
  params.setDynValue("profile","EXCEL_PREFERENCE")
  params.setDynValue("locale","en")

params.setDynValue("header","latitude,longitude,coord_N,coord_E,Altitude,Ponto")
  params.setDynValue("point","longitude,latitude")
  params.setDynValue("CRS","EPSG:4326")
  params.setDynValue("File",f.getAbsolutePath())
  params.setDynValue("commentStartMarker",";")
  store = dataManager.openStore("CSV",params)

  # Creamos una capa a partir del store del CSV
  mapContextManager = MapContextLocator.getMapContextManager()
  layer = mapContextManager.createLayer(store.getName(), store)

  # A帽adimos la capa a la vista corriente.
  view = currentView()
  view.getMapContext().getLayers().addLayer(layer)

# - fin script -
#---------><---- test_csv_20151220 --------><--------------

El script lo he probado con el siguiente fichero CSV

; ------><---- inicio test_csv_20151220.txt -----><-----------
-23.60240178,-48.04615465,7386678.952,801445.956,665.4,Ponte1
-23.65240178,-48.10615465,7386678.952,801445.956,665.4,Ponte2
-23.70240178,-48.15615465,7386678.952,801445.956,665.4,Ponte3
-23.75240178,-48.20615465,7386678.952,801445.956,665.4,Ponte4
-23.80240178,-48.25615465,7386678.952,801445.956,665.4,Ponte5
-23.85240178,-48.30615465,7386678.952,801445.956,665.4,Ponte6
; ------><---- fin test_csv_20151220.txt --------><-----------

Un saludo
Joaquin



> gracias por la respuesta r谩pida
>
> traducci贸n al portugu茅s al espa帽ol con Google. Lo siento si hay algo mal
> en la traducci贸n.
>
> 2015-12-19 7:53 GMT-02:00 Joaquin Jose del Cerro Murciano <
> jjdelcerro en gvsig.org>:
>
>>
>>
>> 2015-12-19 1:56 GMT+01:00 Gilberto Cugler <gilbertocugler en gmail.com>:
>>
>>> Ol谩;
>>> Tenho um arquivo *.txt com muitos pontos obtido com um aplicativo (C7
>>> GPS Dados) de Universidade Federal de Santa Maria com  Smartphone (GPS).
>>>  O formato 茅 :
>>> -23.60240178,-48.04615465,7386678.952,801445.956,665.4,Ponte
>>> Quero fazer um script para transformar em *.CSV para ser lido no gvSIG.
>>> O script deve ter a primeira linha com los nombres de campos:
>>> latitude;longitude;coord_N;coord_E;Altitude;Ponto
>>> As demais linha s茫o os valores obtidos da aplicativo.
>>> Preciso tamb茅m cambiar:
>>>  punto"." a coma","
>>> coma"," a punto e coma";"
>>> 驴Alguien tiene una idea de c贸mo hacer un script ?
>>>
>>>
>> Hola Gilberto,
>> en principio el fichero puedes cargarlo directamente en gvSIG sin tener
>> que cambiarle nada.
>> Si quieres cargarlo como una capa, vas a la ventana de a帽adir capa, y
>> pulsas en el
>> boton de "a帽adir".
>> En tipo de archivo seleccionas csv (CSV file), y en nombre pones el
>> nombre del fichero
>> txt que quieras cargar (tendras que teclearlo ya que no te lo muestra),
>> por ejemplo /tmp/test1.txt (puedes seleccionar primero la carpeta
>> y asi solo tienes que escribir el nombre de archivo).
>>
>> Ahora, antes de darle "ok" para que lo cargue, tendras que pulsar en
>> propiedades, y alli seleccionar:
>>
>> - Pesta帽a "basic", campo "profile": "Excel (double quote, comma and lf)"
>>   Para indicarle que use como separador de campos la coma.
>>
>> - Pesta帽a "basic", campo "local" : "English"
>>   Para que utilice como separador de decimales el punto, estilo ingles.
>>
>> - Pesta帽a "advanced", campo "header" :
>> latitude,longitude,coord_N,coord_E,Altitude,Ponto
>>   Cuidado que he cambiado los ";" que tenias por "," ya que le he dicho
>> que use
>>   "," como separador de campos.
>>
>> - Pesta帽a "advanced", campo "point" : longitude,latitude
>>   Son los nombres de los campos que contienen las coordenadas separados
>> por comas.
>>
>> - Pesta帽a "advanced", campo "CRS" : si los datos estan en una proyeccion
>> distinta a la
>>   de la vista selecciona aqui la proyeccion en la que esten los datos.
>>
>>
>> Si simplemente quieres a帽adirlo como una tabla y no una capa, es similar
>> pero no hace
>> falta que le asignes nada a los campos "point" y "CRS".
>>
>> Esto para cargarlo en gvSIG.
>> Si quieres cambiar el formato, posiblemente te sea suficiente usar
>> LibreOffice, y no haga
>> falta ningun script.
>>
>> Otra cosa es que vayas a tener que cargar muchos archivos en este formato
>> y quieras algo para
>> automatizar la carga sin tener que introducir todos esos parametros. Si
>> es eso comentamelo y
>> vemos que podemos hacer.
>>
>> Un saludo
>> Joaquin
>>
>>
>>
>>> un fuerte abrazo desde Brasil.
>>>
>>> --
>>>
>>>
>>> Gilberto Cugler .麓.
>>>
>>> _______________________________________________
>>> gvSIG_usuarios mailing list
>>> gvSIG_usuarios en listserv.gva.es
>>>
>>> Para ver hist贸rico de mensajes, editar sus preferencias de usuario o
>>> darse de baja en esta lista, acuda a la siguiente direcci贸n:
>>>
>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>>>
>>>
>>
>>
>> --
>> --------------------------------------
>> Joaquin Jose del Cerro Murciano
>> Development and software arquitecture manager at gvSIG Team
>> jjdelcerro en gvsig.com
>> jjdelcerro en gvsig.org
>> gvSIG Association
>> www.gvsig.com
>> www.gvsig.org
>>
>> _______________________________________________
>> gvSIG_usuarios mailing list
>> gvSIG_usuarios en listserv.gva.es
>>
>> Para ver hist贸rico de mensajes, editar sus preferencias de usuario o
>> darse de baja en esta lista, acuda a la siguiente direcci贸n:
>>
>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>>
>>
>
>
> --
>
>
> Gilberto Cugler .麓.
>
> _______________________________________________
> gvSIG_usuarios mailing list
> gvSIG_usuarios en listserv.gva.es
>
> Para ver hist贸rico de mensajes, editar sus preferencias de usuario o darse
> de baja en esta lista, acuda a la siguiente direcci贸n:
>
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_usuarios
>
>


-- 
--------------------------------------
Joaquin Jose del Cerro Murciano
Development and software arquitecture manager at gvSIG Team
jjdelcerro en gvsig.com
jjdelcerro en gvsig.org
gvSIG Association
www.gvsig.com
www.gvsig.org
------------ pr髕ima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_usuarios/attachments/20151220/e527643c/attachment.htm 


M醩 informaci髇 sobre la lista de distribuci髇 gvSIG_usuarios