5 个版本

0.1.5 2024年6月11日
0.1.4 2024年6月11日
0.1.3 2024年2月26日

#702命令行工具

Download history 1/week @ 2024-05-18 224/week @ 2024-06-08 45/week @ 2024-06-15 9/week @ 2024-06-22 9/week @ 2024-06-29 48/week @ 2024-07-27

每月 57 次下载

MIT/Apache

6.5MB
1K SLoC

Rust 821 SLoC // 0.2% comments Python 224 SLoC // 0.0% comments

Build Status minimum rustc 1.75

Magpie

Magpie 是一个用于从 eBird 抓取目标鸟种的工具。任何热点或地理区域都有“目标物种”功能。此功能会列出在该地点找到的所有物种,这些物种在用户指定的某个时间期间和地理范围内尚未看到。最一般的形式是

{物种}数量 {第一地点}你需要你的{第二地点} {时间}列表

第一个和第二个位置可以相同,或者第二个位置可以是包含第一个位置的地理区域。《时间》通常是生命或年份(如生命列表或年度列表),但也可以是月份(本月,所有年份)或日期(今天,所有年份)。列表将包括在《第二地点》看到的所有物种。

以下是两个具体示例

在挪威索格内-菲约德恩观察到180种物种,你需要为你的索格内-菲约德恩生命列表。

在挪威索格内-菲约德恩观察到130种物种,你需要为你的世界生命列表。

请注意,在这个示例中,当《第二地点》覆盖更大的地理区域时,目标物种的数量会减少。在其他示例中,它可能保持不变,但绝不会增加。

Magpie 通过从多个、实际上许多目标鸟种页面收集数据并将它们保存到单个 CSV 文件中来工作。一旦保存这些文件,就可以用于执行各种分析。例如,确定哪些地区,甚至热点,拥有最多便于观察的物种,以及在什么时间或在哪里可以最有可能找到给定的物种。

Magpie 和 eBird 地理

eBird 的地理区域可以分为三个级别。最粗略的是国家级别。在大多数情况下,这与通常的国家含义相同,但它包括一些政治上的怪异现象,如香港和马恩岛。

大多数国家都划分为更小的地理区域,但并非所有国家都如此。在美国,这些区域就是50个州;在加拿大是各省和地区;在英国是四个组成国家(英格兰、苏格兰、威尔士和北爱尔兰);在大多数其他国家,则是它们的州或省等相同的概念。由于没有通用的名称,在Magpie中,它们统称为区域。

在一些主要国家,存在第二级的细分。在美国(不包括阿拉斯加,那里的它们是人口普查区域)和英国,这些是县。在其他国家,这些区域有其他名称。同样,这些边界也没有通用名称;Magpie使用一个通用(如果不够原创)的术语——子区域。

所有国家、区域和子区域都存储在regions.csv中。在没有子区域的区域情况下,该区域被视为自己的子区域,且regionsub-region列具有相同的数据。在罕见的情况下,国家没有细分,regionsub-region被视为整个国家。

由于已经提供了所有区域和子区域,建议用户从该文件中选择感兴趣的地点子集。

Magpie仅针对子区域和热点地区抓取目标物种。这样做的原因是,粗略区域的目标物种在大多数应用中可能不太有用(例如,追逐鸟类。)

输入

输入文件

Magpie以CSV文件作为输入,其中包含应提取目标物种的所有位置。此文件应具有regions.csvhotspots.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