Menghitung persentase langit yang terlihat?

14

Adakah yang bisa menjelaskan, sesederhana mungkin, bagaimana cara menghitung persentase langit yang terlihat?

Saya telah melakukan survei satelit dan berhasil mengetahui ketinggian bangunan dan jarak di antara mereka.

Bagaimana cara saya menggunakan data itu untuk menghitung persentase langit yang terlihat menurut tempat saya berdiri?

ntoken
sumber

Jawaban:

12

Kami biasanya memiliki data mengenai di mana tanah itu berada, jadi kami harus menggunakannya. Tanah menentukan angka solid dalam 3D. Anda memproyeksikan angka ini secara radial ke bola unit yang berpusat di penonton: ini memetakan tanah ke wilayah di bola. Hitung area wilayah yang tersisa : itulah sudut solid yang digantikan oleh langit (dalam steradians ). Membaginya dengan luas total bola (sama dengan 4 pi) dan kalikan dengan 100 untuk mendapatkan persentase langit.

Jika Anda lebih suka penjelasan yang lebih jelas, letakkan pemirsa di tengah-tengah gelembung kecil bola dan minta dia melukis di atas langit. Bagilah jumlah cat yang dia gunakan dengan jumlah yang dibutuhkan untuk mengecat seluruh gelembung dan kalikan dengan 100.

Pada kenyataannya ada beberapa detail teknis yang tidak terlalu sederhana.

Proyeksi ke bola cukup mudah ketika tanah diberikan sebagai jaringan triangulasi (TIN), karena Anda hanya perlu menulis kode untuk memproyeksikan segitiga ke bola. Saat ground diberikan sebagai model elevasi grid (DEM), Anda dapat membayangkan setiap sel grid sebagai segi empat 3D. Anda bisa memecahnya menjadi dua segitiga di sepanjang diagonal dan memetakan setiap segitiga ke bola. Dalam kedua kasus, Anda memiliki koleksi segitiga yang diproyeksikan di bola. Dengan memproyeksikan bola ke peta (misalnya, dengan proyeksi stereografik), agregasi segitiga-segitiga ini menjadi wilayah poligon dapat direduksi menjadi masalah standar geometri komputasi bidang (misalnya, menggunakan metode sapuan bidang). Sisanya mudah (untuk GIS).

Gambar ini menunjukkan kota kecil pencakar langit yang disimulasikan dalam proyeksi gnomonik yang berpusat di pusat kota penampil yang menatap lurus ke atas. SIG dapat "menggabungkan" (membentuk penyatuan) poligon yang mewakili sisi dan atap bangunan ini dan kemudian menghitung luas ruang (putih) yang tersisa. Proyeksi gnomonik dipilih karena garis arsitektur lurus diberikan sebagai segmen garis daripada kurva.

Bangunan simulasi

SIG dapat ditempatkan dalam layanan untuk melakukan perhitungan ini ketika Anda hanya memiliki tanah dan bangunan. Bangunan-bangunan tersebut kemungkinan besar tersedia sebagai koleksi persegi panjang. Sebuah simpul dari sebuah persegi panjang memiliki koordinat Euclidean (x, y, z) relatif terhadap pemirsa. Konversikan mereka menjadi koordinat bola: yaitu, lintang dan bujur. Buat poligon untuk persegi panjang yang dikonversi. Lakukan ini untuk semua persegi panjang untuk semua bagian dari semua bangunan, menghasilkan "lapisan fitur poligon". Kemudian, dalam SIG, (1) menghitung penyatuan set-teoritik dari fitur-fitur, (2) menghitung luas yang dihasilkan, (3) kurangi ini dari setengah luas permukaan bumi (setengah lainnya untuk tanah), dan (4) bagi dengan seluruh area bumi (dikalikan dengan 100 untuk mendapatkan persentase). Upaya komputasi sebanding dengan N * log (N) di mana N adalah jumlah simpul. Akurasi tergantung pada seberapa baik SIG mewakili persegi panjang (Anda mungkin perlu memecah sisi persegi panjang ke dalam urutan simpul yang berjarak lebih dekat). Tergantung pada persyaratan akurasi Anda, Anda dapat mempertimbangkan pendekatan berbasis Monte-Carlo (misal, penelusuran ray menganjurkan dalam balasan lain) setelah Anda memiliki lebih dari beberapa ratus ribu simpul - yaitu, begitu pemirsa benar-benar dikelilingi oleh (dan dapat melihat bagian-bagian dari) puluhan ribu bangunan :-).

whuber
sumber
saya telah melakukan survei satelit dan telah mengetahui tinggi bangunan dan jarak di antara mereka bagaimana saya menggunakan data itu untuk menghitung persentase langit yang terlihat menurut tempat saya berdiri? dan jika mungkin bisa Anda tunjukkan contohnya, saya seharusnya menulis ini di tempat pertama, maaf
@ Chris Tidak masalah mengedit pertanyaan asli Anda. Cukup tunjukkan aspek pertanyaan apa yang telah Anda modifikasi sehingga orang memahami konteks jawaban dan komentar yang ada.
whuber
Anda mungkin ingin membuatnya lebih eksplisit bahwa ada langkah serikat diperlukan setelah proyeksi untuk mencegah penghitungan ganda tumpang tindih yang tumpang tindih?
Dan S.
@Dan Kata "union" ada di sana di aslinya pada langkah 1 :-).
whuber
@whuber Jadi begitu; Saya pikir komentar saya masuk sebelum edit Anda. Entah itu atau itu adalah akibat dari kekurangan kafein yang parah kemarin.
Dan S.
5

Inilah jawaban yang berasal dari dunia grafis komputer dan bukan SIG - karenanya, ini adalah deskripsi algoritma dan bukan instruksi untuk alat mana yang digunakan.

Definisi: sinar adalah asal + arah; itu adalah garis yang dimulai pada titik asal dan berlanjut hingga tak terbatas di sepanjang arah itu.

Anda membutuhkan bahan-bahan dasar berikut:

  • Kemampuan untuk menguji untuk melihat apakah sinar yang diberikan menyentuh tanah.

  • Kemampuan untuk menguji untuk melihat apakah sinar yang diberikan mengenai bangunan.

  • Semua data Anda (bangunan, informasi yang mewakili tanah) dalam ruang koordinat kartesius 3D.

Rumus yang tepat untuk menerapkan tes ray tergantung pada bagaimana Anda mewakili "tanah" (bola sempurna? Medan?) Dan "bangunan" (persegi panjang yang diekstrusi? Model 3D lengkap?). Untuk geometri sederhana, mereka mudah ditemukan dan mudah diterapkan. (mis. cari "ray cube intersection").

Dalam kasus apa pun, dari sana jawaban untuk% visibilitas langit dari suatu titik sepele: Tembakan banyak sinar dengan arah acak dari titik kueri Anda. Proporsi langit yang terlihat dari titik uji Anda sama dengan jumlah sinar yang tidak mengenai bangunan atau tanah.

Jawabannya tidak tepat, tetapi Anda dapat menghitungnya ke tingkat presisi yang diinginkan hanya dengan menambahkan lebih banyak sinar.

Seperti dijelaskan di atas, itu tidak selalu sangat cepat; tetapi ada sejumlah besar optimisasi yang terdokumentasi dengan baik yang dapat Anda terapkan.

(Saya berharap bahwa, untuk menghitung visibilitas langit di sejumlah titik dan set data bangunan yang sama, pendekatan ini akan membuat pendekatan berbasis proyeksi ulang keluar dari air setelah penambahan indeks spasial sederhana.)

Dan S.
sumber
Masalah utama adalah bahwa akurasi meningkat hanya dengan akar kuadrat dari jumlah sinar. Jika persentase langit adalah 50%, misalnya, Anda perlu 100 sinar untuk mendapatkan akurasi 5% (yang berarti Anda sekitar 95% percaya diri dalam + -10%), 10.000 sinar untuk mendapatkan 0,5%, 1.000.000 untuk mendapatkan 0,05 %, (tiga digit), dll.
whuber
@whuber saya setuju, tetapi (1) untuk pertanyaan seperti yang dijelaskan, akurasi melebihi satu atau dua digit adalah tugas orang bodoh, dan (2) pengambilan sampel adaptif akan jatuh ke dalam "tubuh besar optimisasi yang terdokumentasi dengan baik" Saya melambaikan tangan masa lalu;). Namun apakah itu pendekatan "terbaik" tentu cukup situasional.
Dan S.
@Dan OK, sampling adaptif adalah ide bagus. Tetapi bagaimana seseorang melakukannya dalam praktik? Misalkan Anda memiliki DEM dan, katakanlah, beberapa lusin bangunan di sekitarnya. Bagaimana cara kerjanya, tepatnya? Sulit membayangkan algoritma yang efektif yang lebih sederhana atau lebih akurat daripada perhitungan langsung cakupan langit.
whuber
@whuber Saya akan menjawab dalam beberapa bagian ... Yang pertama: Adaptive sampling bermuara pada bias cahaya ke mana mereka lebih cenderung memberikan informasi dan kemudian memperhitungkan bias ketika mengintegrasikan. Pendekatan yang sederhana, efektif, adalah melakukan pengambilan sampel awal yang seragam, kemudian membagi secara rekursif & sampel ulang setengah ruang yang cukup tidak seragam. Jawaban akhir = rata-rata tertimbang sampel (berat = luas sampel yang berisi ruang pencarian).
Dan S.
Pada akurasi: Adaptive sampling berarti akurasi lebih sulit untuk dipikirkan. Anda mendapatkan akurasi dasar yang sama dengan sampel seragam awal, ditambah akurasi tambahan yang sangat tergantung pada teknik adaptasi dan skala fitur frekuensi tinggi dalam geometri adegan. Namun, saya percaya bahwa dalam situasi "dunia nyata" Anda akan dapat menyatu dengan kesalahan% kurang dari data sumber cukup cepat.
Dan S.
3

Sky-view factor (SVF) didefinisikan oleh bagian langit yang terlihat (Ω) di atas titik pengamatan tertentu seperti yang terlihat dari representasi dua dimensi (lihat gambar a). Algoritma menghitung sudut elevasi vertikal horizon γi dalam n (delapan disajikan di sini) arah ke jari-jari yang ditentukan R (b).

Definisi faktor tampilan langit Sky-view factor telah diusulkan untuk mengatasi kelemahan dari teknik visualisasi yang ada, misalnya, masalah penerangan terarah dalam bayangan bukit analitis.

Ukuran paling nyaman untuk mengekspresikan bagian dari langit yang terlihat adalah sudut padat Ω. Ini adalah ukuran seberapa besar suatu benda tampak bagi pengamat. Sudut yang solid dari suatu objek sebanding dengan area A dari proyeksi objek ke bola kesatuan yang berpusat di titik pengamatan.

SVF berkisar antara 0 dan 1. Nilai yang mendekati 1 berarti bahwa hampir seluruh belahan bumi terlihat, yang merupakan kasus dalam fitur yang terbuka (bidang dan puncak), sedangkan nilai yang mendekati 0 hadir dalam sink yang dalam dan bagian bawah lembah yang dalam dari di mana hampir tidak ada langit yang terlihat. SVF adalah kuantitas fisik (jika kita tidak memanipulasi data ketinggian dengan pembesaran vertikal).

Seperti yang ditunjukkan @mic_cord ada makalah yang diterbitkan tentang visualisasi data dengan SVF di Remote Sens. 2011, 3 (2), 398-415; doi: 10.3390 / rs3020398.

Alat gratis untuk menghitung SVF (dan banyak lagi) tersedia di http://iaps.zrc-sazu.si/en/rvt#v

KrOstir
sumber
+1 Ilustrasi dan referensi menambah kejelasan dan wewenang untuk ini, posting pertama Anda di sini. Selamat datang di situs kami!
whuber
2

Ecotect (sekarang alat AutoDesk ) memungkinkan Anda untuk melakukan ini. Secara umum, ini sering diperiksa di area penerangan alami dan alat dari bidang ini mungkin lebih mudah digunakan, daripada GIS. (Meskipun saya pernah mendengar tentang plugin GIS yang dapat melakukan ini dan menghitung paparan matahari, tapi saya tidak pernah berhasil menemukannya).

djq
sumber
Analis Matahari ESRI? (Ini bekerja dengan membuat kisi-kisi langit yang diproyeksikan dan kemudian meringkas kisi-kisi.)
whuber
1
Saya pikir itu hanya cocok untuk vegetasi dan tidak menganggap membayangi bangunan, dll esri.com/software/arcgis/extensions/spatialanalyst/solar.html The file bantuan menyebutkan bahwa ia menganggap topografi, tetapi tidak bangunan misalnya: bantuan. arcgis.com/en/arcgisdesktop/10.0/help/index.html#/…
djq
bangunan (setidaknya yang tanpa menggantung) dapat dengan mudah "dibakar". Itu mungkin bukan cara yang efisien untuk melakukannya karena Anda memerlukan ukuran sel yang kecil (dan Solar Analyst memiliki keterbatasan sendiri ...). Saya hanya berpikir Anda mungkin memikirkannya.
whuber
@whuber saya lebih memikirkan paparan sinar matahari dari dinding (misalnya area apa yang menghadap ke selatan). Saya berasumsi bahwa perhitungan hanya mempertimbangkan area sel kotak, dan bukan 'dinding' (piksel, bukan voxel mungkin cara lain untuk menggambarkannya).
djq
2

Dalam GRASS GIS versi 7 (sebenarnya tidak stabil) ada perintah r.skyview (berdasarkan perintah r.horizon , tersedia juga di GRASS v.6 yang stabil).

Bunyinya gambar raster yang mewakili model terrain, dengan nilai piksel yang sesuai dengan ketinggian fitur terrain (mis. Ketinggian bangunan) dan menghitung, untuk setiap piksel, "faktor skyview".

Pertama-tama Anda perlu mengubah data Anda (format tidak dikenal) ke dataset raster.

Lihat:

http://grass.osgeo.org/grass70/manuals/addons/r.skyview.html

http://www.mdpi.com/2072-4292/3/2/398

mic_cord
sumber