Algoritma yang cocok untuk menyederhanakan poligon isochrone


8

Saya mencari sebuah algoritma untuk menyederhanakan isochrones yang dihasilkan menggunakan data OSM.

Ini umumnya dicirikan memiliki banyak "lubang" kecil sebagian besar karena hilangnya data OSM tetapi juga sering memiliki "pulau" kecil karena penggunaan transportasi seperti kereta bawah tanah. Saya telah mencoba sejumlah alat untuk ini, tetapi semuanya terlalu agresif dalam mengecilkan ruang - paling kritis, menghapus pulau. Keterjangkauan ke pulau-pulau angkutan umum ini sangat penting.

Jadi daripada berfokus pada alat, saya ingin mundur sedikit dan bertanya apakah ada algoritma tertentu yang cocok atau tidak cocok untuk tugas seperti itu? yaitu menjadi agresif dalam menghilangkan lubang tetapi konservatif tentang tidak memindahkan pulau.

Isochrones memulai kehidupan dalam format GeoJSON. Mereka akhirnya akan diimpor ke PostGIS.


Untuk menghitung isochrone yang lebih sederhana, Anda mungkin tertarik dengan api.oalley.fr . Algoritma menghasilkan area isochrone tanpa lubang. Ini mungkin dilihat sebagai kegembiraan atau cacat, tetapi jika Anda membutuhkan zona yang lebih sederhana, Anda mungkin tertarik. Catatan: Saya salah satu devs, sejauh ini perhitungan perlu diperbaiki dan hal ini sebagian besar merupakan eksperimen, tetapi kami membiarkan semua orang bermain dengannya secara gratis.
Overdrivr

Jawaban:


2

Mungkin resolusi dimulai dari awal?

Di mana Anda membuat isochrones?

Saya menggunakan pg_routing dan mengembalikan set tepi yang dapat dijangkau dalam waktu yang ditentukan alih-alih poligon sehingga saya dapat menggambar poligon dari data ini seperti yang saya inginkan - saya dapat menggunakan st_ConvexHull, st_ConcaveHull, st_BoncleHull, st_Buffer ...

Fungsi pertama adalah seperti menempatkan sesuatu di balon karet, yang kedua adalah seperti menyedot udara dari balon ini, dan fungsi ini bisa jadi Anda cari karena akan mengembalikan geometri yang mewakili geometri cekung yang melingkupi semua geometri dalam set. dan telah mendapat parameter yang mencegah lubang dalam geometri yang dikembalikan ...

Tetapi saya masih tidak yakin apakah itu cara yang baik - Anda akan mendapatkan satu geometri yang tidak akan benar, karena Anda tidak dapat melompat turun dari kereta saat sedang berjalan. Mungkin Anda harus menggunakan ST_ExteriorRing untuk mendapatkan lubang dan kemudian st_simplify untuk menyederhanakan geometri?

Silakan tambahkan komentar yang akan memandu saya ke jalan yang benar jika Anda pikir jawaban ini bisa berguna sehingga saya dapat mengeditnya kembali menjadi benar.


Saya menggunakan OpenTripPlanner untuk menghasilkan isochrones. pgRouting tampaknya tidak memiliki dukungan jadwal waktu angkutan umum GTFS / yang tepat sehingga itu sebabnya saya menggunakan OTP. Ide saya adalah untuk memiliki OTP menghasilkan pada presisi tinggi mereka menerapkan perataan kustom saya sendiri untuk itu. Saya setuju bahwa "lompat dari kereta sambil berlari" akan menjadi masalah fatal dengan isochrones - karenanya mengapa pulau-pulau perlu ada di sana.
rgareth4
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.