核密度估计(动态热图)¶
- 作者
托马斯·邦福特,马修·库德
- 联系
t在terriscope.fr的端口,在gmail.com的mathieu.coudert的端口
- 最后更新
2014/11/02
介绍¶
7.0 新版功能.
heatmap是在常规栅格网格上表示稀疏数据的常用方法,其中网格上的每个像素与其与稀疏数据集的每个样本之间的距离成反比。热图通常用颜色渐变来表示,其中色调编码数据样本的密度(可选)以及属性的强度。“heatmap”一词本身的含义各不相同。我们将用它来参考 Kernel Density Estimation 地图。

核密度估计图示例(SA维基百科提供的图像CC)¶
配置¶
LAYER KERNELDENSITY. 热tmap矢量到栅格采用以下参数:
连接“layername”:引用 NAME 或 GROUP A的 LAYER NAME GROUP TYPE
处理“kerneldensity_radius=10”:高斯滤波器的半径(以像素为单位),以在所有功能累积后应用于位图阵列。值越大,计算过滤数据所需的CPU时间就越长。

kerneldensity_radius设置为10(像素)的结果¶

kerneldensity_radius设置为20(像素)的结果¶
处理“kerneldensity_compute_borders=on_off”:半径为“r”的内核不能应用于沿图像边界的“r”像素。默认情况下,将输入数据源的搜索矩形扩展到包括当前地图范围之外的特征“R”像素,以便计算出的热图扩展到结果图像的整个范围。如果平铺软件对其请求应用“r”像素的元缓冲,则可以在平铺时禁用此功能,以避免计算此额外信息的性能开销。
处理“kerneldensity_normalization=auto numeric”:如果设置为“auto”,则创建的栅格带将进行缩放,使其强度范围从0到255,以便完全跨越配置的颜色渐变。这种行为可能不可取(通常用于平铺),因为给定位置的像素强度将根据当前地图请求的范围而变化。如果设置为数值,则样本将乘以给定值。由用户决定使用哪一个缩放值使生成的像素跨越整个0-255范围;确定该值主要是一个尝试和错误的过程。超出0-255范围的像素将被剪裁为0或255。

应用了固定比例。与之前的图像相比,红色区域的数量更多是因为所选的比例因子使大量像素超出了255限制。¶

应用较低的固定比例。没有像素达到255限制。¶
高级样本加权和过滤¶
CLASS / STYLE SIZE STYLE. EXPRESSION 和 MINSCALEDENOM / MAXSCALEDENOM CLASS 和/或 STYLE,

当不应用样本加权或滤波时,代表纯特征密度的热图,实际的向量点被表示在旁边。(其他示例在每个示例上以属性权重呈现)¶
栅格颜色渐变¶
添加的功能 MS RFC 6:连续特征值的颜色范围映射 对于矢量特征,由于扩展到支持栅格层,将进行扩展以支持更复杂的颜色渐变。请注意,这些添加将应用于所有栅格分类,而不仅仅是热图图层。
Support for multiple stops COLORRANGE / DATARANGE.
CLASS STYLE COLORRANGE "#0000ff00" "#0000ffff" DATARANGE 0 32 END # STYLE STYLE COLORRANGE "#0000ffff" "#ff0000ff" DATARANGE 32 255 END # STYLE END # CLASS
备注
DATARANGE`s span 0 to 255 with no overlap, and that the chosen `COLORRANGE
处理范围_colorspace=rgb_hsl: RANGE

在RGB空间内插入时冲掉颜色。¶
Mapfile 示例¶
MAP
SIZE 1000 500
EXTENT -180 -90 180 90
NAME "test heat"
IMAGETYPE "png"
WEB
METADATA
"ows_srs" "epsg:4326 epsg:3857 epsg:900913"
"ows_enable_request" "*"
END # METADATA
END # WEB
PROJECTION
"+init=epsg:4326"
END # PROJECTION
LAYER
NAME "heatmap"
TYPE raster
CONNECTIONTYPE kerneldensity
CONNECTION "points"
STATUS on
PROCESSING "RANGE_COLORSPACE=HSL"
PROCESSING "KERNELDENSITY_RADIUS=20"
PROCESSING "KERNELDENSITY_COMPUTE_BORDERS=ON"
PROCESSING "KERNELDENSITY_NORMALIZATION=AUTO"
OFFSITE 0 0 0
CLASS
STYLE
COLORRANGE "#0000ff00" "#0000ffff"
DATARANGE 0 32
END # STYLE
STYLE
COLORRANGE "#0000ffff" "#ff0000ff"
DATARANGE 32 255
END # STYLE
END # CLASS
END # LAYER
LAYER
NAME "points"
STATUS on
TYPE POINT
DATA "pnts.shp"
END # LAYER
END # MAPFILE
PROCESSING
LAYER
NAME "heatmap"
...
PROCESSING "KERNELDENSITY_RADIUS=%radius%"
SCALETOKEN
NAME "%radius%"
VALUES
"0" "50"
"25000000" "10"
END # VALUES
END # SCALETOKEN
...
END # LAYER
CLASS- >`源向量层上的样式->`size`语法,用于对每个示例应用非默认权重:
从功能属性读取的权重:
LAYER NAME "points" STATUS on TYPE POINT DATA "pnts.shp" CLASS STYLE SIZE [attribute] END # STYLE END # CLASS END # LAYER
从非数字属性读取的权重:
LAYER NAME "points" STATUS on TYPE point DATA "pnts.shp" CLASSITEM "risk" CLASS EXPRESSION "high" STYLE SIZE 5 END # STYLE END # CLASS CLASS EXPRESSION "medium" STYLE SIZE 3 END # STYLE END # CLASS CLASS EXPRESSION "low" STYLE SIZE 1 END # STYLE END # CLASS END # LAYER