Error en Python cuando se realiza arcpy.Copy_management()

744
5
07-02-2013 04:44 AM
angelurbano_rogel
New Contributor
Estoy ejecutando una copia de un raster, el cual tiene ficheros que informan de la georeferenciación del mismo. He visto que por medio de la instrucción
arcpy.Copy_management(<path_origen>, <path_destino>)
copia todos los ficheros que componen el raster, desde la imagen hasta los ficheros auxiliares que requieren para georeferenciarlo.

Pero en ocasiones me da error sin dejar rastro, da error el mismo python y no se a que debe verse.

Os habéis encontrado alguna situación semejante?, y en tal caso, como lo habéis solucionado. se os ocurre alguna forma mejor de realizar la copia?, pensar que es de una carpeta a otra, nada que ver con incluirlo en base de dato
Tags (2)
0 Kudos
5 Replies
LindseyWood
New Contributor III
¿Está seguro de que no es necesario el
1) herramienta CopyRaster_management (in_raster, out_rasterdataset, {config_keyword}, {background_value}, {nodata_value}, {onebit_to_eightbit}, {colormap_to_RGB}, {pixel_type}) en lugar de la
2) Copy_management (in_data, out_data, data_type {}) que utiliza las clases de entidad. ¿Se puede poner un ejemplo de los datos aquí eso no funciona? Demás tratar de ejecutar cada herramienta manual con los datos tal vez ....
0 Kudos
angelurbano_rogel
New Contributor
Hola,
gracias a tu comentario creo que he descubierto que el problema, y está en el tipo de fichero, en este caso (ecw). Esta instrucción funciona correctamente pero a veces da error echándote de la sesión de python:

arcpy.Copy_management(r'C:\temp\pruebas_python\origen\WG96 Henares.ecw', r'C:\temp\pruebas_python\destino\WG96 Henares.ecw')
<Result 'C:\\temp\\pruebas_python\\destino\\WG96 Henares.ecw'>

Por otro lado he intentado probar

arcpy.CopyRaster_management(r'C:\tmp\gis_agua\muestra\raster\rasters\Lorca_18\WG96 Henares.ecw', r'C:\tmp\gis_agua\muestra\raster\rasters\WG96 Henares.ecw')
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Program Files\ArcGIS\Desktop10.1\arcpy\arcpy\management.py", line 11034, in CopyRaster
    raise e
ExecuteError: Failed to execute. Parameters are not valid.
ERROR 000445: Extension is invalid for the output raster format.
Failed to execute (CopyRaster).

cuando ejecut el CopyRaster con otros formatos de fichero, por ejemplo png  ha funcionado perfectamente.

arcpy.CopyRaster_management(r'C:\temp\pruebas_python\origen\foto.png', r'C:\temp\pruebas_python\destino\foto.png')
<Result 'C:\\temp\\pruebas_python\\destino\\foto.png'>

Lo raro es que en ArcMap 10.1. no da ningún problema poder trabajar con ficheros '.ecw'. Se te ocurre que podríamos hacer para solucionar el problema?, con este tipo de raster se trabaja habitualmente.

Gracias por el interés.
0 Kudos
LindseyWood
New Contributor III
Hola de nuevo,

Si ves la informacion de ESRI ArcGIS Help 10.1 http://resources.arcgis.com/en/help/main/10.1/index.html#//009t0000000q000000 encontraras una tabla que explica que el formato ECW es solo de lectura, por lo tanto no puedes crear un nuevo archivo en este formato con el arcpy.Copy_management(). Lo que te recomendaria es que uses el arcpy.CopyRaster_management() para crear una copia del raster en otro formato (ESRI GRID, IMG file, TIF file, etc).
0 Kudos
angelurbano_rogel
New Contributor
Muchísimas gracias, me ha servido de mucha ayuda.
en la vida hubiera encontrado el problema si no es por tí. Ahora tengo que gestionarlo de la mejor manera posible, he visto en las primeras prueba que cambiando el formato aumenta bastante el tamaño y eso no nos interesa.

Veremos cual es la mejor forma de poder gestionarlo, se me ocurre copiar el fichero directamente con shutil.copyfile(src, dst), el problema son los posibles ficheros que guardan la información de la georeferenciación.
0 Kudos
LindseyWood
New Contributor III
0 Kudos