5 个版本
0.1.5 | 2024年6月11日 |
---|---|
0.1.4 | 2024年6月11日 |
0.1.3 | 2024年2月26日 |
#702 在 命令行工具
每月 57 次下载
6.5MB
1K SLoC
Magpie
Magpie 是一个用于从 eBird 抓取目标鸟种的工具。任何热点或地理区域都有“目标物种”功能。此功能会列出在该地点找到的所有物种,这些物种在用户指定的某个时间期间和地理范围内尚未看到。最一般的形式是
{物种}数量在 {第一地点}你需要为你的{第二地点} {时间}列表
第一个和第二个位置可以相同,或者第二个位置可以是包含第一个位置的地理区域。《时间》通常是生命或年份(如生命列表或年度列表),但也可以是月份(本月,所有年份)或日期(今天,所有年份)。列表将包括在《第二地点》看到的所有物种。
以下是两个具体示例
在挪威索格内-菲约德恩观察到180种物种,你需要为你的索格内-菲约德恩生命列表。
在挪威索格内-菲约德恩观察到130种物种,你需要为你的世界生命列表。
请注意,在这个示例中,当《第二地点》覆盖更大的地理区域时,目标物种的数量会减少。在其他示例中,它可能保持不变,但绝不会增加。
Magpie 通过从多个、实际上许多目标鸟种页面收集数据并将它们保存到单个 CSV 文件中来工作。一旦保存这些文件,就可以用于执行各种分析。例如,确定哪些地区,甚至热点,拥有最多便于观察的物种,以及在什么时间或在哪里可以最有可能找到给定的物种。
Magpie 和 eBird 地理
eBird 的地理区域可以分为三个级别。最粗略的是国家级别。在大多数情况下,这与通常的国家含义相同,但它包括一些政治上的怪异现象,如香港和马恩岛。
大多数国家都划分为更小的地理区域,但并非所有国家都如此。在美国,这些区域就是50个州;在加拿大是各省和地区;在英国是四个组成国家(英格兰、苏格兰、威尔士和北爱尔兰);在大多数其他国家,则是它们的州或省等相同的概念。由于没有通用的名称,在Magpie中,它们统称为区域。
在一些主要国家,存在第二级的细分。在美国(不包括阿拉斯加,那里的它们是人口普查区域)和英国,这些是县。在其他国家,这些区域有其他名称。同样,这些边界也没有通用名称;Magpie使用一个通用(如果不够原创)的术语——子区域。
所有国家、区域和子区域都存储在regions.csv
中。在没有子区域的区域情况下,该区域被视为自己的子区域,且region
和sub-region
列具有相同的数据。在罕见的情况下,国家没有细分,region
和sub-region
被视为整个国家。
由于已经提供了所有区域和子区域,建议用户从该文件中选择感兴趣的地点子集。
Magpie仅针对子区域和热点地区抓取目标物种。这样做的原因是,粗略区域的目标物种在大多数应用中可能不太有用(例如,追逐鸟类。)
输入
输入文件
Magpie以CSV文件作为输入,其中包含应提取目标物种的所有位置。此文件应具有regions.csv
或hotspots.csv
的结构,具体取决于正在抓取的位置类型。理想情况下,输入应该是这些文件之一的子集。由于regions.csv
包含所有地理区域和子区域,任何子区域集合都将是一个子集。
并非hotspots.csv
包含所有热点地区,但它确实包含所有最重要的热点地区。从eBird中抓取每个子区域的最高100个最富生产力的热点地区是很容易的。在热点地区少于100个的子区域中,此列表包含每个热点地区。在热点地区超过100个的子区域中,剩余的热点地区将拥有更少的物种,并且通常围绕着主要热点地区聚集。从这个列表中排除了大约9000个网页格式错误的热点地区。这些热点地区几乎都是废弃的、难以到达的私人道路,或者是针对很久以前出现的稀有物种的观察点,因此当前相关性很小。用户可以添加不在列表中的热点地区,但不能保证Magpie正确解析数据。
输入参数。
列表级别和日期范围参数的组合告诉magpie
使用哪种类型的物种列表来获取目标。
列表级别参数
命令行提示符必须精确包含以下选项之一。
参数 | 定义 |
---|---|
--local | 目标物种是那些在子区域或热点列表中尚未见过的物种。 |
--region | 目标物种是那些在包含子区域或热点地区的区域中尚未见过的物种。 |
--country | 目标物种是那些在国家中尚未见过的物种。 |
--global | 目标物种是那些在任何地方都未曾见过的物种。 |
日期范围参数
命令行提示符必须精确包含以下选项之一。
参数 | 定义 |
---|---|
--life | 目标物种是那些不在生命列表上的物种。 |
--ytd | 目标物种是那些不在年度列表上的物种。 |
--current_month | 目标物种是指在过去所有年份中,当前月份都没有出现的物种。 |
--date | 目标物种是指在过去所有年份中,当前日期都没有出现的物种。 |
时间范围参数
命令行提示符必须精确包含以下选项之一。
参数 | 定义 |
---|---|
--year | 目标物种是从任何时间在该地点发现的物种中选取的。 |
--month | 目标物种是从给定月份在该地点发现的物种中选取的。 |
--all | 为每个月都制作一个目标物种的单独列表。 |
--range | 目标物种是从给定月份范围内发现的物种中选取的。开始和结束月份用破折号分隔。 |
列表类型参数
命令行提示符必须精确包含以下选项之一。
参数 | 定义 |
---|---|
--hotspot | 输入是一个热点列表。 |
--subregion | 输入是一个子区域列表。 |
输出参数
命令行必须包含输出文件名。
--output <OUTPUT>
示例输入命令
cargo run --release -- --hotspot hotspot_no.csv --life --year --global --output output_hotspot_no.csv
输出
输出文件是一个csv文件,包含九个或十个列,具体取决于数据是在子区域还是热点级别上收集的。以下是一个示例输出。
常见名称 | 学名 | 百分比 | 清单 | 子区域 | 区域 | 国家 | 热点 | 开始月份 | 结束月份 |
---|---|---|---|---|---|---|---|---|---|
草地鹨 | Anthus pratensis | 41.97573 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
普通画眉 | Phylloscopus collybita | 37.59061 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
欧亚黑鹟 | Sylvia atricapilla | 34.03074 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
金翅雀 | Regulus regulus | 31.60841 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
红翼 | Turdus iliacus | 29.83495 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
欧洲鸬鹚 | Gulosus aristotelis | 28.20388 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
北方石鸥 | Oenanthe oenanthe | 26.89806 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
岩鹨 | Anthus petrosus | 23.02751 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
黄眉鹟 | Phylloscopus inornatus | 21.07929 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
普通秧鸡 | Gallinago gallinago | 20.27023 | 618 | Rogaland | Rogaland | 挪威 | 乌特希拉 | 1 | 12 |
依赖项
~31–46MB
~822K SLoC