Suite

Écrire uniquement le raster final avec des bandes intermédiaires sur le disque à l'aide d'ArcPy ?


J'ai un raster avec 4 bandes.

Je voudrais créer un nouveau raster (ses bandes individuelles appelées new_band) à partir de ce raster (ses bandes individuelles appelées old_band) avec :

new_band1 = old_band1 * 2 new_band2= old_band2 * 4 new_band3= old_band3 * 6 new_band4 = old_band4 * 8

Mon code est :

import sys, os, math, time import arcpy depuis arcpy import env depuis arcpy.sa import * arcpy.CheckOutExtension("spatial") raster = r"D:IMAGERY.tif" bands = [['band1', 2], ['band2',4],['band3',6], ['band4', 8]] outfolder =r"D:Radiance" pour la bande dans les bandes : num = band[0][4:] thisBand = raster + 'and_' + num Radiance = arcpy.sa.Float(Raster(thisBand)/float(band[1])) outname = 'B' + num + '.tif' Radiance.save(os.path. join(outfolder,outname)) #puis combiner différentes bandes arcpy.CompositeBands_management("D:RadianceB1.tif;D:RadianceB2.tif;D:RadianceB3.tif;D:Radiance B4.tif", "D:CANGIOAnh_SOPT5Radiancecompbands.tif")

Dans ce code, j'ai créé à la fois des images pour des bandes individuelles et un nouveau raster.

Comme je voudrais juste créer un nouveau fichier raster, pas des rasters de bandes individuelles, comment puis-je le faire ?


Comme indiqué dans le commentaire de @Surya, je pense que le moyen d'accomplir ce que vous décrivez (c'est-à-dire que le raster final est le seul écrit sur le disque) consiste à utiliser un espace de travail in_memory pour écrire les bandes intermédiaires :

L'écriture de la sortie du géotraitement dans l'espace de travail en mémoire est une alternative à l'écriture de la sortie dans un emplacement sur disque ou sur un emplacement réseau.

les données écrites dans l'espace de travail en mémoire sont temporaires et seront supprimées à la fermeture de l'application.

Tables, classes d'entités et rasters peut être écrit dans l'espace de travail en mémoire.


Voir la vidéo: PYTHON IN ARC GIS #4CREATE CONTOUR FROM DEMRASTER FOR GIVEN CONTOUR INTERVAL IN ARC GIS (Octobre 2021).