Python制作点密度图的工具包
项目描述
多切斯特
Python制作点密度图的工具。
警告
目前这非常原始。自行承担风险,并在发布之前评估此库的任何编辑使用。
安装
使用pip
安装此工具
$ pip install dorchester
使用方法
主要命令是dorchester plot
。它需要输入文件、输出文件和一个或多个属性键以提取人口计数。
dorchester plot --help
Usage: dorchester plot [OPTIONS] SOURCE DEST
Generate data for a dot-density map. Input may be any GIS format readable
by Fiona (Shapefile, GeoJSON, etc).
Options:
-k, --key TEXT Property name for a population. Use multiple
to map different population classes.
-f, --format [csv|geojson|null]
Output format. If not given, will guess
based on output file extension.
-m, --mode [w|a|x] File mode for destination [default: w]
--fid TEXT Use a property key (instead of feature.id)
to uniquely identify each feature
--coerce Coerce properties passed in --key to
integers. BE CAREFUL. This could cause
incorrect results if misused.
--progress Show a progress bar [default: False]
-m, --multiprocessing Use multiprocessing
--help Show this message and exit.
输入可以是Fiona可读的任何格式,例如Shapefiles和GeoJSON。输入文件需要包含人口数据和边界。在用dorchester
绘制之前,您可能需要将不同的文件合并在一起。
输出格式(--format
)可以是CSV或GeoJSON(即将推出更多格式)。对于GeoJSON,输出将是一系列以换行符分隔的Point
功能流,如下所示
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [76, 38]}, "properties": {"group": "population", "fid": 1}}
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [77, 39]}, "properties": {"group": "population", "fid": 1}}
{"type": "Feature", "geometry": {"type": "Point", "coordinates": [78, 37]}, "properties": {"group": "population", "fid": 1}}
这将是非常大的文件,因为我们为每个人创建一个点。例如,马萨诸塞州2010年的人口为6,631万,这意味着点密度CSV文件将有6,336,107行,305 mb。
每个键(--key
)应与每个功能上的一个属性相对应,其值为整数。在这个示例中,使用--key POP10
提取人口
{
"geometry": {
"coordinates": [...],
"type": "Polygon"
},
"id": "0",
"properties": {
"BLOCKCE": "4023",
"BLOCKID10": "250010112004023",
"COUNTYFP10": "001",
"HOUSING10": 16,
"PARTFLG": "N",
"POP10": 12,
"STATEFP10": "25",
"TRACTCE10": "011200"
},
"type": "Feature"
}
您可以通过传递多个--key
选项来创建不同的组,这些组将一起分层。例如,您可以通过这种方式创建显示不同种族群体的地图。
--mode
选项控制输出文件如何打开
w
将创建或覆盖输出文件a
将追加到现有文件x
将尝试创建一个新文件,如果该文件已存在,则失败
设置 --fid
将使用属性键来标识每个特征,而不是特征的 id
字段(该字段通常缺失,或在 shapefile 中将是索引号)。在上面的普查区块示例中,BLOCKID10
将唯一标识此区块,而 id: 0
仅标识它为其源 shapefile 中的第一个特征。
对于属性作为字符串编码的数据源,--coerce
选项将使用 --key
传递的任何内容重新解释为整数。小心使用此选项,因为它涉及更改数据。如果遇到无法转换为整数的对象,它将失败(并停止绘图)。
使用 --progress
标志来显示进度条。默认情况下是关闭的。
使用 -m
或 --multiprocessing
来使用 Python 的 multiprocessing 模块显著加快点生成速度。这将尝试使用您机器上的每个处理器,而不仅仅是其中一个。
在地图上放置点
对于较小的区域,QGIS 可以很好地渲染大量点。生成点,并将输出作为分隔符或 GeoJSON 文件加载。
要构建交互式点密度地图,可以使用 tippecanoe 生成 MBTiles 文件,该文件可以上传到 Mapbox(或可能的其他托管提供商)。这对我是有效的
tippecanoe -zg -o points.mbtiles --drop-densest-as-needed --extend-zooms-if-still-dropping points.csv
关于名称
Dorchester 是马萨诸塞州波士顿最大的最多元化的社区,常被称为点。
该名称也向 Englewood 致敬,由芝加哥论坛新闻应用团队构建。希望这是一个值得的继承者。
开发
要为此工具做出贡献,首先检出代码。然后创建一个新的虚拟环境
cd dorchester
python -m venv .venv
source .venv/bin/activate
或者如果你使用 pipenv
pipenv shell
现在安装依赖项和测试
pip install -e '.[test]'
要运行测试
pytest
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
dorchester-0.6.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 91dee3dab6d0db3a021cfd09fd91197fc26b4583a52301e08bdc416cc77bba0c |
|
MD5 | 3a2507e2283bcb46606cafd938074a88 |
|
BLAKE2b-256 | cd9ba091faf9166ddff4b17448a6ab8f67b61e9b7a3b5cf9058d92f5ff37b6ae |