美国人口普查地理编码的Python轻量级封装
项目描述
人口地理编码
人口地理编码是一个轻量级的Python封装,用于美国人口普查的地理编码API,兼容Python 3。它包含一个简单的命令行工具,可以将地址地理编码到经纬度,或将批量文件解析为地址和坐标。
在使用此模块之前,强烈建议您查阅人口地理编码文档。
基本示例
import censusgeocode as cg
cg.coordinates(x=-76, y=41)
cg.onelineaddress('1600 Pennsylvania Avenue, Washington, DC')
cg.address('1600 Pennsylvania Avenue', city='Washington', state='DC', zip='20006')
cg.addressbatch('data/addresses.csv')
使用returntype关键字指定'locations'或'geographies'。'locations'返回有关地址的结构化信息,而'geographies'返回有关人口普查地理区域的信息。默认为'geographies'。
cg.onelineaddress('1600 Pennsylvania Avenue, Washington, DC', returntype='locations')
查询返回一个CensusResult对象,基本上是一个带有额外'input'属性的Python列表,人口普查用它来告诉您如何解释您的请求。
>>> result = cg.coordinates(x=-76, y=41)
>>> result.input
{
u'vintage': {
u'vintageName': u'Current_Current',
u'id': u'4',
u'vintageDescription': u'Current Vintage - Current Benchmark',
u'isDefault': True
},
u'benchmark': {
u'benchmarkName': u'Public_AR_Current',
u'id': u'4',
u'isDefault': False,
u'benchmarkDescription': u'Public Address Ranges - Current Benchmark'
},
u'location': {
u'y': 41.0,
u'x': -76.0
}
}
>>> result
[{
'2010 Census Blocks': [{
'AREALAND': 1409023,
'AREAWATER': 0,
'BASENAME': '1045',
'BLKGRP': '1',
'BLOCK': '1045',
'CENTLAT': '+40.9957436',
'CENTLON': '-076.0089338',
'COUNTY': '079',
'FUNCSTAT': 'S',
'GEOID': '420792166001045',
'INTPTLAT': '+40.9957436',
'INTPTLON': '-076.0089338',
'LSADC': 'BK',
'LWBLKTYP': 'L',
'MTFCC': 'G5040',
'NAME': 'Block 1045',
'OBJECTID': 9940449,
'OID': 210404020212114,
'STATE': '42',
'SUFFIX': '',
'TRACT': '216600'
}],
'Census Tracts': [{
# snip
'NAME': 'Census Tract 2166',
'OBJECTID': 61245,
'OID': 20790277158250,
'STATE': '42',
'TRACT': '216600'
}],
'Counties': [{
# snip
'NAME': 'Luzerne County',
'OBJECTID': 866,
'OID': 27590277115518,
'STATE': '42'
}],
'States': [{
# snip
'NAME': 'Pennsylvania',
'REGION': '1',
'STATE': '42',
'STATENS': '01779798',
'STUSAB': 'PA'
}]
}]
高级
默认情况下,地理编码器使用"Current" vintage和benchmarks。要使用另一个vintage或benchmark,请使用CensusGeocode
类
from censusgeocode import CensusGeocode
cg = CensusGeocode(benchmark='Public_AR_Current', vintage='Census2020_Current')
cg.onelineaddress(foobar)
人口普查可能更新可用的基准和版本。请查看人口普查地理编码器文档,了解当前可用的基准和版本。
命令行工具
censusgeocode
工具有两个设置。
最简单的情况下,它接受一个参数,即地址,并返回逗号分隔的经纬度对。
censusgeocode '100 Fifth Avenue, New York, NY'
-73.992195,40.73797
censusgeocode '1600 Pennsylvania Avenue, Washington DC'
-77.03535,38.898754
人口普查地理编码器在识别非标准地址方面表现相当不错。
censusgeocode 'Hollywood & Vine, LA, CA'
-118.32668,34.101624
它还可以使用人口普查地理编码器的批量功能处理整个文件。文件必须是逗号分隔的,没有标题,并包含以下列
unique id, street address, state, city, zip code
地理编码器可以从文件中读取
censusgeocode --csv tests/fixtures/batch.csv
(示例文件)
或从stdin读取,使用-
作为文件名
head tests/fixtures/batch.csv | censusgeocode --csv -
根据人口普查文档,批量地理编码器限制为10,000行。
输出将是一个CSV文件(带标题)和以下列
- id
- address
- match
- matchtype
- parsed
- tigerlineid
- side
- lat
- lon
如果您的数据没有唯一的id,请尝试使用Unix命令行工具nl
添加行号
nl -s , input.csv | censusgeocode --csv - > output.csv
许可
本程序是免费软件:您可以在自由软件基金会发布的GNU通用公共许可证的条款下重新分发和/或修改它,许可证版本为3,或(根据您的选择)任何较新版本。
本程序是在希望它将是有用的前提下分发的,但没有任何保证;甚至没有关于适销性或针对特定目的的适用性的暗示保证。有关更多详细信息,请参阅GNU通用公共许可证。
您应该已随本程序收到一份GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/。
项目详情
censusgeocode-0.5.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee590d1b7806c630b4a6e60adfa572abf502c95fb2d9489ac045bdda46edde38 |
|
MD5 | de5975c36e0bec93d3aeb9fa60adec58 |
|
BLAKE2b-256 | f2f583c9a6aead949cfda4d21f7fed673f8a40d859a4e4c05e3ff30a8f021b08 |