全球生物量数据产品(python)

举报
此星光明 发表于 2022/08/24 18:01:51 2022/08/24
【摘要】 ​概述全球生物多样性信息机构(GBIF) 是一个由世界各国政府资助的国际网络和数据基础设施,提供记录物种发生的全球数据。GBIF 目前整合了记录超过 16 亿种物种出现的数据集。GBIF 发生数据集结合了来自广泛来源的数据,包括来自自然历史博物馆的标本相关数据、来自公民科学网络的观察和自动环境调查。虽然这些数据在GBIF.org上不断变化,但会在此处拍摄并提供定期快照。数据以Parquet格...

概述

全球生物多样性信息机构(GBIF) 是一个由世界各国政府资助的国际网络和数据基础设施,提供记录物种发生的全球数据。GBIF 目前整合了记录超过 16 亿种物种出现的数据集。

GBIF 发生数据集结合了来自广泛来源的数据,包括来自自然历史博物馆的标本相关数据、来自公民科学网络的观察和自动环境调查。虽然这些数据在GBIF.org上不断变化,但会在此处拍摄并提供定期快照。

数据以Parquet格式存储;Parquet 文件架构如下所述。大多数字段名称对应于来自达尔文核心标准的术语,并且已经被 GBIF 的系统解释为对齐分类、位置、日期等。可以使用GBIF API检索附加信息。

有关如何在出版物中引用 GBIF 数据的信息,请参阅 GBIF引用指南。对于使用整个数据集的分析,请使用以下引用:

GBIF.org ([Date]) GBIF Occurrence Data [数据集的 DOI]

对于数据被显着过滤的分析,请跟踪使用的 datasetKeys 并使用“派生数据集”记录来引用数据。

GBIF 数据博客包含许多可以帮助您分析 GBIF 数据的文章。


提供者

全球生物多样性信息机构 (生产者、许可者、加工者)微软 (主持人)

空间范围


Map panned east 8515.94 kilometers.

Map style: grayscale_light.

地图快捷方式:缩小:连字符。放大:加。向右平移 100 像素:右箭头。向左平移 100 像素:左箭头。向上平移 100 像素:向上箭头。向下平移 100 像素:向下箭头。顺时针旋转 15 度:shift + 右箭头。逆时针旋转 15 度:shift + 左箭头。将俯仰增加 10 度:shift + 向上箭头。将俯仰角减小 10 度:shift + 向下箭头。将焦点跳转到地图:逃生。


时间范围

2021 年 4 月 13 日 – 至今

项目级资产

数据集项目包含以下资产。

标题

STAC 密钥

角色

类型

存储选项

数据集根
data
数据
镶木地板

帐户名称

ai4edataeuwest

每个表包括以下列。


Columns

Each table includes the following columns.

Name

Description

Type

Gbifid

GBIF’s identifier for the occurrence

Int64

Datasetkey

GBIF’s UUID for the dataset containing this occurrence

Byte_array

Occurrenceid

See dwc:occurrenceID.

Byte_array

Kingdom

See dwc:kingdom. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Phylum

See dwc:phylum. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Class

See dwc:class. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Order

See dwc:order. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Family

See dwc:family. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Genus

See dwc:genus. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Species

See dwc:species. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Infraspecificepithet

See dwc:infraspecificEpithet. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Taxonrank

See dwc:taxonRank. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Scientificname

See dwc:scientificName. This field has been aligned with the GBIF backbone taxonomy.

Byte_array

Verbatimscientificname

The scientific name as provided by the data publisher

Byte_array

Verbatimscientificnameauthorship

The scientific name authorship provided by the data publisher.

Byte_array

Countrycode

See dwc:countryCode. GBIF’s interpretation has set this to an ISO 3166-2 code.

Byte_array

Locality

See dwc:locality.

Byte_array

Stateprovince

See dwc:stateProvince.

Byte_array

Occurrencestatus

See dwc:occurrenceStatus. Either the value PRESENT or ABSENTMany users will wish to filter for PRESENT data.

Byte_array

Individualcount

See dwc:individualCount.

Int32

Publishingorgkey

GBIF’s UUID for the organization publishing this occurrence.

Byte_array

Decimallatitude

See dwc:decimalLatitude. GBIF’s interpretation has normalized this to a WGS84 coordinate.

Double

Decimallongitude

See dwc:decimalLongitude. GBIF’s interpretation has normalized this to a WGS84 coordinate.

Double

Coordinateuncertaintyinmeters

See dwc:coordinateUncertaintyInMeters.

Double

Coordinateprecision

See dwc:coordinatePrecision.

Double

Elevation

See dwc:elevation. If provided by the data publisher, GBIF’s interpretation has normalized this value to metres.

Double

Elevationaccuracy

See dwc:elevationAccuracy. If provided by the data publisher, GBIF’s interpretation has normalized this value to metres.

Double

Depth

See dwc:depth. If provided by the data publisher, GBIF’s interpretation has normalized this value to metres.

Double

Depthaccuracy

See dwc:depthAccuracy. If provided by the data publisher, GBIF’s interpretation has normalized this value to metres.

Double

Eventdate

See dwc:eventDate. GBIF’s interpretation has normalized this value to an ISO 8601 date with a local time.

Byte_array

Day

See dwc:day.

Int32

Month

See dwc:month.

Int32

Year

See dwc:year.

Int32

Taxonkey

The numeric identifier for the taxon in GBIF’s backbone taxonomy corresponding to scientificname.

Int32

Specieskey

The numeric identifier for the taxon in GBIF’s backbone taxonomy corresponding to species.

Int32

Basisofrecord

See dwc:basisOfRecord. One of PRESERVED_SPECIMENFOSSIL_SPECIMENLIVING_SPECIMENOBSERVATIONHUMAN_OBSERVATIONMACHINE_OBSERVATIONMATERIAL_SAMPLELITERATUREUNKNOWN.

Byte_array

Institutioncode

See dwc:institutionCode.

Byte_array

Collectioncode

See dwc:collectionCode.

Byte_array

Catalognumber

See dwc:catalogNumber.

Byte_array

Recordnumber

See dwc:recordNumber.

Byte_array

Identifiedby

See dwc:identifiedBy.

Byte_array

Dateidentified

See dwc:dateIdentified. An ISO 8601 date.

Byte_array

License

See dwc:license. Either CC0_1_0 or CC_BY_4_0CC_BY_NC_4_0 records are not present in this snapshot.

Byte_array

Rightsholder

See dwc:rightsHolder.

Byte_array

Recordedby

See dwc:recordedBy.

Byte_array

Typestatus

See dwc:typeStatus.

Byte_array

Establishmentmeans

See dwc:establishmentMeans.

Byte_array

Lastinterpreted

The ISO 8601 date when the record was last processed by GBIF. Data are reprocessed for several reasons, including changes to the backbone taxonomy, so this date is not necessarily the date the occurrence record last changed.

Byte_array

Mediatype

See dwc:mediaType. May contain StillImageMovingImage or Sound (from enumeration, detailing whether the occurrence has this media available.

Byte_array

Issue

A list of issues encountered by GBIF in processing this record. More details are available on these issues and flags in this blog post.

Byte_array

姓名

描述

类型

歧义
事件的 GBIF 标识符
整数64
数据集键
包含此事件的数据集的GBIF UUID
字节数组
发生事件
请参阅dwc:occurrenceID
字节数组
王国
dwc:kingdom。该字段已与GBIF 主干分类法保持一致。
字节数组
dwc:phylum。该字段已与 GBIF 主干分类法保持一致。
字节数组
班级
dwc:class。该字段已与 GBIF 主干分类法保持一致。
字节数组
命令
dwc:order。该字段已与 GBIF 主干分类法保持一致。
字节数组
家庭
dwc:family。该字段已与 GBIF 主干分类法保持一致。
字节数组
dwc:genus。该字段已与 GBIF 主干分类法保持一致。
字节数组
物种
dwc:species。该字段已与 GBIF 主干分类法保持一致。
字节数组
种下名
dwc:infraspecificEpithet。该字段已与 GBIF 主干分类法保持一致。
字节数组
分类等级
dwc:taxonRank。该字段已与 GBIF 主干分类法保持一致。
字节数组
科学名称
dwc:scientificName。该字段已与 GBIF 主干分类法保持一致。
字节数组
逐字学名
数据发布者提供的学名
字节数组
逐字学名作者身份
数据发布者提供的学名作者身份。
字节数组
国家代码
dwc:countryCode。GBIF 的解释已将此设置为 ISO 3166-2 代码。
字节数组
地方性
请参阅dwc:locality
字节数组
州省
字节数组
发生状态
dwc:occurrenceStatus。值PRESENTABSENT。 许多用户希望过滤PRESENT数据。
字节数组
个人计数
请参阅dwc:individualCount
整数32
Publishingorgkey
发布此事件的组织的 GBIF UUID 。
字节数组
小纬度
dwc:decimalLatitude。GBIF 的解释已将其标准化为 WGS84 坐标。
双倍的
十进位经度
dwc:decimalLongitude。GBIF 的解释已将其标准化为 WGS84 坐标。
双倍的
坐标不确定度计
双倍的
坐标精度
双倍的
海拔
dwc:elevation。如果数据发布者提供,GBIF 的解释已将该值标准化为米。
双倍的
高程精度
请参阅dwc:elevationAccuracy。如果数据发布者提供,GBIF 的解释已将该值标准化为米。
双倍的
深度
dwc:depth。如果数据发布者提供,GBIF 的解释已将该值标准化为米。
双倍的
深度精度
dwc:depthAccuracy。如果数据发布者提供,GBIF 的解释已将该值标准化为米。
双倍的
活动日期
dwc:eventDate。GBIF 的解释已将此值标准化为具有本地时间的 ISO 8601 日期。
字节数组
dwc:day
整数32
dwc:month
整数32
dwc:year
整数32
分类学
GBIF 主干分类法中分类单元的数字标识符,对应于scientificname.
整数32
物种密钥
GBIF 主干分类法中分类单元的数字标识符,对应于species.
整数32
记录基础
dwc:basisOfRecord。, PRESERVED_SPECIMENFOSSIL_SPECIMENLIVING_SPECIMENOBSERVATIONHUMAN_OBSERVATIONMACHINE_OBSERVATIONMATERIAL_SAMPLE,LITERATURE之一UNKNOWN
字节数组
机构代码
字节数组
收藏代码
请参阅dwc:collectionCode
字节数组
目录编号
请参阅dwc:catalogNumber
字节数组
记录编号
字节数组
识别者
字节数组
确定日期
请参阅dwc:dateIdentified。ISO 8601 日期。
字节数组
执照
参见dwc:license。要么CC0_1_0要么CC_BY_4_0。 CC_BY_NC_4_0此快照中不存在记录。
字节数组
权利人
请参阅dwc:rightsHolder
字节数组
记录者
字节数组
类型状态
字节数组
设立手段
字节数组
最后解释
GBIF 上次处理记录的 ISO 8601 日期。重新处理数据的原因有多种,包括主干分类的更改,因此该日期不一定是发生记录最后更改的日期。
字节数组
媒体类型
请参阅dwc:mediaType。可能包含StillImageMovingImageor Sound(from enumeration , 详细说明事件是否有此媒体可用。
字节数组
问题
GBIF 在处理此记录时遇到的问题列表。此博客文章中提供了有关这些问题和标志的更多详细信息。
字节数组

数据集资产

资产

STAC 密钥

描述

角色

内容类型

abfs://items/gbif.parquet
geoparquet-items
导出为 GeoParquet 格式的集合的 STAC 项目的快照。
静态项目
应用程序/x-镶木地板

使用 Planetary Computer STAC API 访问 GBIF 数据 

此笔记本提供了从 Planetary Computer STAC API访问全球生物多样性信息设施(GBIF) 发生数据的示例。数据的定期快照以 Parquet 格式存储。

我们将使用Dask读取分区 Parquet 数据集。

import pystac_client

catalog = pystac_client.Client.open(
    "https://planetarycomputer.microsoft.com/api/stac/v1",
)
search = catalog.search(collections=["gbif"])
items = search.get_all_items()
items = {x.id: x for x in items}
list(items)
['gbif-2021-09-01',
 'gbif-2021-08-01',
 'gbif-2021-07-01',
 'gbif-2021-06-01',
 'gbif-2021-04-13']

我们将采取最新的项目。

item = list(items.values())[0]
item

 <项目id=gbif-2021-09-01>。
像往常一样,你应该在尝试加载数据之前签署该项目。

 

import planetary_computer

signed_asset = planetary_computer.sign(item).assets["data"]
import dask.dataframe as dd

df = dd.read_parquet(
    signed_asset.href,
    storage_options=signed_asset.extra_fields["table:storage_options"],
    dataset={"require_extension": None},
)
df

Dask DataFrame Structure:

gbifid datasetkey occurrenceid kingdom phylum class order family genus species infraspecificepithet taxonrank scientificname verbatimscientificname verbatimscientificnameauthorship countrycode locality stateprovince occurrencestatus individualcount publishingorgkey decimallatitude decimallongitude coordinateuncertaintyinmeters coordinateprecision elevation elevationaccuracy depth depthaccuracy eventdate day month year taxonkey specieskey basisofrecord institutioncode collectioncode catalognumber recordnumber identifiedby dateidentified license rightsholder recordedby typestatus establishmentmeans lastinterpreted mediatype issue
npartitions=1034
int64 object object object object object object object object object object object object object object object object object object int32 object float64 float64 float64 float64 float64 float64 float64 float64 object int32 int32 int32 int32 int32 object object object object object object object object object object object object object object object
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

Dask Name: read-parquet, 1034 tasks

正如npartitions所表明的,这个Parquet数据集是由许多单独的parquet文件组成的。我们可以用.get_partition读入一个特定的partition 

chunk = df.get_partition(0).compute()
chunk
gbifid datasetkey occurrenceid kingdom phylum class order family genus species ... identifiedby dateidentified license rightsholder recordedby typestatus establishmentmeans lastinterpreted mediatype issue
0 321355870 67fb29a4-f762-11e1-a439-00145eb45e9a None Chromista Foraminifera Globothalamea Rotaliida Globigerinidae Globigerina Globigerina bulloides ... None None CC_BY_4_0 None Schiebel, Ralf None None 2021-06-14T23:58:35.923Z [] []
1 321355956 67fb29a4-f762-11e1-a439-00145eb45e9a None Chromista Foraminifera Globothalamea Rotaliida Globorotaliidae Neogloboquadrina Neogloboquadrina pachyderma ... None None CC_BY_4_0 None Schiebel, Ralf None None 2021-06-14T23:58:35.924Z [] []
2 321355949 67fb29a4-f762-11e1-a439-00145eb45e9a None Chromista Foraminifera Globothalamea Rotaliida Globigerinitidae Globigerinita Globigerinita minuta ... None None CC_BY_4_0 None Schiebel, Ralf None None 2021-06-14T23:58:35.926Z [] []
3 321355912 67fb29a4-f762-11e1-a439-00145eb45e9a None Chromista Foraminifera Globothalamea Rotaliida Globigerinitidae Globigerinita Globigerinita glutinata ... None None CC_BY_4_0 None Schiebel, Ralf None None 2021-06-14T23:58:35.927Z [] []
4 321355905 67fb29a4-f762-11e1-a439-00145eb45e9a None Chromista Foraminifera Globothalamea Rotaliida Globigerinidae Globigerina Globigerina falconensis ... None None CC_BY_4_0 None Schiebel, Ralf None None 2021-06-14T23:58:35.928Z [] []
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
1667009 1322591709 821cc27a-e3bb-4bc5-ac34-89ada245069d http://n2t.net/ark:/65665/3ee636308-1443-45be-... Animalia Arthropoda Malacostraca Decapoda Processidae Processa Processa bermudensis ... Mclaughlin, P. None CC0_1_0 None Continental Shelf Associates for BLM/ MMS None None 2021-06-27T10:49:36.284Z [StillImage] [OCCURRENCE_STATUS_INFERRED_FROM_INDIVIDUAL_CO...
1667010 1322595622 821cc27a-e3bb-4bc5-ac34-89ada245069d http://n2t.net/ark:/65665/3ee8fc491-fa05-4edc-... Animalia Chordata Mammalia Rodentia Muridae Hybomys Hybomys univittatus ... None None CC0_1_0 None J. Malcolm None None 2021-06-27T10:50:21.046Z [StillImage] [OCCURRENCE_STATUS_INFERRED_FROM_INDIVIDUAL_CO...
1667011 1322597346 821cc27a-e3bb-4bc5-ac34-89ada245069d http://n2t.net/ark:/65665/3eea331a2-d225-4e88-... Animalia Chordata Amphibia Caudata Plethodontidae Plethodon Plethodon montanus ... None None CC0_1_0 None None None None 2021-06-27T10:49:36.308Z [] [OCCURRENCE_STATUS_INFERRED_FROM_INDIVIDUAL_CO...
1667012 1322605552 821cc27a-e3bb-4bc5-ac34-89ada245069d http://n2t.net/ark:/65665/3eeff553c-637b-4742-... Animalia Chordata Thaliacea Salpida Salpidae Salpa None ... Cole, Linda L., (IZ), Smithsonian Institution ... None CC0_1_0 None Schuyler None None 2021-06-27T10:50:57.439Z [] [OCCURRENCE_STATUS_INFERRED_FROM_INDIVIDUAL_CO...
1667013 1456448120 821cc27a-e3bb-4bc5-ac34-89ada245069d http://n2t.net/ark:/65665/3ef2a984e-e0aa-4544-... Plantae Tracheophyta Magnoliopsida Fabales Fabaceae Swartzia Swartzia polyphylla ... Torke, B. M., (MO) None CC0_1_0 None R. Oldeman None None 2021-06-27T10:49:36.344Z [StillImage] [OCCURRENCE_STATUS_INFERRED_FROM_INDIVIDUAL_CO...

1667014 rows × 50 columns

为了了解最常观察到的物种,我们将对数据集进行分组,并获得每个物种的计数。 

chunk.groupby(["kingdom", "phylum", "class", "family", "genus"])[
    "species"
].value_counts().sort_values(ascending=False).head(15)

 

kingdom   phylum    class           family       genus          species                    
Animalia  Chordata  Aves            Sulidae      Sula           Sula variegata                 143568
                    Actinopterygii  Percidae     Perca          Perca fluviatilis               48700
                                    Cyprinidae   Rutilus        Rutilus rutilus                 39743
                                    Esocidae     Esox           Esox lucius                     37786
                                    Percidae     Gymnocephalus  Gymnocephalus cernua            23030
                                    Cyprinidae   Abramis        Abramis brama                   17225
                                    Lotidae      Lota           Lota lota                       15668
                                    Cyprinidae   Alburnus       Alburnus alburnus               14580
                                    Salmonidae   Coregonus      Coregonus maraena               14381
                                                                Coregonus albula                13104
                    Mammalia        Phocoenidae  Phocoena       Phocoena phocoena               12250
                    Actinopterygii  Osmeridae    Osmerus        Osmerus eperlanus               11782
                                    Salmonidae   Salmo          Salmo trutta                    10384
                                                 Salvelinus     Salvelinus alpinus              10340
                                    Cyprinidae   Scardinius     Scardinius erythrophthalmus      9120
Name: species, dtype: int64

让我们用每个国家的独特物种数量创建一个地图。首先,我们将按国家代码分组,并计算出独特物种的数量 

species_per_country = chunk.groupby("countrycode").species.nunique()
species_per_country
countrycode
AD      6
AE     55
AF     32
AG     51
AI     37
     ... 
YE     19
YT      5
ZA    688
ZM     82
ZW     91
Name: species, Length: 最后,我们可以通过将species_per_country连接到有国家边界的数据集上,用geopandas在地图上绘制计数。243, dtype: int64
import geopandas
import cartopy

countries = geopandas.read_file(
    "https://raw.githubusercontent.com/datasets/geo-countries/master/data/countries.geojson"
)
gdf = geopandas.GeoDataFrame(
    countries.merge(species_per_country, left_on="ISO_A2", right_index=True)
)
crs = cartopy.crs.Robinson()
ax = gdf.to_crs(crs.proj4_init).plot(
    column="species", legend=True, scheme="natural_breaks", k=5, figsize=(15, 15)
)
ax.set_axis_off()

 编辑

 

使用完整的数据集
到目前为止,我们只是使用了整个 GBIF 数据集中的一个分区。本手册中的所有例子都是在整个数据集上使用dask.dataframe来读取Parquet数据集的。

你可能想创建一个集群,在许多机器上并行处理数据。

from dask_gateway import GatewayCluster

cluster = GatewayCluster()
cluster.scale(16)
client = cluster.get_client()
#然后使用dask.dataframe.read_parquet来读入这些文件。为了进一步加快速度,我们将指定一个要读入的文件子集。

df = dd.read_parquet(
    signed_asset.href,
    columns=["countrycode", "species"],
    storage_options=signed_asset.extra_fields["table:storage_options"],
)

现在你可以重复上面的计算,用df代替chunk。

​​往期推荐:

Google Earth Engine(GEE)——Sentinel-2数据你真的用对了吗?

Google Earth Engine(GEE)—— GRIDMET: 爱达荷大学网格化地表气象数据集

Google Earth Engine——全球陆地冰层空间数据的介绍(内含常见错误)

利用GEE-APP(LT-GEE Time Series Animator)快速实现1984-2021年gif动图的下载

Google Earth Engine APP——不写代码实现影像图例添加和全球底图添加

Google Earth Engine APP——不写代码实现影像图例添加和全球底图添加

Google Earth Engine APP——gee-ui geetemp 前端团队组件库

Google Earth Engine——1980-至今全球50米压力、2 米温度、地表压力数据集

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。