Apakah mungkin untuk menghasilkan pola boustrophedon yang mengisi Wilayah vektor dengan GRASS?

21

Apakah mungkin untuk menghasilkan pola boustrophedon yang mengisi Wilayah vektor dengan GRASS?

Saya memiliki wilayah vektor dalam GRASS. Dan saya ingin menghasilkan vektor (polyline) menjadi pola bostrophedon yang mengisi wilayah ini.

Pada gambar di bawah, saya memiliki area "abu-abu", dan saya ingin membuat polyline merah secara otomatis.

Apakah mungkin dengan GRASS atau alat GIS lainnya?

masukkan deskripsi gambar di sini

Dalam dunia yang sempurna, fungsi akan mengambil argumen berikut:

  • Titik awal (yang harus ada di mana saja di area tersebut)
  • Jarak antara dua garis paralel
  • Arah (vektor yang akan membantu menggambar pola)
Adrien BARRAL
sumber
Pertanyaan menarik. Bagaimana Anda menentukan titik awal? "Kiri Atas" mungkin tidak selalu berhubungan dengan titik sudut yang bagus seperti pada contoh Anda.
Darren Cope
Saya menjawab komentar Anda dalam pertanyaan
Adrien BARRAL
1
Mungkin sesuatu dapat dimasak menggunakan PyGRASS: grass.osgeo.org/grass70/manuals/libpython/pygrass_index.html
markusN
Apakah output yang diperlukan hanya gambar dengan garis-garis yang digambar di atasnya, atau apakah Anda benar-benar setelah beberapa output koordinat yang dapat diberikan ke traktor untuk membajak bidang yang paling efisien?
nmtoken

Jawaban:

2

Saya tidak tahu bagaimana membangun fungsi seperti itu, tetapi langkah-langkah untuk melakukan mungkin

  1. Gambarlah satu garis dengan azimuth yang diinginkan dan buat garis baru dengan offset sehingga poligon benar-benar tertutup.

Bidang garis dibuat

  1. Buffer poligon untuk menentukan jarak antara batas poligon dan boustrophedon. Potong garis pada batas-batas poligon buffer dan menjaga bagian-bagian internal.

Bidang potong dipotong dengan poligon buffered

  1. Hubungkan ujung dan mulai titik garis dalam urutan yang benar.

Pola boustrophedon siap

pengguna30184
sumber
1
Saya mencoba hal yang sama, saya pikir Anda ke sesuatu di sini. Langkah 1 dan 2 cukup mudah - atau dapat diejek. Langkah 3 lebih rumit .. mungkin saja dalam postgis untuk mengurutkan titik-titik yang mewakili st_intersection()garis paralel / buffer dalam dengan ST_LineLocatePoint()nilainya di sepanjang buffer dalam, dan bergabung dengan pasangan alternatif.
Steven Kay
1
Jika batas poligon memiliki sudut dalam atau paku maka garis yang menghubungkan titik akhir dan titik awal dapat memotong batas. Tidak sulit untuk menguji jika persimpangan terjadi tetapi apa cara yang tepat untuk menggambar linestring dalam kasus tersebut dan bagaimana membuatnya secara otomatis? Mungkin tidak mudah untuk menemukan solusi umum.
user30184
Anda benar, mendapatkan arah yang benar akan sulit. juga, curiga pendekatan ini akan memiliki tepi kasus, misalnya bidang berbentuk u, atau bidang dengan lubang :)
Steven Kay