dim
数据安装管理器:像软件包管理器一样管理项目中的开放数据。
加入社区
我们正在寻找成员加入我们,一起发展为开源社区。
功能
- 📀 记录下载开放数据的来源 URL 及后处理等信息
- 🔧 使用其他人记录的
dim.json
,通过一个命令准备项目所需的所有开放数据 - 🚀 包括解压、编码等通用后处理,从一开始就能使用
- 🔍 从 CKAN 搜索开放数据
- 🧠 使用 GPT-3 生成处理数据的代码
文档
更多关于如何使用的信息,请参考此文档。
快速开始
安装 dim
从二进制文件安装 dim
从二进制文件下载 dim。
curl -L https://github.com/c-3lab/dim/releases/latest/download/aarch64-apple-darwin-dim -o /usr/local/bin/dim
curl -L https://github.com/c-3lab/dim/releases/latest/download/x86_64-apple-darwin-dim -o /usr/local/bin/dim
curl https://github.com/c-3lab/dim/releases/latest/download/x86_64-pc-windows-msvc-dim.exe -o C:\Users\user-name\dim.exe
curl -L https://github.com/c-3lab/dim/releases/latest/download/x86_64-unknown-linux-gnu-dim -o /usr/local/bin/dim
授予用户执行权限
chmod u+x /usr/local/bin/dim
新项目
- 初始化项目
通过 init 命令生成 dim.json
、dim-lock.json
和 data_files/
。
$ dim init
- 安装数据
此命令将已安装数据的信息存储在 dim.json
和 dim-lock.json
中。
$ dim install https://example.com -n "example"
- 已安装的数据保存于
data_files/
中。
$ ls ./data_files
安装成员共享的 dim.json 中写入的所有数据
安装成员共享的 dim.json
中写入的所有数据。
- 确保当前目录下存在 dim.json
$ ls ./
dim.json ....
- 安装 dim.json 中写入的所有数据
$ dim install
- 已安装的数据保存于
data_files/
中。
$ ls ./data_files
命令使用
初始化
生成 dim.json
、dim-lock.json
和 data_files/
。
$ dim init
安装
安装所有数据
安装 dim.json
中写入的所有数据。
$ dim install
从指定的本地 dim.json
安装。
$ dim install -f ./path/dim.json
从互联网上指定的远程 dim.json
安装。
$ dim install -f https://raw.githubusercontent.com/xxxx/xxxx/main/dim.json
安装指定数据
$ dim install https://example.com -n "example"
指定标头
$ dim install https://example.com -n "example" -H "Authorization: 1234567890abc" -H "Fiware-Service: example"
指定安装后处理
后处理解压
$ dim install https://example.com -n "example" -p unzip
后处理编码
$ dim install https://example.com -n "example" -p "encode utf-8"
后处理 xlsx-to-csv
$ dim install https://example.com -n "example" -p xlsx-to-csv
后处理 csv-to-json
$ dim install https://example.com -n "example" -p csv-to-json
后处理自定义命令
您可以在 "cmd" 后指定自定义命令。
$ dim install https://example.com -n "example" -p "cmd ******"
文件路径将作为参数传递至指定命令的末尾。
$ dim install https://example.com -n "example" -p "cmd python ./tests/test_custom_command.py"
在后处理中执行的命令。
$ python ./tests/test_custom_command.py ./data_files/***/***.xx
指定 HTML 页面进行安装
通过为指定页面中的链接指定正则表达式来安装数据。
$ dim install -P https://example.com -e ".pdf" -n "example"
强制执行
强制安装。覆盖已存在的数据文件。
$ dim install https://example.com -n "example" -F
卸载
从 dim.json
、dim-lock.json
和 data_files/
中删除指定名称的数据。
$ dim uninstall [name]
列表
显示 dim-lock.json
中描述的信息。
$ dim list
简单列表
$ dim list -s
验证
验证数据
$ dim verify
更新
更新所有数据。
$ dim update
更新指定数据。
$ dim update [name]
清理
清理项目。删除 data_files 并初始化项目。
$ dim clean
搜索
从 package_search CKAN API 搜索数据。
默认使用 数据目录横断搜索系统 进行搜索。
$ dim search 避难所
通过选项 -n 指定获取数据的数量(默认为 10)。
$ dim search 避难所 -n 3
交互式安装
从 ckan 写入数据信息至 dim.json
。
将数据存储到 data_files
中。
$ dim search -i "东京 避难所"
131105_東京都_目黒区_大地震時における地域避難所
- 目录网址 : https://www.geospatial.jp/ckan/dataset/131105-002
- 目录描述: ####大地震时当地避难所的数据。
####东京都目黑区的开放数据。【资源】大地震时当地避难所 / ####大地震时当地避难所的XLSX数据。
【关键词】东京都 / 目黑区 / 避难所
- 目录许可证 : 知识共享 署名
1. 大地震时当地避难所
* 资源网址 : https://www.geospatial.jp/ckan/dataset/1e07b569-80a5-4c31-8a7b-be88d1e8f327/resource/8d8de117-2342-4c61-a98d-8f7a9c5b71a2/download/131105evacuationspace.xlsx
* 资源描述: ####大地震时当地避难所的XLSX数据。
* 创建日期 : 2018-10-30T02:55:40.179726
* 格式 : XLSX
131059_東京都_文京区_紧急避难场所・避难所
- 目录网址 : https://www.geospatial.jp/ckan/dataset/131059-025
- 目录描述: ####紧急避难场所・避难所的数据。
####东京都文京区的开放数据。【资源】紧急避难场所・避难所 / ####文京区的避难所・紧急避难场所的数据列表的CSV格式。####更新日期: 2018年10月23日 / ####文京区的避难所・紧急避难场所的数据列表的XLSX格式。
####更新日期: 2018年10月23日【关键词】文京区 / 东京都 / 避难所 / 避难场所
- 目录许可证 : CC-BY2.1
2. 紧急避难场所・避难所
* 资源网址 : https://www.geospatial.jp/ckan/dataset/b17c1f51-ce1c-4e6a-8ff9-5ff0203b1e43/resource/008d34ad-61a5-4dbd-8996-fa6d647c2986/download/kinkyuhinanbasyo-hinanjo.csv
* 资源描述: ####文京区的避难所・紧急避难场所的数据列表的CSV格式。
####更新日期: 2018年10月23日
* 创建日期 : 2018-10-30T05:44:44.623645
* 格式 : CSV
3. 紧急避难场所・避难所
* 资源网址 : https://www.geospatial.jp/ckan/dataset/b17c1f51-ce1c-4e6a-8ff9-5ff0203b1e43/resource/0c4942d4-a149-4091-a52f-69b7da8fa143/download/kinkyuhinanbasyo-hinanjo.xlsx
* 资源描述: ####文京区的避难所・紧急避难场所的数据列表的XLSX格式。
####更新日期: 2018年10月23日
* 创建日期 : 2018-10-30T05:44:46.127915
* 格式 : XLSX
...
? 输入要安装的数据的编号 > 1
? 输入名称。若要使用CKAN资源名称则留空 >
? 输入希望添加的后处理。若不需要则留空 > xlsx-to-csv
? 有其他后处理要添加吗?(Y/n) > No
将xlsx转换为csv。
安装到 ./data_files/131105_東京都_目黑区_大地震時における地域避難所_大地震時における地域避難所/131105evacuationspace.xlsx
## [生成](doc/en/generate.md)
使用**GPT-3**自动生成关于目标数据的代码。例如,转换处理、可视化处理等。
<img src="https://yellow-cdn.veclightyear.com/2b54e442/7c652f0c-e6eb-47d9-831f-35a9ffe8e853.gif" width=800 />
将OpenAI的APIKey导出到 `OPENAI_API_KEY`。
$ export OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxx
您可以在以下网址获取APIKey: https://platform.openai.com/account/api-keys
将指定的目标数据和提示词组合,发送至GPT-3 API,输出代码并保存。
$ dim generate -t "./data.csv" "Python代码,将此csv数据转换为geojson"
使用 `-t` 指定由dim管理的数据名称
$ dim generate -t "shelter" "Python代码,将此csv数据转换为geojson"
### 示例提示列表
Python代码,将此csv数据转换为geojson
Python代码,删除此csv数据中的id列
Python代码,将此csv数据可视化为地图
Python代码,将此csv数据可视化为地图
Python代码,将此csv数据可视化为HTML页面
进行代码,将此csv数据保存到PostgreSQL
Python代码,将此csv文件中的全角数字转换为半角数字
## [帮助](doc/en/help.md)
$ dim help
# 通过Deno运行dim
1. 安装Deno
- Deno == 1.28.2
$ curl -fsSL https://deno.land/install.sh | sh $ echo 'export DENO_INSTALL=~/.deno' >> ~/.bashrc $ echo 'export PATH="$DENO_INSTALL/bin:$PATH"' >> ~/.bashrc $ source ~/.bashrc
2. 克隆存储库
$ git clone https://github.com/c-3lab/dim.git
$ cd dim
3. 运行dim命令
$ deno run -A dim.ts init $ deno run -A dim.ts install https://xxxxxx/data.json -n 'data_name'
4. 安装dim
$ deno install --unstable --allow-read --allow-write --allow-run --allow-net --allow-env dim.ts
# 运行测试并显示覆盖率
1. 运行测试
$ deno test -A --coverage=tests/coverage
2. 显示覆盖率
$ deno coverage ./tests/coverage
# 升级dim版本
您需要能够在本地环境中运行Deno。\
如果您没有Deno的执行环境,请重新安装。\
[从二进制文件安装dim](#install-the-dim-from-binary-files)
$ dim upgrade
# 贡献者
<a href="https://github.com/c-3lab/dim/graphs/contributors">
<img src="https://contributors-img.web.app/image?repo=c-3lab/dim" />
</a>
使用 [contributors-img](https://contributors-img.web.app) 制作。
# 许可证
[MIT LICENSE](./LICENSE)