Coğrafi Bilgi Sisteminde alfa değer haritası nasıl uygulanır?


14

Son zamanlarda cartogramlar hakkında bazı arka plan okumaları yapıyorum ve ilginç alternatif - alfa değeri haritalarına rastladım .

Kavram burada daha ayrıntılı olarak açıklanmaktadır ve tam metin [burada değil] [burada] mevcuttur 2 .

İndemaps blogunda uygulama hakkında bazı ayrıntılar var :

... yukarıdaki tüm grafikler yalnızca bir metin düzenleyici ve en son ücretsiz Flex SDK kullanılarak ActionScript 3 ile üretildi ...

GIS paketinde (ArcGIS? QuantumGIS?) Böyle bir şeyi nasıl uygulayabilirsiniz? Veya R ve ggplot2? Yoksa Python mu?



doğru, tho rakamları yoktur: [
radek

4
Rob'un bana rakamlar verdiğini garanti eden personal.psu.edu/rer198/publications/RothEtAl_2010_CJ.pdf dosyasını deneyin .
Ian Turton

Yanıtlar:


7

İşte QGIS'te Alpha By Value yapmak için bir yöntem

http://nathanw.net/2013/06/27/alpha-by-value-choropleth/

Yeni ramp_colorve scale_linearişlevleri ve veri tanımlı sembolleri kullanabilirsiniz

regexp_replace( ramp_color('usa', scale_linear( "unemployed_by_county_xgv_Rate",0,15,0,1)),',[^,]*$',','|| toint(scale_linear("unemployed_by_county_xgv_Labor_Force",0,100000,0,255)))

resim açıklamasını buraya girin


1
İyi iş (renk rampasından emin olmasam da - bunun yararlı bir nasıl olduğunu anlasam da). Güzel bir ek, efsanenin onunla gitmesi nasıl olabilir.
Andy W

Evet renk rampası gerçekten işe yaramadı. Daha iyi bir öneriniz varsa, güncellenmiş bir görüntü yapabilirim. Efsaneyi düşünüyordum, iyi bir planım olduğunda güncellenecek. (Bu QGIS 2.0 ile çalışacaktır)
Nathan W

1
Oldukça havalı bir görünüme sahip beyaz ve siyahı denedim mi.imgur.com/Wfg8T8P.png
Nathan W

Orijinal Roth makalesine göz atın - rampalar önerdiler. Desatürasyon nedeniyle, daha fazla (başlangıçta) doymuş iki değişkenli renkli bira rampalarını kullanırlar. Siyah arka planlar bunlar için iyi görünüyor çünkü arka plan IMO'suyla daha büyük / daha çarpıcı kontrast sağlıyorlar. Bazı yazdım burada spekülasyon hakkında .
Andy W

@AndyW (belki) daha iyi bir görüntü ile güncellendi.
Nathan W

5

R'de çokgenleri okuyabilir ve saydamlığı destekleyen bir cihaza çizebilirsiniz. Burada rgdal ve sp paketleri ile windows () cihazı, R 2.12.0 kullanıyorum.

## read some example polygons
library(rgdal)
dsn <- system.file("vectors/ps_cant_31.MIF", package = "rgdal")[1]
ps_cant_31 <- readOGR(dsn=dsn, layer="ps_cant_31")

## scale population values 

ps_cant_31$sclpop <- sqrt((ps_cant_31$POP - min(ps_cant_31$POP))/ diff(range(ps_cant_31$POP)))

## randomly assign 0 or 1
ps_cant_31$rand <- sample(0:1, length(ps_cant_31$POP), replace = TRUE)

## plot red or blue, scaled by population
plot(ps_cant_31,  col = ifelse(ps_cant_31$rand == 0, rgb(0, 0, 1, ps_cant_31$sclpop), rgb(1, 0, 0, ps_cant_31$sclpop)))

alternatif metin


Teşekkürler mdsumner! Bu, elde etmek istediğim şeye en yakın görünüyor. R'nin mekansal işlevselliği ile uğraşmaya biraz başlayın, bu yüzden şimdi verilerimle kopyalamaya çalışacağım.
radek


4

Geo Vista sitesini ve yazılımlarını incelemenizi öneririm. Görsel Sorgulama Toolkit , iki değişken chloropleth haritalar uygulamak için bir GUI programı sağlar (Ben burada bir afişi biliyorum projede çalışıyor ve diğer kaynaklara noktaya mümkün olabilir).

Ben cartogrammer blog yazısı tekniği açıklamak için yeterli olduğunu düşünüyorum, ama burada uygulamada kullanımını görmek için (halka açık) oldukça güzel bir makale.

Mekansal tarama istatistik yorumunu geliştirmek için jeovisual analitik: ABD serviks kanseri mortalitesinin analizi Jin Chen, Robert E Roth, Adam T Naito, Eugene J Lengerich ve Alan M MacEachren Uluslararası Sağlık Coğrafya Dergisi 2008, 7:57

Ben de Python ve R için bazı kod örnekleri görmeyi umuyoruz! Temelde iki ölçekli bir renk şeması (veya iki değişkenli) uygulayabilen herhangi bir program alfa eşlemesine göre bir değer oluşturabilir. Şimdiye kadar listelediğim tüm uygulamalar choropleth haritaları için olsa da, bunu raster veya nokta tabanlı bir harita için de uygulayamamanıza gerek yok.


Geçenlerde ArcGIS ile bunları nasıl uygulayacağımız hakkında bir blog yazısı yazdım , ArcMap ile alfa haritalarına değer verme . Temel olarak, belirli bir saydamlık için ayrı katmanlar oluşturmayı ve ardından gerekli iki değişkenli efsaneyi üretmek için ArcMap'ta bulunan vektör düzenleme araçlarını kullanmayı (veya siyah arka plan VBA haritası üretmek istiyorsanız efsaneyi çoğaltmak için sahte bir içsel harita kullanmayı) içerir.

resim açıklamasını buraya girin

resim açıklamasını buraya girin


Teşekkürler Andy. VIT oldukça ilginç görünüyor - denemek zorunda kalacak.
radek

Veri girişi ile biraz tinkering gerekli, ancak kutunun dışında çalışır. Keşif analizi için mükemmel bir araç. Tek sorun _ Daha fazla işlem için veri vermek için herhangi bir yol bulamıyorum.
radek

3

OGC filtre spec matematik fonksiyonlarını kullanarak% opaklığı hesaplayan SLD tabanlı bir stil kullanarak bunu uDig yapabilirsiniz. Ne kadar verimli olacağından emin değilim ama konsept kanıtı için kesinlikle kullanılabilir.

Http://ian01.geog.psu.edu/geoserver_wws/cartogram/cartogram adresinde bir tartışma ile http://ian01.geog.psu.edu/geoserver/www/cartogram/alphabyvalue.html adresinde bir demo oluşturdum . html . Anlaşılan oldukça kolay.

          <PolygonSymbolizer>
            <Fill>
              <!-- CssParameters allowed are fill (the color) and fill-opacity -->
              <CssParameter name="fill">#4DFF4D</CssParameter>
              <CssParameter name="fill-opacity">
                <ogc:Div>
                  <ogc:PropertyName>PERSONS</ogc:PropertyName>
                  <ogc:Literal>30e6</ogc:Literal>
                </ogc:Div>
              </CssParameter>
            </Fill>     
          </PolygonSymbolizer>

(30e6 California nüfusu olduğu yerde)


Teşekkürler Iant. Değişkenlerden birini kullanarak bu stilleri otomatikleştirmek ve 'çokgen başına' temelinde bu stilleri uygulamak mümkün müdür?
radek

Opacity parametresinde 0-1 arasında bir değer hesaplamak için bir işlev koymanız gerekir.
Ian Turton

"Alfa değeri" Haritaları "yerine" Alfa değeri Harita "olmamalı mı? ian01.geog.psu.edu/geoserver_docs/cartogram/index.html doğru bir şekilde şunu ifade eder: "Kartogram, alan veya mesafe yerine başka bir değişkenin ikame edildiği bir haritadır."
underdark

1
Muhtemelen :-) Ama cartogramın diğer tanımı "bir noktaya
Ian Turton

2

Bunu yapmak için GDAL'ı, VRT dosyaları aracılığıyla veya değerleri bir RGBA veri kümesinin (GeoTiff gibi) dördüncü bandına erişerek programlı olarak ayarlayarak kullanabilirsiniz. Bir VRT'nin nasıl kullanıldığını göstereceğim, çünkü biraz daha basit: RGB Tiff ile başlayarak , SSS'ye göre paletli bir görüntü oluşturabilirsiniz :

# translate the rgba tiff to a VRT
gdal_translate -of VRT rgb.tif rgb.vrt

# modify the color table in an editor

# translate back to an image
gdal_translate rgb.vrt mask-by-alpha.tif

Düzenleme adımında, sonucu açın ve alfa rgb.vrtayarlamak için c4değerleri (0-255) ayarlayarak renk tablosunu gerektiği gibi değiştirin :

<VRTDataset rasterXSize="226" rasterYSize="271">
  <VRTRasterBand dataType="Byte" band="1">
    <ColorInterp>Palette</ColorInterp>
    <ColorTable>
      <Entry c1="238" c2="238" c3="238" c4="0"/>
      <Entry c1="237" c2="237" c3="237" c4="64"/>
      <Entry c1="236" c2="236" c3="236" c4="128"/>
      <Entry c1="229" c2="229" c3="229" c4="255"/>
    </ColorTable>
  </VRTRasterBand>
</VRTDataset> 

Teşekkürler scw. Giriş olarak 3k vektör çokgenlerine sahip senaryo için iş akışım tam olarak nasıl olurdu? Önce alfa olmadan choropleth haritası oluşturmalı - raster olarak kaydet - sonra raster değerlerini ayarlamalı mıyım? Tahmin ettiğim değerlerin 'çokgen başına' esasına göre uyarlanması gerekir mi? Ve alfa değerlerini çalıştıracak alana göre bir şekilde otomatikleştirmeliyim ..
Radek

1

Bunu beğendim - daha önce bu konsepti hiç düşünmemiştim.

ArcGIS'de FME'ye veya Veri Birlikte Çalışabilirlik uzantısına erişiminiz varsa , alfa bandı dahil olmak üzere bir raster veri kümesindeki bant değerlerini değiştirmenize izin veren bir grup transformatör vardır.

RasterExpressionEvaluator, RasterInterpretationCoercer ve RasterBandOrderer ilk başta deneyeceğim yöntemler. Daha sonra verileri herhangi bir CBS / Visulisation aracına aktarabilir / kullanabilirsiniz.

Bir meslektaşım bir raster görüntüsünün içinde 'gizli' parolalar oluşturmak için benzer bir fikir kullandı: http://www.fmepedia.com/index.php/PasswordGenerator

Açıklama: FME'nin Güvenli Yazılım üreticileri için çalışıyorum.


Teşekkürler Mark. Maalesef FME'ye erişimim yok. Ve Veri Birlikte Çalışabilirliği ArcGIS uni lisansımda yer
almıyor

1

Josh'un QGIS'de nasıl uygulanacağı hakkında bir açıklama daha

resim açıklamasını buraya girin

Çok iyi ve ayrıntılı bir öğretici.

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.