DCAT到进气目录转换层
intake-dcat的Python项目详细描述
进气DCAT
这些目录是描述元数据和访问信息的标准格式
对于公共数据集,如here所述。
许多socrata和esri数据门户以这种格式发布描述其目录的data.json
文件。
这两个例子可以在
https://data.lacity.org/data.json
http://geohub.lacity.org/data.json
这个项目为用户提供了一种自以为是的方法,可以将这些目录中的数据集加载到科学python生态系统中。 目前,它将csv加载到pandas数据帧中,将geojson文件加载到geodataframes中,并将esri shapefile加载到geodataframes中。 未来的格式可能包括纯json和拼花。
要求
intake >= 0.4.4
intake_geopandas >= 0.2.2
geopandas >= 0.5.0
安装
intake-dcat
在pypi上发布。
您可以在终端中运行以下命令来安装它:
pip install intake-dcat
您可以通过打开examples/
目录中的示例笔记本来测试功能:
使用量
可以使用
fromintake_dcatimportDCATCatalog
加载目录
您可以通过提供指向data.json
文件的url从dcat目录加载数据:
catalog=DCATCatalog('http://geohub.lacity.org/data.json',name='geohub')len(list(catalog))
您可以显示目录中的项目
forentry_id,entryincatalog.items():display(entry)
如果目录中的条目太多,无法同时轻松打印所有条目, 您可以通过搜索术语(例如“地区”)缩小范围:
forentry_id,entryincatalog.search('district').items():display(entry)
加载数据集
一旦确定了数据集,就可以使用read()
:
df=entry.read()
这将根据源格式自动将该数据集加载到pandas数据帧或geodataframe中。
命令行界面
intake-dcat
为一些常见操作提供了一个小的命令行接口。
使用intake-dcat <subcommand> <options>
命令mirror
此命令加载一个清单文件,其中列出一组dcat条目, 将它们上载到指定的s3 bucket,并输出具有相同条目的新目录 指着水桶。
清单示例由
# Name of the LA open data portal la-open-data: # URL to the open data portal catalog url: https://data.lacity.org/data.json # The s3 bucket to upload the data to bucket_uri: s3://my-bucket # A list of data resources to mirror items: lapd_metrics: https://data.lacity.org/api/views/t6kt-2yic # Name of the LA GeoHub data portal la-geohub: # URL to the open data portal catalog url: http://geohub.lacity.org/data.json # The s3 bucket to upload the data to bucket_uri: s3://my-bucket # A list of data resources to mirror items: bikeways: http://geohub.lacity.org/datasets/2602345a7a8549518e8e3c873368c1d9_0 city_boundary: http://geohub.lacity.org/datasets/09f503229d37414a8e67a7b6ceb9ec43_7
可以使用命令对其进行镜像
intake-dcat mirror manifest.yml > new-catalog.yml
此命令使用boto3
库并假定它可以找到aws凭据。
有关详细信息,请参见this documentation。
命令create
此命令从DCAT目录创建新的进气目录,并将其输出到标准输出。 示例命令由
intake-dcat create data.lacity.org/data.json > catalog.yml