Membuat shapefile tingkat kabupaten dari serangkaian titik pada jarak 30 x 30 km menggunakan ArcGIS untuk Desktop?

9

Saya memiliki kumpulan data dalam bentuk csv, seperti:

latitude, longitude, value
-45, 45, 10
....

Saya ingin menghitung rata-rata level county dari data ini, menggunakan ArcGIS atau R + grass.

Saya memiliki lapisan ArcGIS USA Counties, tetapi saya belum berhasil menyelesaikan gabungan spasial.

Bagaimana saya bisa melakukan ini?

Abe
sumber

Jawaban:

4

Alur kerja yang digunakan untuk menghasilkan file bentuk tingkat county dengan mean (z) di setiap county dari tabel data xyz di ArcGIS

perhatikan ini didasarkan pada saran @ MLowry, menambahkan instruksi hampir selangkah demi selangkah.


Buka ArcCatalog

  1. buat geodatabase pribadi baru (mis. foo.mdb)
  2. file -> baru -> geodatabase pribadi
  3. tambahkan data

    • klik kanan pada map.csv -> ekspor ke geodatabase (tunggal) -> foo.mdb
    • klik kanan pada counties.lyr -> ekspor ke geodatabase (tunggal) -> foo.mdb
  4. buat featureeclass (file .shp) dari xy table

    • buka foo.mdb
    • klik kanan tabel map.csv -> buat featureclass dari xytable
    • kolom input x = lon, y = lat, z = hasil
    • mengoordinasikan sistem impor koordinat input -> dari counties.lyr (atau, ekuivalen, -> geografis .. -> dunia -> wgs_1984 -> buka -> ok)
  5. impor kelas fitur ke geodatabase (banyak)

    • pilih file shp dibuat dalam prev. langkah -> tambahkan -> oke

Buka ArcMap

  1. Tambahkan data

    • pilih foo.mdb -> CTL + pilih tabel -> buka
  2. Bergabung spasial

    • ArcToolbox -> Alat Analisis -> Overlay -> Spatial Join ->
    • Fitur Target: counties.lyr
    • Gabung Fitur: peta tabel xyz
    • Kelas Fitur Keluaran: filename_spatialjoin
    • Bergabunglah dengan Operasi: JOIN_ONE_TO_ONE
    • Opsi Kecocokan: Terdekat
    • Peta Bidang Fitur Gabung: hapus bidang yang tidak diinginkan (hanya STATE_FIPS, CNTY_FIPS, nilai-z diperlukan)
    • Radius Pencarian: 30km
    • klik OK
    • Nilai Z = hasil; pilih 'rata-rata' (atau statistik alternatif)
David
sumber
@ David Terima kasih atas jawaban terinci ... harus memeriksanya.
Abe
@Abe ragu untuk mengedit ketika Anda melakukannya. Saya telah membuatnya CW
David LeBauer
@David Dalam keadaan ini, IDW akan menghasilkan hasil yang salah untuk statistik zona: lihat diskusi berikut jawaban @ scw.
whuber
@whuber. Terima kasih telah menunjukkannya. Pada saat saya selesai saya sudah lupa bahwa titik asli adalah untuk melakukan penggabungan spasial pada titik-titik dengan kabupaten; tetap.
David LeBauer
@ David Terima kasih. Tapi sekarang saya bingung. Pertama, di mana dalam alur kerja ini Anda benar-benar membuat "raster layer," seperti yang diumumkan judul Anda? Kedua, bagaimana bisa tiga lapis diproduksi? File CSV hanya mewakili satu set poin (x, y), masing-masing dengan atribut numerik tunggal (z).
whuber
6

Kedengarannya seperti Anda dapat mengonversi .csv ke tema acara, lalu mengekspor ke .shp, lalu melakukan penggabungan spasial dengan .shp baru ke dalam layer county, dan BOOM, Anda dapat menghitungnya.

MLowry
sumber
6

Pendekatan umum adalah mengubah data titik spasi Anda yang teratur menjadi raster (XYZ menjadi raster di Arc *; v.in.xyz dalam GRASS) kemudian melakukan operator statistik zona untuk mengumpulkan nilai-nilai sel di setiap daerah dan menghitung statistik ( berarti adalah salah satu statistik standar yang dihitung). Untuk melakukan statistik, gunakan Statistik Zonal di Arc *, atau v.rast.stats di GRASS.

Jika Anda perlu melakukan statistik yang lebih maju, Anda bisa melakukan analisis dalam R dengan rasterdan sptetapi sedikit lebih rumit.

scw
sumber
Ide bagus, tetapi kecuali jika array titik diorientasikan dengan benar dengan koordinat, resampling akan terjadi dalam konversi ke raster dan Anda akan berada di bawah belas kasihan algoritma resampling: rata-rata kemungkinan akan dimatikan sedikit pun tidak peduli apa pun yang terjadi. .
whuber
Benar, jika ukuran sel diatur ke resampling kasar dapat terjadi. Sebagai perkiraan, Anda harus dapat mengatur ukuran sel menjadi setengah jarak minimum antara dua titik dan menghindari masalah ini. Pendekatan ini memang memiliki kelemahan karena harus menangani resampling, tetapi saya telah menemukannya jauh lebih baik daripada jumlah poin yang besar (puluhan ribu atau lebih).
scw
@scw Resampling terjadi tidak peduli apa ukuran selnya (kecuali data sudah benar-benar sejajar dengan kisi). Saat menggunakan ukuran sel yang lebih halus, Anda mungkin akan mendapatkan jawaban yang lebih buruk , karena sebagian besar nilai kisi diinterpolasi di antara yang asli. Kecuali jika Anda menggunakan interpolasi tetangga terdekat, ini menyebabkan nilai ekstrim kurang terwakili. Mean hanya akan sedikit terpengaruh; statistik lain, seperti standar deviasi, dapat lebih terpengaruh.
whuber
@whuber Saya pikir saya melihat dari mana kesalahpahaman kita berasal - Saya tidak menganjurkan mengubah data menjadi permukaan terus menerus, hanya menempatkan nilai titik (ketika ada) ke dalam grid raster biasa. Jadi sebagian besar grid akan tetap NULL, dengan hanya nilai sesekali di lokasi sel bertepatan dengan lokasi titik.
scw
@ CSW Ah, sangat bagus! Terimakasih atas klarifikasinya. Anda sebenarnya melakukan hal yang setara dengan kisi spasial yang direkomendasikan oleh @MLowry.
whuber