วิธีการใช้แผนที่มูลค่าโดยอัลฟาใน GIS?


14

ฉันได้ทำการอ่านพื้นหลังบางอย่างเกี่ยวกับ cartograms เร็ว ๆ นี้และเจอทางเลือกที่น่าสนใจ - คุ้มค่าโดยอัลฟา แผนที่

แนวคิดที่อธิบายไว้ในรายละเอียดเพิ่มเติมที่นี่และกระดาษเต็มสามารถใช้ได้ [ไม่เปิดเผยสรรพสินค้า] [นี่] 2

มีรายละเอียดบางอย่างเกี่ยวกับการใช้งานบนบล็อก indiemaps :

... กราฟิกข้างต้นทั้งหมดผลิตด้วย ActionScript 3 โดยใช้โปรแกรมแก้ไขข้อความและ Flex SDK ฟรีล่าสุด ...

คุณจะใช้งานอะไรแบบนั้นในแพ็คเกจ GIS (ArcGIS? QuantumGIS?) ได้อย่างไร? หรือ R และ ggplot2? หรืองูใหญ่?


บทความทั้งหมดสามารถดูได้ที่geovista.psu.edu/publications/2010/RothEtAl_2010_CJ.pdf
Ian Turton

จริงมันไม่มีตัวเลขถึง: [
radek

4
ลองpersonal.psu.edu/rer198/publications/RothEtAl_2010_CJ.pdfซึ่ง Rob ยืนยันว่าฉันมีตัวเลขเช่นกัน
Ian Turton

คำตอบ:


7

นี่คือวิธีการทำ Alpha By Value ใน QGIS

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

คุณสามารถใช้ใหม่ramp_colorและscale_linearฟังก์ชั่นและสัญลักษณ์ที่กำหนดข้อมูล

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)))

ป้อนคำอธิบายรูปภาพที่นี่


1
การทำงานที่ดี (แม้ว่าฉันไม่แน่ใจเกี่ยวกับทางลาดสี - แม้ว่าฉันจะรู้ว่ามันเป็นเพียงวิธีการที่มีประโยชน์) การเพิ่มที่ดีอาจเป็นวิธีที่จะทำให้ตำนานดำเนินไปด้วย
Andy W

ใช่ทางลาดสีใช้งานไม่ได้จริง ๆ หากคุณมีข้อเสนอแนะที่ดีกว่าฉันสามารถสร้างภาพที่อัปเดต มีความคิดเกี่ยวกับตำนานจะอัปเดตเมื่อฉันมีแผนดี (ที่จะทำงานกับ QGIS 2.0)
นาธาน W

1
ฉันได้ลองสีขาวและสีดำซึ่งมีเย็นดูสวยi.imgur.com/Wfg8T8P.png
นาธาน W

ตรวจสอบบทความ Roth ดั้งเดิม - พวกเขาได้แนะนำทางลาด เนื่องจากการเสื่อมสภาพพวกเขาใช้ทางลาดสีเบียร์ที่แปรสภาพเป็นสีแดงเข้มจำนวนมากขึ้น พื้นหลังสีดำดูดีสำหรับสิ่งเหล่านี้เนื่องจากให้ความคมชัดที่มากขึ้น / มากขึ้นกับพื้นหลัง IMO ผมเคยเขียนบางอย่างเกี่ยวกับการเก็งกำไรของฉันที่นี่
Andy W

@AndyW อัพเดทด้วยภาพที่ดีกว่า (อาจจะ)
นาธาน W

5

ใน R คุณสามารถอ่านรูปหลายเหลี่ยมและพล็อตพวกมันบนอุปกรณ์ที่รองรับความโปร่งใส ที่นี่ฉันใช้อุปกรณ์ windows (), R 2.12.0 พร้อมแพ็คเกจ rgdal และ sp

## 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)))

ข้อความแสดงแทน


ขอบคุณ mdsumner! นั่นดูใกล้เคียงกับสิ่งที่ฉันต้องการให้สำเร็จ เริ่มยุ่งกับฟังก์ชันเชิงพื้นที่ของ R เล็กน้อยดังนั้นจะพยายามทำซ้ำกับข้อมูลของฉันทันที
radek

ตัวอย่างเพิ่มเติมใน R: dsparks.wordpress.com/2011/10/24/…
radek

4

ฉันขอแนะนำให้คุณตรวจสอบเว็บไซต์ Geo Vista และซอฟต์แวร์ของพวกเขา ภาพสอบถาม Toolkitให้โปรแกรม GUI ที่จะใช้แผนที่ chloropleth สองตัวแปร (ฉันรู้ว่าหนึ่งในโปสเตอร์ที่นี่ทำงานที่โครงการที่และอาจจะสามารถชี้ไปที่ทรัพยากรอื่น ๆ )

ฉันคิดว่าการโพสต์บล็อกของ cartogrammer นั้นเพียงพอที่จะอธิบายเทคนิค แต่นี่เป็นบทความที่น่าสนใจ (เปิดให้สาธารณะ) เห็นการใช้งานจริง

การวิเคราะห์ทางธรณีวิทยาเพื่อเพิ่มประสิทธิภาพการตีความสถิติการสแกนเชิงพื้นที่: การวิเคราะห์การเสียชีวิตของมะเร็งปากมดลูกสหรัฐ Jin Chen, Robert E Roth, Adam T Naito, Eugene J Lengerich และ Alan M MacEachren วารสารสุขภาพแห่งชาติระหว่างประเทศปี 2551, 7:57

ฉันหวังว่าจะเห็นตัวอย่างโค้ดสำหรับ Python และ R ด้วย! โดยทั่วไปโปรแกรมใด ๆ ที่สามารถใช้โทนสีสองระดับ (หรือ bivariate) สามารถสร้างค่าด้วยแผนที่อัลฟ่า แม้ว่าการนำไปใช้งานทั้งหมดที่ฉันได้เห็นในรายการนั้นมีไว้สำหรับแผนที่คอรัล แต่ก็ไม่มีเหตุผลที่คุณจะไม่สามารถใช้สิ่งนี้สำหรับแผนที่แบบแรสเตอร์หรือจุดตามด้วย


ผมเคยเขียนเมื่อเร็ว ๆ นี้โพสต์บล็อกเกี่ยวกับวิธีการใช้พวกเขาใน ArcGIS, การทำแผนที่โดยค่าอัลฟากับ ArcMap โดยทั่วไปแล้วจะเป็นการสร้างเลเยอร์แยกต่างหากเพื่อความโปร่งใสที่กำหนดจากนั้นใช้เครื่องมือแก้ไขเวกเตอร์ที่มีอยู่ใน ArcMap เพื่อสร้างตำนาน bivariate ที่จำเป็น (หรือใช้แผนที่แทรกปลอมเพื่อทำซ้ำตำนานหากคุณต้องการสร้างแผนที่ VBA พื้นหลังสีดำ)

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


ขอบคุณแอนดี้ VIT ดูน่าสนใจทีเดียว - จะต้องลองดู
radek

ต้องการแก้ไขเล็กน้อยด้วยการป้อนข้อมูล แต่ทำงานนอกกรอบได้ เครื่องมือ Greaat สำหรับการวิเคราะห์เชิงสำรวจ ปัญหาเดียว _ ฉันไม่พบวิธีที่จะส่งออกข้อมูลเพื่อการประมวลผลเพิ่มเติม
radek

3

คุณสามารถทำสิ่งนี้ได้คือ uDig โดยใช้สไตล์ตาม SLD ที่คำนวณ% opacity โดยใช้ฟังก์ชั่นคณิตศาสตร์ในข้อมูลจำเพาะของตัวกรอง OGC ฉันไม่แน่ใจว่ามันจะมีประสิทธิภาพแค่ไหน แต่สามารถใช้เพื่อพิสูจน์แนวคิดได้อย่างแน่นอน

ฉันได้สร้างการสาธิตที่http://ian01.geog.psu.edu/geoserver/www/cartogram/alphabyvalue.htmlด้วยการอภิปรายที่http://ian01.geog.psu.edu/geoserver_docs/cartogram/cartogram HTML ปรากฎว่ามันค่อนข้างง่าย

          <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 เป็นประชากรของรัฐแคลิฟอร์เนีย)


ขอบคุณ Iant เป็นไปได้ไหมที่จะทำให้เป็นอัตโนมัติและใช้สไตล์เหล่านี้กับ 'ต่อรูปหลายเหลี่ยม' โดยใช้หนึ่งในตัวแปร
radek

คุณจะต้องใส่ฟังก์ชั่นในการคำนวณค่าระหว่าง 0-1 ในพารามิเตอร์ความทึบ
Ian Turton

มันควรจะเป็น "แผนที่มูลค่าโดยอัลฟ่า" แทนที่จะเป็น "แผนที่มูลค่าโดยอัลฟา" ian01.geog.psu.edu/geoserver_docs/cartogram/index.htmlระบุอย่างถูกต้องว่า: "cartogram เป็นแผนที่ที่ตัวแปรอื่น ๆ ถูกแทนที่ด้วยตำแหน่งหรือระยะทาง"
underdark

1
อาจจะ :-) แต่คำจำกัดความอื่น ๆ ของ cartogram คือ "แผนที่ที่คุณยุ่งเกี่ยวกับการทำแต้ม"
Ian Turton

2

คุณสามารถใช้ GDAL เพื่อทำสิ่งนี้ผ่านไฟล์ VRT หรือโดยการตั้งค่าโดยทางโปรแกรมโดยการเข้าถึงแบนด์ที่สี่ของชุดข้อมูล RGBA (เช่น GeoTiff) ฉันจะแสดงวิธีการใช้ VRT เพราะค่อนข้างง่ายกว่า: เริ่มจาก RGB Tiff คุณสามารถสร้างภาพพาเลทตามคำถามที่พบบ่อย :

# 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

ในขั้นตอนการแก้ไขเปิดผลลัพธ์rgb.vrtและปรับเปลี่ยนตารางสีตามต้องการปรับc4ค่า (0-255) เพื่อตั้งค่าอัลฟา:

<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> 

ขอบคุณ SCW เวิร์กโฟลว์ของฉันมีลักษณะอย่างไรสำหรับสถานการณ์ที่มีรูปหลายเหลี่ยมเวกเตอร์ 3k เป็นอินพุต ฉันควรสร้างแผนที่ choropleth เป็นครั้งแรกโดยไม่ใช้อัลฟ่า - บันทึกเป็นแรสเตอร์ - แล้วปรับค่าแรสเตอร์? ค่าจะต้องมีการปรับตามพื้นฐาน 'ต่อรูปหลายเหลี่ยม' ที่ฉันเข้าใจ? และฉันต้องโดยอัตโนมัติอย่างใดตามเขตที่จะผลักดันค่าอัลฟา ..
Radek

1

ฉันชอบที่ - ฉันไม่เคยคิดถึงแนวคิดนี้มาก่อน

หากคุณมีสิทธิ์เข้าถึงFMEหรือส่วนขยายการทำงานร่วมกันของข้อมูลใน ArcGIS ก็มีหม้อแปลงหลายตัวที่จะช่วยให้คุณสามารถจัดการค่าแบนด์วิดท์ในชุดข้อมูลแรสเตอร์รวมถึงวงอัลฟา

RasterExpressionEvaluator, RasterInterpretationCoercer และ RasterBandOrderer เป็นคนแรกที่ฉันจะลอง จากนั้นคุณสามารถนำเข้า / ใช้ข้อมูลในเครื่องมือ GIS / Visulisation ใด ๆ

เพื่อนร่วมงานของฉันใช้แนวคิดคล้ายกันในการสร้างรหัสผ่านที่ซ่อนอยู่ภายในภาพแรสเตอร์: http://www.fmepedia.com/index.php/PasswordGenerator

การเปิดเผยข้อมูล: ฉันทำงานให้กับซอฟต์แวร์ที่ปลอดภัย - ผู้ผลิต FME


เครื่องหมายขอบคุณ น่าเสียดายที่ฉันไม่สามารถเข้าถึง FME ได้ และการทำงานร่วมกันของข้อมูลไม่รวมอยู่ในใบอนุญาตเดียวสำหรับ ArcGIS: [
radek

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.