任意地理位置的人口普查数据

census-area的Python项目详细描述


这个python库扩展了sunlight基金会的Census API Wrapper,允许按人口普查地点和任意地理位置查询人口普查区域、数据块组和数据块。

设置

使用pip

获取库及其依赖项
pip install census_area

用法

from census_area import Census

c = Census("MY_API_KEY")
old_homes = c.acs5.state_place_tract(('NAME', 'B25034_010E'), 17, 14000)

上面的调用将返回人口普查区的名称和1939年之前在芝加哥市每个区建造的房屋数量。17是伊利诺伊州的FIPS代码,14000是芝加哥的FIPS代码。

默认情况下,此方法将返回字典列表,其中每个字典表示一个束的数据。

使用return_geometry参数,可以让该方法返回一个类似geojson的字典。每个区域都是一个特征,关于区域的普查变量显示在特征的属性属性中。

old_homes_geojson = c.acs5.state_place_tract(('NAME', 'B25034_010E'), 17, 14000), return_geometry=True)

块组也有类似的方法

old_home_block_groups = c.acs5.state_place_blockgroup(('NAME', 'B25034_010E'), 17, 14000))

和积木。请注意,块级地理位置仅适用于十年一次的人口普查的简短数据

owner_occupied = c.sf1.state_place_block(('NAME', 'H016F0002'), 17, 14000)

在十年一次的人口普查中,也可以使用束法和分组法。

owner_occupied_blockgroup = c.sf1.state_place_tract(('NAME', 'H016F0002'), 17, 14000)
owner_occupied_tract = c.sf1.state_place_blockgroup(('NAME', 'H016F0002'), 17, 14000)

old_homes = c.sf3.state_place_tract('NAME', 'H034010'), 17, 14000)
old_homes = c.sf3.state_place_blockgroup('NAME', 'H034010'), 17, 14000)

除了这些方便的方法外,还有三种较低级别的方法来获取任意几何图形的人口普查区域、块和组。

import json

with open('my_shape.geojson') as infile:
    my_shape_geojson = json.load(infile)
features = []
old_homes = c.acs5.geo_tract(('NAME', 'B25034_010E'), my_shape_geojson['geometry'])
for tract_geojson, tract_data, tract_proportion in old_homes:
     tract_geojson['properties'].update(tract_data)
     features.append(tract)

my_shape_with_new_data_geojson = {'type': "FeatureCollection", 'features': features}

该方法接受所需的人口普查变量和geojson几何体,并返回一个束形状的generator作为geojson特性,以及该束的变量。此外,生成器返回一个“束比例”;这是属于目标形状的束区域的比例。

对于ACS 5年和10年一次的人口普查,也为区块组和区块提供了类似的方法。

c.acs5.geo_blockgroup(('NAME', 'B25034_010E'), my_shape_geojson['geometry'])

c.sf1.geo_block(('NAME', 'H016F0002'), my_shape_geojson['geometry'])
c.sf1.geo_blockgroup(('NAME', 'H016F0002'), my_shape_geojson['geometry'])
c.sf1.geo_tract(('NAME', 'H016F0002'), my_shape_geojson['geometry'])

c.sf3.state_place_tract('NAME', 'H034010'), my_shape_geojson['geometry'])
c.sf3.state_place_blockgroup('NAME', 'H034010'), my_shape_geojson['geometry'])

团队

  • Jean Cochrane,数据制作
  • Forest Gregg,数据制作

错误和错误

如果某个东西的行为不是直观的,那么它就是一个bug,应该被报告。 通过创建问题在此处报告:https://github.com/datamade/census_area/issues

按照Mozilla’s guidelines for reporting bugs.帮助我们尽快解决问题

修补程序和拉取请求

欢迎使用您的修补程序。我们建议的工作流程如下:

  • 分叉项目。
  • 添加功能或修复错误。
  • 向我们发送一个请求和你的工作描述。主题分支的加分!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java类之间并发性不一致的HashMap   插件如何在JavaSwing中使用UIManager和Classloader从外部jar安装外观?   java JasperReports:找不到子报表   在项目中找不到java生成的Javadoc文件   java BigDecimal。multiply()和divide()方法返回十六进制数。为什么?   java统计出现次数并从字符串中删除重复项   调用运算符时发生java NullPointerException   Spring和Hibernate之间的java配置错误   JavaZK将用户重定向回上一页   Javasocket为传出连接指定特定的网络接口   如果拖动到某个区域外,java Make按钮操作将被取消   如何在Eclipse for selenium 3.141.59中添加Java文档链接   java从匹配条件的数组中获取所有索引   docker未连接到RemoteWebDriver的java Gitlab ci selenium测试   java重写run方法   utf 8如何使用java解码UTF8编码的字符串?   java如何从eclipse调试部署在tomcat上的web应用程序?   将字母字符与前面没有百分号的Java正则表达式匹配