Memahami nilai minimum dan maksimum dengan Mosaic to New Raster?

14

Saya harus menggabungkan beberapa raster DEM menjadi satu dari sumber ini: http://srtm.csi.cgiar.org/SELECTION/inputCoord.asp , jadi saya menggunakan alat Mosaic to New Raster.

Saya mengatur alat:

  1. Saya memasukkan raster (semua dari sumber yang sama, ukuran yang sama dan tidak ada proyeksi);
  2. Atur Pixel Type (floating point 32 bit seperti pada raster asli);
  3. Siapkan ukuran Sel sebagai raster asli;
  4. Jumlah Pita = 1 sebagai raster asli; Mosaic Operator, saya telah melakukannya dengan BLEND dan MEAN (saya mendapatkan hasil yang sama).

Masalah yang saya miliki adalah bahwa mosaik yang dihasilkan menunjukkan kisaran yang berbeda dari nilai maksimum dan minimum daripada nilai maksimum dan minimum dari masing-masing raster misalnya, raster 1 (-5123,8, 23,25), raster 2 (-5974,6, 40,09), raster 3 (-57770.2, 38), raster 4 (-2534.3, 23.55), dan raster mosaik terakhir (-5975.8, 81.1).

Saya kira solusi ini tidak benar, setidaknya saya tidak berharap untuk mendapatkannya. Adakah yang tahu apakah ini ok, dan jika tidak, bagaimana menyelesaikannya dan mendapatkan raster mosaik yang tepat dengan nilai maksimum dan minimum yang tepat?

Saya menggunakan ArcGIS 10.2.2 untuk Desktop.

tom
sumber
Bisakah Anda memberi tahu kami bagaimana Anda menemukan statistik untuk raster input dan output? Kadang-kadang, demi kepentingan efisiensi, ArcGIS menipu dan hanya menggunakan sebagian dari data untuk memperkirakan statistik. Khususnya ini berarti bisa jauh dalam pelaporan minima dan maxima.
Whuber
Terima kasih atas minat Anda. Saya melakukan klik kanan ke layer (baik raster awal dan mosaik) dan melihat ke Properties. Perlu disebutkan bahwa saya telah memeriksa untuk mengganti nilai setiap raster di Symbology dari Streched ke Unique values, dan ternyata jika saya beralih ke Streched values ​​untuk semua layer, maka itu cocok dengan nilai Streched min dari satu layer dan max Streched value dari yang lain, ke nilai min dan max yang saya lihat ketika mosaik dibuat. Adakah yang bisa menjelaskan kepada saya jika prosedurnya masih benar, dan perbedaan antara nilai Streched dan Uniques ini? Terima kasih!
tom
2
Saya menduga tab "Properties" curang. Untuk lebih lanjut tentang ini, lihat gis.stackexchange.com/questions/8780 .
whuber
1
Terima kasih. Tidak pernah memikirkan kemungkinan bahwa tab 'Properti' curang. Mungkin ini bisa diperjelas jika kita tahu alasan di balik ArcGIS memberikan nilai yang berbeda untuk nilai Streched dan Unique dalam Symbology, untuk satu layer raster. Adakah yang tahu mengapa?
tom

Jawaban:

10

Seperti yang disebutkan oleh whuber, seringkali statistik yang ditemukan di properti raster terkadang perkiraan atau kedaluwarsa. Mereka adalah properti yang telah ditentukan yang dapat menyesatkan dengan nilai raster yang sebenarnya.

Hitung nilai min / maks Anda sendiri dari 100% dari data aktual menggunakan array NumPy. Lihat Bekerja dengan NumPy di ​​ArcGIS , dan RasterToNumPyArray (arcpy) . Misalnya:

import arcpy

inrast = r'C:\data\inRaster.tif'
my_array = arcpy.RasterToNumPyArray(inrast)
print((my_array.min(), my_array.max()))

Jika Anda memiliki nilai yang hilang (NODATA), maka diperlukan array bertopeng untuk mendapatkan statistik yang benar:

import numpy as np
my_array = arcpy.RasterToNumPyArray(inrast)
my_masked_array = np.ma.masked_equal(my_array, arcpy.Raster(inrast).noDataValue)
print((my_masked_array.min(), my_masked_array.max()))

Juga, Anda tidak perlu ArcGIS untuk membaca raster sebagai array NumPy; misalnya GDAL atau rasterio dapat melakukan hal serupa .

Mike T
sumber
6

Sebagai balasan lain mengatakan statistik kemungkinan sudah ketinggalan zaman. Jika Anda lebih suka menggunakan ArcGIS coba alat Hitung Statistik di kotak alat Manajemen Data. Ini harus memperbarui statistik untuk Anda.

Martin
sumber