Urutkan tabel fitur berdasarkan lokasi geografis

8

Inilah tantangan yang menarik: Saya perlu menyematkan tabel dalam tata letak peta sehingga catatan dalam tabel diurutkan sesuai dengan posisi geografis mereka di lapangan. Misalnya, dalam peta utara-ke-atas, fitur paling utara (poin dalam kasus ini) harus menjadi catatan pertama, dan paling selatan adalah yang terakhir.

Komposisi peta ada di ArcGIS, tapi saya bersedia menggunakan gdal / ogr, qgis, dll. Untuk penyortiran tabel jika perlu.

Untuk memperluas pertanyaan ini di luar kasus penggunaan langsung saya dan dengan demikian membuatnya lebih bermanfaat bagi masyarakat, solusi yang kuat akan memungkinkan memilih jenis geografis lainnya, seperti barat ke timur atau dari dalam ke luar .

ilustrasi

matt wilkie
sumber
Sistem Koordinat apa yang Anda gunakan?
Mapperz
@mapperz, derajat desimal geografis, tetapi bisa dengan mudah menjadi UTM atau Albers jika diperlukan.
matt wilkie

Jawaban:

7

Untuk mengurutkan arah dengan bantalan dari sebuah derajat timur dari utara, precompute vektor satuan arah sebagai (dosa (a), cos (a)).

Dengan perhitungan lapangan, dapatkan koordinat fitur (X) dan [Y] yang diproyeksikan (gunakan centroid atau apa pun untuk fitur non-point) jika belum tersedia dan hitung bidang baru yang sama dengan jarak di sepanjang bantalan, yang diberikan oleh produk titik vektor arah dengan koordinat:

z = sin(a) * [X] + cos(a) * [Y]

Sortir tabel pada [z] dalam urutan menaik.

Misalnya, untuk pengurutan utara ke selatan, bantalannya adalah 180 derajat, v = (sin (180), cos (180)) = (0, -1), dan karenanya pengurutannya adalah pada - [Y], yang mengatur catatan dari [Y] terbesar (pertama) ke terkecil [Y] (terakhir), persis seperti yang dimaksudkan.


Jenis "dalam ke luar" bisa berarti banyak hal, tetapi satu interpretasi adalah bahwa penyortiran harus berdasarkan jarak relatif ke lokasi pusat. Solusi serupa berlaku, menggunakan teorema Pythagoras untuk menghitung (kuadrat) jarak dari titik tetap. (Menerapkan akar kuadrat tidak perlu karena tidak mengubah urutan pengurutan.)


Urutan yang lebih fantastis dijelaskan dan diilustrasikan di "Peta dunia satu dimensi."

whuber
sumber
2

Untuk mengungkapkan jawaban whuber dalam hal penggunaan alat, berikut ini adalah implementasi sederhana dari kasus penggunaan Utara-Selatan, Timur-Barat saat menggunakan data titik di Arcgis:

  • Tambahkan Xdan Y(atau Latdan Long) kolom ke tabel atribut, Calculate Geometry
  • ekspor ke Excel atau apa pun, urutkan berdasarkan kolom bunga (X untuk Timur-Barat, Y untuk Utara-Selatan), dan kemudian membawa kembali dengan Add Data X / Y .

milik Esri Artikel Teknis HowTo: Sortir fitur Utara / Selatan atau Timur / Barat untuk Ekspor

Bagaimana cara mengubah urutan fitur dalam sebuah shapefile? punya solusi untuk melakukan bagian penyortiran tabel untuk Arcgis dan Qgis tanpa perlu mengekspor ke program eksternal (meskipun Anda masih perlu menduplikasi tabel / kelas fitur), dan Menyortir catatan shapefile pada atribut untuk memperbarui bidang peringkat baru menggunakan Python? memiliki metode busur.

matt wilkie
sumber
3
ArcGIS 10.0 dan yang lebih baru menyediakan opsi Sortasi Spasial di Sort Tool.
klewis
1

Seperti yang dikomentari oleh @klewis :

ArcGIS 10.0 dan yang lebih baru menyediakan opsi Sortasi Spasial di Sort Tool

The alat Urutkan bantuan , yang membutuhkan lisensi tingkat lanjutan, menjelaskan nya spatial_sort_methodyang:

Specifies how features are spatially sorted. Sort method is only enabled when the Shape field is selected as one of the sort fields.
UR —Sorting starts at upper right corner. This is the default.
UL —Sorting starts at upper left corner.
LR —Sorting starts at lower right corner.
LL —Sorting starts at lower left corner.
PEANO —Sorting uses a space filling curve algorithm, also known as a Peano curve.
PolyGeo
sumber