Görünür gökyüzü yüzdesi hesaplanıyor mu?


14

Herkes, mümkün olduğunca basit bir şekilde, görünür gökyüzü yüzdesinin nasıl hesaplanacağını açıklayabilir mi?

Bir uydu araştırması yaptım ve binaların yüksekliğini ve aralarındaki mesafeyi hesapladım.

Bu verileri, durduğum yere göre görünür gökyüzü yüzdesini hesaplamak için nasıl kullanabilirim?

Yanıtlar:


12

Genellikle zeminin nerede olduğuna dair verilerimiz vardır , bu yüzden bunu kullanmak zorundayız. Zemin 3B olarak sağlam bir rakam belirler. Bu rakamı, görüntüleyicide ortalanan birim küreye radyal olarak yansıtırsınız: bu, zemini küredeki bir bölgeye eşler. Kalan bölgenin alanını hesaplayın : bu, gökyüzünün ( steradians cinsinden ) maruz kalan katı açıdır . Kürenin toplam alanına bölün (4 pi'ye eşit) ve gökyüzü yüzdesini elde etmek için 100 ile çarpın.

Daha canlı bir açıklama tercih ederseniz, izleyiciyi küçük bir küresel balonun ortasına koyun ve ondan gökyüzünü boyamasını isteyin. Kullandığı boya miktarını, balonun tamamını boyamak için gereken miktara bölün ve 100 ile çarpın.

Gerçekte, o kadar basit olmayan bazı teknik detaylar vardır.

Küre üçgen şeklinde bir ağ (TIN) olarak verildiğinde küre üzerindeki projeksiyon oldukça basittir, çünkü sadece bir üçgeni bir küreye yansıtmak için kod yazmanız gerekir. Zemin ızgaralı yükseklik modeli (DEM) olarak verildiğinde, her ızgara hücresini 3D dörtgen olarak düşünebilirsiniz. Bunu bir diyagonal boyunca iki üçgene bölebilir ve her üçgeni kürenin üzerine eşleyebilirsiniz. Her iki durumda da, kürenin üzerinde bir dizi yansıtılmış üçgen var. Küreyi bir haritaya yansıtarak (örneğin stereografik bir projeksiyonla) bu üçgenlerin çokgen bir bölgeye toplanması standart bir düzlem hesaplama geometrisi problemine indirgenebilir (örneğin bir düzlem tarama yöntemi kullanılarak). Gerisi kolaydır (bir CBS için).

Bu görüntü, şehir merkezindeki yukarı doğru bakan bir izleyiciye odaklanmış bir gnomonik projeksiyonda küçük bir simüle gökdelen kenti gösteriyor. CBS, bu binaların kenarlarını ve çatılarını temsil eden çokgenleri "birleştirebilir" (birleştirebilir) ve sonra kalan (beyaz) alanın alanını hesaplayabilir. Bir gnomonik projeksiyon seçildi çünkü düz mimari çizgiler eğrilerden ziyade çizgi parçaları olarak işleniyor.

Simüle edilmiş binalar

Sadece bir zemine ve binalara sahip olduğunuzda bu hesaplamayı yapmak için bir CBS hizmete sokulabilir. Binalar büyük olasılıkla dikdörtgen koleksiyonu olarak mevcuttur. Bir dikdörtgenin tepe noktası, izleyiciye göre Öklid koordinatlarına (x, y, z) sahiptir. Bunları küresel koordinatlara dönüştürün: yani enlem ve boylam. Dönüştürülen dikdörtgen için bir çokgen oluşturun. Bunu tüm binaların tüm bölümleri için tüm dikdörtgenler için yapın, bu da "çokgen özellik katmanı" ile sonuçlanır. Daha sonra, CBS'de (1) özelliklerin set-teorik birleşimini hesaplayın, (2) ortaya çıkan alanı hesaplayın, (3) bunu dünyanın yüzey alanının yarısından çıkarın (diğer yarısı toprak içindir), ve (4) dünyanın tüm alanına bölün (yüzde elde etmek için 100 ile çarparak). Hesaplama çabası N * log (N) ile orantılıdır, burada N köşe noktası sayısıdır. Doğruluk, CBS'nin dikdörtgenleri ne kadar iyi temsil ettiğine bağlıdır (dikdörtgen kenarlarını daha yakın aralıklı köşe dizilerine bölmeniz gerekebilir). Doğruluk gereksinimlerinize bağlı olarak Monte-Carlo tabanlı yaklaşımları (örneğin, ışın izleme başka bir yanıtta savunuldu), birkaç yüz binden fazla köşeye sahip olduğunuzda - yani, izleyici on binlerce bina ile tamamen çevrelendiğinde (ve bölümlerini görebildiğinde :-)).


bir uydu anketi yaptım ve binaların yüksekliğini ve aralarındaki mesafeyi nasıl çalıştım, nerede durduğuma göre görünür gökyüzü yüzdesini hesaplamak için bu verileri nasıl kullanırım? ve mümkünse bir örnek gösterebilir misiniz, bunu ilk etapta

@chris Orijinal sorunuzu düzenlemek uygun. Sorunun hangi yönlerini değiştirdiğinizi belirtin, böylece insanlar mevcut cevapların ve yorumların bağlamını anlayabilirler.
whuber

Üst üste binen örtüşen oklüderleri önlemek için projeksiyondan sonra bir birleşim adımı gerektiğini daha açık hale getirmek isteyebilirsiniz?
Dan S.

@ Dan "Kelime" sözcüğü tam 1. adımda orjinalinde :-).
whuber

@whuber Yani; Sanırım yorumum düzenlemeden önce geldi. Ya bu ya da dün ciddi bir kafein kıtlığının bir sonucu.
Dan S.

5

İşte CBS yerine bilgisayar grafik dünyasından gelen bir cevap - bu nedenle, hangi araç (lar) ı kullanmak için talimatlar yerine bir algoritmanın açıklamasıdır.

Tanım: Bir ışın bir başlangıç ​​noktasıdır + bir yön; başlangıç ​​noktasında başlayan ve bu doğrultuda sonsuzluğa devam eden çizgidir.

Aşağıdaki temel bileşenlere ihtiyacınız var:

  • Belirli bir ışının zemine çarpıp çarpmadığını test etme yeteneği.

  • Belirli bir ışının bir binaya çarpıp çarpmadığını test etme yeteneği.

  • 3B kartezyen koordinat alanında tüm verileriniz (binalar, zemini temsil eden bilgiler).

Işın testleri için uygulanacak kesin formüller, "zemini" (mükemmel bir küre? Arazi?) Ve "bir binayı (ekstrüde bir dikdörtgen? Tam bir 3D model?) Nasıl temsil ettiğinize bağlıdır. Basit geometri için, bulunması ve uygulanması kolaydır. (örneğin, "ışın küpü kesişimi" için arama yapın).

Her durumda, bir noktadan gökyüzünün görünürlüğünün% 'si olarak cevap önemsizdir: Sorgu noktanızdan rastgele yönlerle çok sayıda ışın ateşleyin. Test noktasından görülebilen gökyüzünde oranı vermedi ışınlarının sayısına eşittir değil bir bina veya yere vurmak.

Cevap kesin değil, ancak sadece daha fazla ışın ekleyerek istediğiniz hassasiyet düzeyinde hesaplayabilirsiniz.

Yukarıda açıklandığı gibi, mutlaka çok hızlı değildir; ancak uygulayabileceğiniz çok iyi belgelenmiş optimizasyonlar var.

(Bir dizi nokta ve aynı bina veri kümesinde gökyüzü görünürlüğünü hesaplamak için, bu yaklaşımın basit bir uzamsal indeks eklendikten sonra yeniden çıkmaya dayalı yaklaşımları sudan üfleyeceğini umuyorum.)


Ana sorun, doğruluğun sadece ışın sayısının kare kökü ile artmasıdır . Gökyüzü yüzdesi% 50 ise,% 5 doğruluk elde etmek için 100 ışına ihtiyacınız vardır (bu, + -10% 'a girmenin yaklaşık% 95'inden emin olduğunuz anlamına gelir),% 0.5 almak için 10.000 ışın, 0.05 almak için 1.000.000 %, (üç basamaklı), vb.
whuber

@whuber katılıyorum, ancak (1) açıklandığı gibi soru için, bir ya da iki rakamın ötesinde doğruluk bir aptal işidir ve (2) uyarlanabilir örnekleme, el salladığım "iyi belgelenmiş optimizasyonların büyük gövdesi" ne düşecektir geçmiş;). Bununla birlikte, "en iyi" yaklaşımın olup olmadığı kesinlikle durumsaldır.
Dan S.

@Dan tamam, uyarlanabilir örnekleme iyi bir fikir. Fakat pratikte nasıl yapılır? Bir DEM ve diyelim ki yakınlarda birkaç düzine bina olduğunu varsayalım. Algoritma tam olarak nasıl çalışır? Gökyüzü kapsamının doğrudan hesaplanmasından daha basit veya daha doğru etkili bir algoritma hayal etmek zordur.
whuber

@whuber Birkaç kısımda cevap vereceğim ... Birincisi: Uyarlanabilir örnekleme, ışınları bilgi sağlama olasılıklarının daha yüksek olduğu yerlere yönelir ve sonra entegre olurken yanlılığı hesaplar. Basit, etkili bir yaklaşım, tek tip bir ilk örnekleme yapmak, daha sonra da tekdüze olmayan yarım boşlukları tekrar tekrar alt bölümlere ayırmak ve yeniden örneklemek olacaktır. Nihai cevap = numunelerin ağırlıklı ortalaması (ağırlık = numunenin arama alanını içeren alanı).
Dan

Doğruluk hakkında: Uyarlanabilir örnekleme, doğruluk hakkında akıl yürütmenin daha zor olduğu anlamına gelir. Başlangıçtaki tek tip numunelerde olduğu gibi aynı temel doğrulukla birlikte, adaptasyon tekniğine ve sahne geometrisindeki yüksek frekanslı özelliklerin ölçeğine büyük ölçüde bağımlı olan ek doğruluk elde edersiniz. Ancak, "gerçek dünya" durumunda oldukça hızlı bir şekilde kaynak verilerinkinden% daha az bir hataya dönüşebileceğine inanıyorum.
Dan

3

Gökyüzü görüş faktörü (SVF), görünür gökyüzünün (Ω) iki boyutlu bir gösterimden görüldüğü gibi belirli bir gözlem noktasının üzerindeki kısmı tarafından tanımlanır (bkz. Şekil a). Algoritma, ufuk γi'nin n (sekizde burada gösterilmiştir) yönlerinin dikey yükseklik açısını belirtilen R (b) yarıçapına göre hesaplar.

Gökyüzü görünümü faktör tanımı Sky-view faktörünün mevcut görselleştirme tekniklerinin, örneğin analitik tepe gölgelemedeki yön aydınlatma problemlerinin dezavantajlarının üstesinden gelmesi önerilmiştir.

Görünür gökyüzünün bir kısmını ifade etmek için en uygun ölçü, katı açıdır Ω. Bu, bir nesnenin bir gözlemciye ne kadar büyük göründüğünün bir ölçüsüdür. Bir nesnenin katı açısı, nesnenin gözlem noktasında ortalanmış birlik küresine izdüşümünün A alanı ile orantılıdır.

SVF 0 ile 1 arasında değişir. 1'e yakın değerler, neredeyse tüm yarımkürenin görünür olduğu anlamına gelir, bu da açıkta kalan özelliklerde (düzlemler ve zirveler) görülürken, derin lavabolarda ve derin vadilerin alt kısımlarında 0'a yakın değerler bulunur. neredeyse hiç gökyüzü görünmüyor. SVF fiziksel bir niceliktir (yükseklik verilerini dikey abartı ile işlemezsek).

@Mic_cord'un işaret ettiği gibi, Remote Sens'te SVF ile veri görselleştirme üzerine yayınlanan bir makale var. 2011, 3 (2), 398-415; doi: 10,3390 / rs3020398.

SVF hesaplaması için ücretsiz bir araç (ve daha fazlası) http://iaps.zrc-sazu.si/en/rvt#v adresinde bulunabilir.


+1 Şekiller ve referanslar, buradaki ilk yazınız buna netlik ve yetki ekler. Sitemize hoşgeldiniz!
whuber

2

Ecotect (şimdi bir AutoDesk aracı ) bunu yapmanızı sağlar. Daha genel olarak, bu durum gün ışığı alanında sık sık incelenir ve bu alandan bir aracın kullanımı CBS'den daha kolay olabilir. (Gerçi bunu yapabilen ve güneşe maruz kalmayı hesaplayabilen bir CBS eklentisi duymuştum, ancak bunu hiç bulamamıştım).


ESRI'nin Güneş Analisti? (Öngörülen gökyüzünün bir ızgarasını oluşturarak ve ardından ızgarayı özetleyerek çalışır.)
whuber

1
O bitki örtüsü için uygundur ve vb binaların gölgede olarak görmediği düşünce esri.com/software/arcgis/extensions/spatialanalyst/solar.html : örneğin binalar yardım dosyası da topografyasını gördüğünü bahseder, fakat yardımcı olur. arcgis.com/tr/arcgisdesktop/10.0/help/index.html#/…
djq

binalar (en azından çıkıntılı olmayanlar) ızgaralara kolayca "yakılabilir". Muhtemelen bu konuda etkili bir yol değildir çünkü küçük bir hücre boyutuna ihtiyacınız vardır (ve Solar Analist'in kendi sınırlamaları vardır ...). Sadece düşünmüş olabileceğini düşündüm.
whuber

@whuber Duvarların güneş ışığına maruz kalması hakkında daha fazla düşünüyordum (örneğin güneye bakan bölge). Hesaplamanın sadece ızgara hücre alanını dikkate aldığını varsaydım, 'duvarı' değil (vokiller yerine pikseller onu tanımlamanın başka bir yolu olabilir).
djq

2

GRASS GIS sürüm 7'de (aslında kararlı değil) r.skyview komutu vardır ( r.horizon komutuna dayanarak , kararlı GRASS v.6'da da mevcuttur).

Bir arazi modelini temsil eden bir raster görüntüsünü okur, piksel değeri arazi özellik yüksekliklerine karşılık gelir (örn. Bina yükseklikleri) ve her piksel için "skyview faktörü" nü hesaplar.

Öncelikle verilerinizi (bilinmeyen format) bir raster veri kümesine dönüştürmeniz gerekir.

Görmek:

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

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.