Làm cách nào để triển khai bản đồ giá trị theo alpha trong GIS?


14

Gần đây tôi đã đọc một số thông tin cơ bản về bản đồ và tình cờ tìm thấy sự thay thế thú vị - bản đồ giá trị theo alpha .

Khái niệm được mô tả chi tiết hơn ở đây và giấy đầy đủ có sẵn [không công khai tho] [ở đây] 2 .

Có một số chi tiết về việc triển khai trên blog indiemaps :

... tất cả các đồ họa trên được sản xuất với ActionScript 3, chỉ sử dụng trình chỉnh sửa văn bản và SDK Flex miễn phí mới nhất ...

Làm thế nào bạn có thể thực hiện một cái gì đó như thế trong gói GIS (ArcGIS? QuantumGIS?)? Hoặc R và ggplot2? Hay Python?


Toàn bộ bài viết có sẵn (cho tất cả) tại geovista.psu.edu/publications/2010/RothEtAl_2010_CJ.pdf
Ian Turton

đúng, nó không có số liệu tho: [
radek

4
Hãy thử Personal.psu.edu/rer198/publications/RothEtAl_2010_CJ.pdf mà Rob đảm bảo tôi cũng có số liệu.
Ian Turton

Câu trả lời:


7

Đây là một phương pháp để thực hiện Alpha theo giá trị trong QGIS

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

Bạn có thể sử dụng các biểu tượng mới ramp_colorscale_linearchức năng và dữ liệu được xác định

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

nhập mô tả hình ảnh ở đây


1
Công việc tuyệt vời (mặc dù tôi không chắc chắn về đường dốc màu sắc - mặc dù tôi nhận ra nó chỉ là một cách hữu ích). Một bổ sung tốt đẹp có thể là làm thế nào để làm cho huyền thoại đi cùng với nó.
Andy W

Vâng, đoạn đường màu không thực sự hoạt động. Nếu bạn có một gợi ý tốt hơn tôi có thể tạo một hình ảnh cập nhật. Đã suy nghĩ về truyền thuyết, sẽ cập nhật một khi tôi có một kế hoạch tốt. (Điều đó sẽ hoạt động với QGIS 2.0)
Nathan W

1
Tôi đã thử màu trắng và đen, trông khá tuyệt i.imgur.com/Wfg8T8P.png
Nathan W

Kiểm tra bài viết gốc của Roth - họ đã đề xuất các đường dốc. Do quá trình khử bão hòa, họ sử dụng một số đường dốc bia màu bivariate bão hòa (ban đầu). Nền đen trông đẹp mắt vì chúng cung cấp độ tương phản lớn hơn / tuyệt vời hơn với IMO nền. Tôi đã viết một số về suy đoán của tôi ở đây .
Andy W

@AndyW được cập nhật với một hình ảnh tốt hơn (có thể).
Nathan W

5

Trong R, bạn có thể đọc trong đa giác và vẽ chúng trên một thiết bị hỗ trợ độ trong suốt. Ở đây tôi đang sử dụng thiết bị windows (), R 2.12.0 với các gói rgdal và 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)))

văn bản thay thế


Cảm ơn mdsumner! Điều đó có vẻ gần nhất với những gì tôi muốn đạt được. Bắt đầu rối tung với chức năng không gian của R một chút nên sẽ cố gắng sao chép nó với dữ liệu của tôi ngay bây giờ.
radek

Một số ví dụ khác trong R: dsparks.wordpress.com/2011/10/24/ trên
radek

4

Tôi khuyên bạn nên kiểm tra trang web Geo Vista và phần mềm của họ. Các trực quan Inquiry Toolkit , cung cấp một chương trình GUI để thực hiện các bản đồ chloropleth bi variate (Tôi biết một poster trên đây làm việc tại dự án đó và có thể để trỏ đến các nguồn lực khác).

Tôi nghĩ rằng bài viết trên blog cartogrammer là đủ để giải thích kỹ thuật này, nhưng đây là một bài viết khá tuyệt vời (mở cửa cho công chúng) để xem sử dụng nó trong thực tế.

Phân tích địa kỹ thuật để tăng cường giải thích thống kê quét không gian: phân tích tỷ lệ tử vong do ung thư cổ tử cung Hoa Kỳ Jin Chen, Robert E Roth, Adam T Naito, Eugene J Lengerich và Alan M MacEachren International Magazine of Health Geographics 2008, 7:57

Tôi hy vọng sẽ thấy một số ví dụ mã cho Python và R quá! Về cơ bản, bất kỳ chương trình nào có thể thực hiện bảng màu hai tỷ lệ (hoặc bivariate) đều có thể tạo giá trị bằng bản đồ alpha. Mặc dù tất cả các triển khai tôi đã thấy được liệt kê cho đến nay là dành cho bản đồ choropleth, không có lý do gì bạn không thể thực hiện điều này cho bản đồ raster hoặc dựa trên điểm.


Gần đây tôi đã viết một bài đăng trên blog về cách triển khai chúng trong ArcGIS, Tạo giá trị bằng bản đồ alpha với ArcMap . Về cơ bản, nó đòi hỏi phải tạo các lớp riêng biệt để có độ trong suốt nhất định, và sau đó sử dụng các công cụ chỉnh sửa vectơ có sẵn trong ArcMap để tạo huyền thoại bivariate cần thiết (hoặc sử dụng bản đồ chèn giả để sao chép chú giải nếu bạn muốn tạo bản đồ VBA nền đen).

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


Thx Andy. VIT trông khá thú vị - sẽ phải thử.
radek

Yêu cầu một chút mày mò với dữ liệu đầu vào, nhưng hoạt động ra khỏi hộp. Công cụ Greaat để phân tích thăm dò. Vấn đề duy nhất _ Tôi không thể tìm thấy bất kỳ cách nào để xuất dữ liệu để xử lý thêm.
radek

3

Bạn có thể làm điều này là uDig bằng cách sử dụng kiểu dựa trên SLD để tính% độ mờ bằng cách sử dụng các hàm toán học trong thông số bộ lọc OGC. Tôi không chắc nó hiệu quả đến mức nào nhưng chắc chắn có thể được sử dụng để chứng minh khái niệm.

Tôi đã xây dựng một bản demo tại http://ian01.geog.psu.edu/geoserver/www/cartogram/alphabyvalue.html với một cuộc thảo luận tại http://ian01.geog.psu.edu/geoserver_docs/cartogram/cartogram. html . Hóa ra nó khá dễ.

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

(trong đó 30e6 là dân số California)


Cảm ơn tôi Có thể tự động hóa nó và áp dụng các kiểu này trên cơ sở 'trên mỗi đa giác' bằng một trong các biến không?
radek

Bạn sẽ cần đặt một hàm để tính giá trị trong khoảng 0-1 trong tham số độ mờ.
Ian Turton

Không phải là "Bản đồ giá trị theo alpha" thay vì "Bản đồ giá trị theo alpha"? ian01.geog.psu.edu/geoserver_docs/cartogram/index.html nói chính xác rằng: "Bản đồ là một bản đồ trong đó một số biến khác được thay thế theo khu vực hoặc khoảng cách."
underdark

1
có lẽ :-) Nhưng định nghĩa khác của bản đồ là "một bản đồ mà bạn đã nhầm lẫn để tạo điểm nhấn"
Ian Turton

2

Bạn có thể sử dụng GDAL để thực hiện việc này, thông qua các tệp VRT hoặc bằng cách đặt các giá trị theo chương trình, bằng cách truy cập vào dải thứ tư của bộ dữ liệu RGBA (chẳng hạn như GeoTiff). Tôi sẽ trình bày cách sử dụng VRT vì nó đơn giản hơn một chút: bắt đầu với RGB Tiff, bạn có thể tạo hình ảnh được xếp theo bảng Câu hỏi thường gặp :

# 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

Trong bước chỉnh sửa, mở kết quả rgb.vrtvà sửa đổi bảng màu nếu cần, điều chỉnh các c4giá trị (0-255) để đặt alpha:

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

Cảm ơn scw. Chính xác thì quy trình làm việc của tôi sẽ như thế nào đối với kịch bản với đa giác vector 3k làm đầu vào? Trước tiên tôi có nên tạo bản đồ choropleth mà không cần alpha - lưu dưới dạng raster - và sau đó điều chỉnh giá trị raster không? Các giá trị sẽ phải được điều chỉnh dựa trên cơ sở 'trên mỗi đa giác'? Và tôi phải tự động hóa nó bằng cách nào đó theo trường sẽ điều khiển các giá trị alpha ..
radek

1

Tôi thích điều đó - tôi chưa bao giờ thực sự nghĩ về khái niệm đó trước đây.

Nếu bạn có quyền truy cập vào FME hoặc tiện ích mở rộng Khả năng tương tác dữ liệu trong ArcGIS, thì có một loạt các biến áp sẽ cho phép bạn thao tác các giá trị băng tần trong bộ dữ liệu raster, bao gồm cả dải alpha.

RasterExpressionEvaluator, RasterInterpretationCoercer và RasterBandOrderer là những cái đầu tiên tôi thử. Sau đó, bạn có thể nhập / sử dụng dữ liệu trong bất kỳ công cụ GIS / Visulisation nào.

Một đồng nghiệp của tôi đã sử dụng một ý tưởng tương tự để tạo mật khẩu 'ẩn' bên trong hình ảnh raster: http://www.fmepedia.com/index.php/PasswordGenerator

Tiết lộ: Tôi làm việc cho Phần mềm An toàn - nhà sản xuất FME.


Thx Mark. Thật không may, tôi không có quyền truy cập vào FME. Và Khả năng tương tác dữ liệu không được bao gồm trong giấy phép uni của tôi cho ArcGIS: [
radek

1

Thêm một mô tả từ Josh về cách triển khai nó trong QGIS

nhập mô tả hình ảnh ở đây

Rất tốt và hướng dẫn chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.