Suite

Copier les métadonnées GeoTIFF au format TIFF à l'aide d'ArcPy

Copier les métadonnées GeoTIFF au format TIFF à l'aide d'ArcPy


J'ai effectué quelques manipulations d'images sur des GeoTIFF dans un programme et les TIFF résultants n'ont maintenant aucune information spatiale attachée. Leurs origines x,y sont (0,0). Étant donné que ces images traitées ont exactement la même surface que les images d'origine, puis-je simplement copier les métadonnées des images d'origine vers les images traitées ?

J'ai vu des solutions gdal, mais je cherche une solution dans Arcpy.


Pour des raisons d'explication, appelons votre géotiff d'originesource.tifet la version manipuléecible.tif. Si vous utilisez l'outil arcpy.management.ExportRasterWorldFile en collaboration avecsource.tifil va créer un fichier mondial appelésource.tfwqui contient les informations de géoréférencement du tiff. En admettant quecible.tifa la même taille de pixel, étendue et projection que la version source, vous pouvez renommer le fichier world encible.tfwet placez-le dans le même répertoire que le tiff cible et les applications telles queArcMap,gdal, etc. sauront alors implicitement obtenir des informations de référence spatiale pour le raster cible à partir du fichier mondial.

Cependant, les fichiers monde ne contiennent pas la projection du raster et cela doit être défini dans une étape séparée, ce qui peut être fait avec arcpy.management.DefineProjection. Le script ci-dessous exécute ces deux processus. Pour adapter le code à votre projet, définissez la variablesource_tifau raster qui a des informations de référence spatiale définies et définiescible_dossierdans un dossier contenant les tiffs dont la référence spatiale doit être définie. Notez que tout fichier avec un.tifl'extension dans le dossier cible sera modifiée par le script :

import os import re import arcpy import shutdown from os import path from arcpy import management source_tif = 'P:/ath/to/src/geotiff/src_raster.tif' target_folder = 'P:/ath/to/target/folder' def transferRasterSpatialInfo (): """Transférer les informations de référence spatiale d'un raster source vers un ensemble d'autres rasters qui ont les mêmes valeurs de référence spatiale, mais pour lesquels ces informations ne sont pas définies""" # créer un fichier mondial à partir de la gestion du raster source. source_tif) src_world_file = re.sub('.tif$', '.tfw', source_tif) # obtenir la projection raster source src_tiff_srs = arcpy.Describe(source_tif).spatialReference pour tiff dans os.listdir(target_folder): si re. match('.+.tif$', tiff): # renommer et copier le fichier world vers les tiffs cibles world_file_name = re.sub('.tif$', '.tfw', tiff) new_world_file = path.join(target_folder , world_file_name) Shutil.copy(src_world_file, new_world_file) # définit la projection pour les tiffs cibles tiff_path = path.join(target_folder, tiff) management.Define Projection (tiff_path, src_tiff_srs) transferRasterSpatialInfo()

Voir la vidéo: How to Exporting Georeference Data in TIFF and other 12 format format with ArcGIS. Export map