Lagi

Ekstrak nilai dari raster berdasarkan titik dan piksel yang berdekatan dengan titik

Ekstrak nilai dari raster berdasarkan titik dan piksel yang berdekatan dengan titik


Saya punya masalah. Saya memiliki satu set poin (n=~2000) dan saya ingin mengekstrak nilai piksel dari beberapa raster (solusi raster tunggal juga ok) untuk lokasi titik itu serta delapan tetangga.


Inilah bagaimana saya akan mempertimbangkan untuk melakukan ini jika saya benar-benar harus memiliki setiap nilai lingkungan (seperti apa kedengarannya). Pertama buat 2 bidang untuk geometri titik (satu untuk x dan satu untuk y) dan hitung geometri untuk bidang x dan bidang y. Saya akan memastikan file poin saya berada dalam sistem koordinat yang diproyeksikan seperti UTM Meters atau State Plane Feet. Lebih baik jika unit cocok dengan unit yang diwakili dalam ukuran sel raster. Kemudian saya akan membuat 16 bidang lagi ULX, ULY, UCX, UCY, URX, URY, CLX, CLY, CRX, CRY, LLX, LLY, LCX, LCY, LRX, LRY.

Saya akan menjelaskan contoh saya menggunakan sel 30 meter. Jadi selanjutnya saya akan menggunakan bidang x dan y sebagai titik untuk membuat nilai x dan y baru untuk ULX, LCX, dan LLX menghitung masing-masing bidang tersebut dengan kalkulator bidang X - 30. untuk UC dan LC sama saja nilai sebagai X, dan untuk UR, CR, dan LR adalah x + 30. Kemudian untuk menghitung nilai Y CL dan CR sama dengan Y. Baris atas UL, UC, dan UR adalah Y + 30 dan LL, LC, LR adalah Y - 30. Jadi sekarang semua bidang terisi. Saya akan membuat 8 kelas fitur titik baru atau shapefile menggunakan bidang 16 x dan y menggunakan "Tambahkan Data XY". Menjaga nilai ID yang sama di semuanya (FID), Anda kemudian dapat menjalankan "Ekstrak Nilai ke Poin" atau "Sampel" dari Kotak Alat Analis Spasial pada file asli (untuk sel pusat) dan semua kelas fitur titik lainnya . Hasil ini kemudian dapat dibawa satu per satu ke dalam spreadsheet dan disatukan kembali sehingga setiap ID asli memiliki nilai untuk UL, UC, UR, CL, Titik Asli, CR, LL, LC, dan LR.

Anda dapat membuat skrip penambahan bidang dan penghitungan nilai jika Anda perlu melakukan ini lagi untuk kumpulan poin yang berbeda.

Untuk lingkungan 5 x 5, Anda harus lebih kreatif dalam menamai bidang Anda dan akan ada total 25 kelas fitur / shapefile, tetapi bisa juga dilakukan dengan cara ini.


Anda tampaknya melihat serangkaian opsi perangkat lunak. Cara melakukannya di pembuat model ArcMap menggunakan alat rak dapat berupa:

  • arahkan ke raster (pastikan snap to raster environment diatur.)
  • Perluas (sebesar 1 piksel untuk membuat blok sembilan Anda)
  • Ekstrak dengan masker.

Metode ini mengasumsikan bahwa titik Anda tidak begitu dekat sehingga topengnya tumpang tindih. Jika tumpang tindih akan menjadi masalah, maka Anda dapat menggunakan iterator fitur untuk memberi makan satu titik dan memprosesnya satu per satu, ini akan menghasilkan raster per titik.


Anda ingin mendapatkan nilai piksel dan 8 piksel sekitarnya dari titik. Itu bisa dilakukan di ArcGIS10.2 dengan mudah sekarang.

  • (1) Menggunakan alat Statistik Fokus untuk membuat raster keluaran di mana nilai untuk setiap sel keluaran adalah fungsi (mis. MEAN, MAXIMUM, MINIMUM, SUM… ) dari nilai semua sel input asli yang berada di lingkungan tertentu (dalam hal ini: Persegi panjang dari 3*3 sel) di sekitar lokasi itu.
  • (2) Menggunakan alat Ekstrak Nilai Ke Poin untuk mengekstrak nilai raster keluaran ke fitur titik Anda.

Anda memerlukan versi R terbaru dan, sebaiknya, RStudio dimuat di komputer Anda untuk menyelesaikan tutorial ini.

Instal Paket R

  • raster: install.packages("raster")
  • sp: install.packages("sp")
  • rgdal: install.packages("rgdal")
  • alat peta: install.packages("maptools")
  • rgeo: install.packages("rgeos")
  • dplr: install.packages("dplyr")
  • ggplot2: install.packages("ggplot2")

Ekstraksi berbasis raster

Alat ekstraksi data raster mencakup alat yang menyederhanakan data yang kompleks atau bising dan alat yang membuat subset spasial atau sampel raster.

Dalam kategori kedua adalah alat dalam perangkat Ekstraksi, yang menyediakan berbagai alat untuk mensubset raster berdasarkan bentuk dan atribut, serta mengonversi raster menjadi sekumpulan titik dengan alat Ekstrak Nilai Ke Titik dan alat Sampel. Alat lain termasuk Resample, yang menggabungkan sel menjadi sel yang lebih besar, dan Clip , yang melakukan cookie-cut raster persegi panjang.


Dapatkan nilai piksel dari raster menggunakan daftar koordinat

Saya memiliki daftar koordinat xy-points dari shapefile, dan saya ingin mengekstrak nilai pikselnya masing-masing dari raster multi-band.

Saya akan memberikan beberapa konteks, tetapi mungkin beberapa pengetahuan pengindeksan dasar untuk xarray sudah cukup masalah dalam huruf tebal di bawah ini.

Pendekatan saya saat ini adalah membuka shapefile dengan Geopandas, dapatkan koordinat x dan y masing-masing dari geometri

Memuat raster skala abu-abu pita tunggal

Edisi 1 dari 2: Beberapa Koordinat dari raster pita tunggal

Di sini masalah utamanya, adalah saya hanya ingin nilai di sepanjang diagonal utama. Saya punya solusi, yang memberi saya apa yang saya inginkan, tetapi seperti yang Anda lihat bukan solusi yang sangat elegan, terutama dalam skala besar.

Saya berasumsi itu harus disebutkan dalam tutorial xarray resmi untuk pengindeksan vektor di sini, tetapi saya tidak dapat menemukannya.

Edisi 2 dari 2: Beberapa Koordinat dari raster multi-band

Demikian pula saya memiliki masalah yang sama untuk raster multi-band, untuk contoh ini, menggunakan raster 4-band.

Contoh di bawah ini adalah ekstraksi untuk 2 poin, di mana implementasi saya memberikan jawaban yang diharapkan

Untuk referensi di bawah ini, menggunakan satu titik (keduanya output sesuai keinginan)

Sekali lagi, output yang tepat berada di sepanjang diagonal utama, tetapi kali ini, untuk setiap band


Ikhtisar alat Ekstraksi

Alat Ekstraksi memungkinkan Anda untuk mengekstrak subset sel dari raster dengan atribut sel atau lokasi spasialnya. Anda juga bisa mendapatkan nilai sel untuk lokasi tertentu sebagai atribut di kelas fitur titik atau sebagai tabel.

Ekstraksi sel dengan nilai atribut ( Extract by Attributes ) dilakukan melalui klausa where. Misalnya, analisis Anda mungkin memerlukan ekstraksi sel yang lebih tinggi dari 100 meter dari raster elevasi.

Mengekstrak sel berdasarkan geometri lokasi spasialnya mengharuskan kelompok sel yang memenuhi kriteria berada di dalam atau di luar bentuk geometris tertentu ( Ekstrak dengan Lingkaran , Ekstrak dengan Poligon , Ekstrak dengan Persegi Panjang ).

Mengekstrak sel berdasarkan lokasi tertentu mengharuskan Anda mengidentifikasi lokasi tersebut baik berdasarkan lokasi titik x,y ( Ekstrak berdasarkan Poin ) atau melalui sel yang diidentifikasi menggunakan raster topeng ( Ekstrak berdasarkan Masker ).

Nilai sel yang diidentifikasi oleh kelas fitur titik dapat direkam sebagai atribut dari kelas fitur keluaran baru (Ekstrak Nilai ke Poin). Ini hanya akan mengekstrak nilai dari satu raster input.

Nilai sel yang diidentifikasi oleh kelas fitur titik dapat ditambahkan ke tabel atribut kelas fitur tersebut ( Ekstrak Multi Nilai ke Poin ). Nilai sel dari beberapa raster juga dapat diidentifikasi.

Nilai sel untuk lokasi yang teridentifikasi (baik raster maupun fitur) dapat direkam dalam tabel ( Sample ).

Tabel berikut mencantumkan alat Ekstraksi yang tersedia dan memberikan deskripsi singkat masing-masing.

Mengekstrak sel raster berdasarkan kueri logis.

Ekstrak sel raster berdasarkan lingkaran.

Ekstrak sel raster yang sesuai dengan area yang ditentukan oleh topeng.

Mengekstrak sel raster berdasarkan sekumpulan titik koordinat.

Ekstrak sel raster berdasarkan poligon.

Ekstrak sel raster berdasarkan persegi panjang.

Ekstrak nilai sel di lokasi yang ditentukan dalam kelas fitur titik dari satu atau lebih raster dan mencatat nilai ke tabel atribut kelas fitur titik.

Mengekstrak nilai sel raster berdasarkan sekumpulan fitur titik dan mencatat nilai dalam tabel atribut dari kelas fitur keluaran.

Membuat tabel yang memperlihatkan nilai sel dari raster, atau kumpulan raster, untuk lokasi yang ditentukan. Lokasi ditentukan oleh sel raster atau sekumpulan titik.

Raster input dapat berupa dua dimensi atau multidimensi. Struktur tabel output berubah ketika raster input multidimensi.


Ekstrak nilai piksel berdasarkan poin dan konversikan ke tabel di Google Earth Engine

Saya sedang melakukan proyek yang menghubungkan pengukuran lapangan tingkat keparahan kebakaran dengan nilai pita dan indeks spektral yang diperoleh dari citra Landsat sebelum dan sesudah kebakaran. Saat ini saya menggunakan Google Earth Engine untuk mengekstrak nilai pantulan permukaan dari kumpulan gambar Landsat. Pendekatan yang saya gunakan mengimpor lokasi situs bidang saya (data titik) sebagai kumpulan fitur dan menggunakan fungsi getRegion untuk mengekstrak nilai pita dari kumpulan gambar Landsat di setiap titik. Kode disediakan di bawah ini:

Pertanyaan saya adalah bagaimana saya bisa mengonversi variabel 'sampel' yang dihasilkan (daftar daftar) ke tabel yang dapat diekspor ke google drive? Atau adakah pendekatan yang lebih baik untuk mengekstrak data gambar berdasarkan titik di Google Earth Engine?

Saya baru mengenal Google Earth Engine dan bahasa pemrograman Java, jadi saya mohon maaf jika jawaban atas pertanyaan ini jelas. Saya telah menghabiskan banyak waktu mencoba mencari solusi untuk masalah ini dan saya merasa tidak mendapatkan apa-apa.


Kita juga dapat mengekstrak nilai piksel dari raster dengan mendefinisikan buffer atau area di sekitar lokasi titik individual menggunakan fungsi extract(). Untuk melakukan ini, kami mendefinisikan metode ringkasan ( fun=mean ) dan jarak buffer ( buffer=20 ) yang mewakili jari-jari daerah melingkar di sekitar setiap titik.

Unit buffer adalah unit yang sama dari data CRS.

Ekstrak informasi raster menggunakan wilayah buffer. Semua piksel yang disentuh oleh wilayah buffer dimasukkan dalam ekstrak. Sumber: Jaringan Observatorium Ekologi Nasional (NEON).

Mari kita praktikkan dengan mencari tahu rata-rata tinggi pohon pada jarak 20m di sekitar lokasi menara.

Tantangan: Ekstrak Nilai Tinggi Raster Untuk Lokasi Plot

Gunakan titik lokasi plot shapefile HARV/plot.locations_HARV.shp atau objek spasial plot.locationsSp_HARV untuk mengekstrak nilai tinggi pohon rata-rata untuk area dalam jarak 20m dari setiap lokasi plot vegetasi di wilayah studi.

Buat plot sederhana yang menunjukkan tinggi pohon rata-rata setiap plot menggunakan fungsi plot() di base-R.


Resampling dataset raster

Saat Anda memperbaiki atau mengubah, memproyeksikan, atau mengambil sampel ulang dataset raster, mengubahnya dari satu proyeksi ke proyeksi lainnya, atau mengubah ukuran sel, Anda sedang melakukan transformasi geometris. Transformasi geometrik adalah proses mengubah geometri dataset raster dari satu ruang koordinat ke ruang koordinat lainnya. Jenis transformasi geometris termasuk terpal karet (biasanya digunakan untuk georeferensi), proyeksi (menggunakan informasi proyeksi untuk mengubah data dari satu proyeksi ke proyeksi lainnya), translasi (memindahkan semua koordinat secara merata), rotasi (memutar semua koordinat dengan beberapa sudut) , dan mengubah ukuran sel kumpulan data.

Setelah transformasi geometris diterapkan pada raster input, pusat sel dari raster input jarang sejajar dengan pusat sel pada raster output, namun, nilai perlu ditetapkan ke pusat.

Meskipun Anda mungkin berpikir setiap sel dalam dataset raster ditransformasikan ke lokasi koordinat peta baru, prosesnya sebenarnya bekerja secara terbalik. Selama georeferensi, matriks sel kosong dihitung menggunakan koordinat peta. Setiap sel kosong diberi nilai berdasarkan proses resampling.

Tiga teknik resampling yang paling umum adalah penugasan tetangga terdekat, interpolasi bilinear, dan konvolusi kubik. Teknik ini menetapkan nilai untuk setiap sel kosong dengan memeriksa sel dalam dataset raster yang tidak direferensikan.

Penugasan tetangga terdekat adalah teknik resampling tercepat dan sesuai untuk data kategorikal atau tematik, karena tidak mengubah nilai sel input. Setelah lokasi pusat sel pada dataset raster keluaran terletak pada raster masukan, penetapan tetangga terdekat menentukan lokasi pusat sel terdekat pada raster masukan dan menetapkan nilai sel itu ke sel pada raster keluaran.

Penugasan tetangga terdekat tidak mengubah nilai sel apa pun dari dataset raster input. Nilai 2 di raster input akan selalu menjadi nilai 2 di raster output tidak akan pernah menjadi 2,2 atau 3. Karena nilai sel output tetap sama, penugasan tetangga terdekat harus digunakan untuk data nominal atau ordinal di mana setiap nilai mewakili a kelas, anggota, atau klasifikasi—ini bisa berupa data kategoris seperti penggunaan lahan, tanah, atau tipe hutan.

Interpolasi bilinear menggunakan nilai dari empat pusat sel input terdekat untuk menentukan nilai raster output. Nilai baru untuk sel keluaran adalah rata-rata tertimbang dari empat nilai ini, yang disesuaikan untuk memperhitungkan jaraknya dari pusat sel keluaran dalam raster masukan. Metode interpolasi ini menghasilkan permukaan yang tampak lebih halus daripada yang dapat diperoleh dengan menggunakan tetangga terdekat.

Karena nilai untuk sel keluaran dihitung menurut posisi relatif dan nilai sel masukan, interpolasi bilinear lebih disukai untuk data di mana lokasi dari titik atau fenomena yang diketahui menentukan nilai yang ditetapkan ke sel—yaitu, permukaan kontinu . Ketinggian, kemiringan, intensitas kebisingan dari bandara, dan salinitas air tanah di dekat muara adalah semua fenomena yang direpresentasikan sebagai permukaan kontinu dan paling tepat disampel ulang menggunakan interpolasi bilinear.

Konvolusi kubik mirip dengan interpolasi bilinear, kecuali rata-rata tertimbang dihitung dari 16 pusat sel input terdekat dan nilainya. Konvolusi kubik cenderung mempertajam data lebih dari interpolasi bilinear, karena lebih banyak sel yang terlibat dalam perhitungan nilai output. Oleh karena itu, metode resampling ini sering digunakan saat melakukan resampling citra, seperti foto udara dan citra satelit.

Interpolasi bilinear atau konvolusi kubik tidak boleh digunakan pada data kategorikal, karena kategori tidak akan dipertahankan dalam kumpulan data raster keluaran. Namun, ketiga teknik tersebut dapat diterapkan pada data kontinu, dengan tetangga terdekat menghasilkan keluaran blok, interpolasi bilinear menghasilkan hasil yang lebih halus, dan konvolusi kubik menghasilkan hasil yang paling tajam. Saat melakukan proyek resampling besar, Anda disarankan untuk membuat prototipe, menggunakan lebih dari satu teknik resampling untuk membuat penilaian akurat tentang metode yang paling tepat digunakan untuk data Anda.


Penciptaan

Anda dapat menggunakan fungsi ini untuk membuat objek GeographicCellsReference:

readgeoraster — Impor file data raster sebagai larik dan objek referensi.

wmsread — Impor peta raster dari server Web Map Service (WMS) sebagai larik dan objek referensi.

georefcells — Buat objek referensi raster geografis dengan menentukan batas garis lintang dan garis bujur raster dan ukuran raster atau luas sel.

georasterref — Mengonversi file dunia menjadi objek referensi raster geografis.

refmatToGeoRasterReference — Mengonversi matriks referensi menjadi objek referensi raster geografis.

refvecToGeoRasterReference — Mengonversi vektor referensi ke objek referensi raster geografis.


Parameter

Dataset fitur input titik atau multititik yang akan dikonversi menjadi raster.

Bidang yang digunakan untuk menetapkan nilai ke raster keluaran.

Ini bisa berupa bidang apa saja dari tabel atribut dataset fitur input.

Jika bidang Bentuk dari suatu titik atau kumpulan data multititik berisi nilai-z atau m, salah satu dari ini dapat digunakan.

Dataset raster keluaran yang akan dibuat.

Jika raster keluaran tidak akan disimpan ke geodatabase, tentukan .tif untuk format file TIFF, .CRF ​​untuk format file CRF, .img untuk format file ERDAS IMAGINE, atau tanpa ekstensi untuk format raster Esri Grid.

Metode untuk menentukan bagaimana sel akan diberi nilai ketika lebih dari satu fitur berada di dalam sel.

  • Paling sering — Jika ada lebih dari satu fitur di dalam sel, fitur dengan atribut paling umum, di bidang Nilai, ditetapkan ke sel. Jika mereka memiliki jumlah atribut umum yang sama, atribut dengan FID terendah digunakan.
  • Sum — Jumlah atribut semua titik di dalam sel (tidak valid untuk data string).
  • Mean — Rata-rata atribut semua titik di dalam sel (tidak valid untuk data string).
  • Standar deviasi — Standar deviasi atribut dari semua titik di dalam sel. Jika ada kurang dari dua titik dalam sel, sel tersebut diberi NoData (tidak valid untuk data string).
  • Maksimum — Nilai maksimum atribut titik di dalam sel (tidak valid untuk data string).
  • Minimum — Nilai minimum atribut titik di dalam sel (tidak valid untuk data string).
  • Rentang — Rentang atribut titik di dalam sel (tidak valid untuk data string).
  • Hitung — Jumlah poin di dalam sel.

Bidang ini digunakan ketika fitur harus mengambil preferensi atas fitur lain dengan atribut yang sama.

Bidang prioritas hanya digunakan dengan opsi Jenis penetapan sel paling sering.

Ukuran sel dari raster keluaran yang sedang dibuat.

Parameter ini dapat ditentukan dengan nilai numerik atau diperoleh dari dataset raster yang ada. Jika ukuran sel belum ditentukan secara eksplisit sebagai nilai parameter, nilai ukuran sel lingkungan digunakan, jika ditentukan sebaliknya, aturan tambahan digunakan untuk menghitungnya dari input lain. Lihat Penggunaan untuk detail lebih lanjut.

Menentukan apakah raster keluaran akan memiliki tabel atribut raster.

Parameter ini hanya berlaku untuk raster integer.

  • Dicentang—Raster keluaran akan memiliki tabel atribut raster. Ini adalah default.
  • Tidak dicentang—Raster keluaran tidak akan memiliki tabel atribut raster.

Dataset fitur input titik atau multititik yang akan dikonversi menjadi raster.

Bidang yang digunakan untuk menetapkan nilai ke raster keluaran.

Ini bisa berupa bidang apa saja dari tabel atribut dataset fitur input.

Jika bidang Bentuk dari suatu titik atau kumpulan data multititik berisi nilai-z atau m, salah satu dari ini dapat digunakan.

Dataset raster keluaran yang akan dibuat.

Jika raster keluaran tidak akan disimpan ke geodatabase, tentukan .tif untuk format file TIFF, .CRF ​​untuk format file CRF, .img untuk format file ERDAS IMAGINE, atau tanpa ekstensi untuk format raster Esri Grid.

Metode untuk menentukan bagaimana sel akan diberi nilai ketika lebih dari satu fitur berada di dalam sel.

  • MOST_FREQUENT — Jika ada lebih dari satu fitur di dalam sel, fitur dengan atribut paling umum, di bidang Nilai , ditetapkan ke sel. Jika mereka memiliki jumlah atribut umum yang sama, atribut dengan FID terendah digunakan.
  • SUM — Jumlah atribut semua titik di dalam sel (tidak valid untuk data string).
  • MEAN — Rata-rata atribut dari semua titik di dalam sel (tidak valid untuk data string).
  • STANDARD_DEVIATION — Standar deviasi atribut dari semua titik di dalam sel. Jika ada kurang dari dua titik dalam sel, sel tersebut diberi NoData (tidak valid untuk data string).
  • MAXIMUM — Nilai maksimum atribut titik di dalam sel (tidak valid untuk data string).
  • MINIMUM — Nilai minimum atribut titik di dalam sel (tidak valid untuk data string).
  • RANGE — Rentang atribut titik di dalam sel (tidak valid untuk data string).
  • COUNT — Jumlah poin di dalam sel.

Bidang ini digunakan ketika fitur harus mengambil preferensi atas fitur lain dengan atribut yang sama.

Bidang prioritas hanya digunakan dengan opsi Jenis penetapan sel paling sering.

Ukuran sel dari raster keluaran yang sedang dibuat.

Parameter ini dapat ditentukan dengan nilai numerik atau diperoleh dari dataset raster yang ada. Jika ukuran sel belum ditentukan secara eksplisit sebagai nilai parameter, nilai ukuran sel lingkungan digunakan, jika ditentukan sebaliknya, aturan tambahan digunakan untuk menghitungnya dari input lain. Lihat Penggunaan untuk detail lebih lanjut.


Tonton videonya: How to Edit a Wikipedia Article