2
arcpy.RasterToNumPyArrayを使用して空間参照を保持しますか?
ArcGIS 10.1を使用していて、2つの既存のラスターに基づいて新しいラスターを作成したい。RasterToNumPyArrayは私が適応したい良い例があります。 import arcpy import numpy myArray = arcpy.RasterToNumPyArray('C:/data/inRaster') myArraySum = myArray.sum(1) myArraySum.shape = (myArray.shape[0],1) myArrayPerc = (myArray * 1.0)/ myArraySum newRaster = arcpy.NumPyArrayToRaster(myArrayPerc) newRaster.save("C:/output/fgdb.gdb/PercentRaster") 問題は、空間参照とセルサイズを削除することです。arcpy.envを実行する必要があると考えましたが、入力ラスターに基づいてそれらを設定するにはどうすればよいですか?私はそれを把握することはできません。 ルークの答えを取り上げると、これは私の暫定的な解決策です。 Lukeのソリューションはどちらも、空間参照、範囲、セルサイズを正しく設定しました。ただし、最初の方法では配列内のデータが正しく伝達されず、出力ラスタにはどこでもnodataが入力されます。彼の2番目の方法はほとんど動作しますが、nodataの大きな領域がある場合は、ブロック状のゼロと255で埋められます。これは、nodataセルをどのように処理したかに関係している可能性があります。私が話していることの画像を含めました。 #Setting the raster properties directly import arcpy import numpy inRaster0='C:/workspace/test0.tif' inRaster1='C:/workspace/test1.tif' outRaster='C:/workspace/test2.tif' dsc=arcpy.Describe(inRaster0) sr=dsc.SpatialReference ext=dsc.Extent ll=arcpy.Point(ext.XMin,ext.YMin) # sorry that i modify calculation …