输入模板框架
edam的Python项目详细描述
目录
- 安装
- 测试用例
安装
这个项目运行在python3上。因此,应该安装python3。
对于发出brew install python3
的macos用户,应该可以做到这一点。
上面的命令安装python3(/usr/local/bin/python3
)和pip3(/usr/local/bin/pip3
)。
您可以安装并运行此版本。发布以下内容:
PIP3安装EDAM
以上命令在您的系统中安装edam
。
它们还会在系统的主目录中创建一个.edam文件夹。
所有与EDAM相关的文档都位于此文件夹中。
用户起草的模板和metadat,以及输入的文件都应该放在这个文件夹中。
有关建议的工作流的更多信息,请在此处找到。
测试用例
使用edam
命令分析数据集后,可以发出viewer
命令
一个网络服务在你的电脑上启动。如果未更改settings.yaml
(检查提议的工作流)rel="nofollow">提议的工作流已创建,您可以访问
http://127.0.0.1:5000
并查看数据。
有关edam
命令用法的详细信息,请在终端中发出edam--help
。
AGMIP和APSIM气象数据文件
农业模式互比与改进项目(agmip)使农业模式数据共享成为人们关注的焦点。 在agmip中,各种农业模型(如apsim)被转换为agmip数据方案。
agmip和apsim数据文件使用不同的时间戳组件。 这里的挑战是将它们组合成一个通用的时间戳。 APSIM使用儒略日期和年,而AGMIP时间戳通过年,月,日期组件表示。
另一个挑战与apsim数据文件序言中编码的元数据有关。 具体来说,在时间序列之前,存在站点元数据,例如站点名称、位置和其他。 APSIM数据文件共享相同的结构,因此这些前导码编码的元数据区分不同的站点。
AGMIP数据文件
AGMIP数据集
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM
1980001 1980 1 1 15.0 26.0 12.2 0.0 1.4 4.8 8.6 25
1980002 1980 1 2 6.9 21.2 9.5 0.0 1.6 8.1 10.8 42
1980003 1980 1 3 10.7 22.2 14.7 8.0 1.5 11.9 14.0 52
1980004 1980 1 4 15.6 24.0 10.0 0.0 2.9 9.2 11.7 39
1980005 1980 1 5 16.3 23.9 12.0 0.0 2.7 1.7 6.9 23
1980006 1980 1 6 15.0 23.0 11.8 0.0 2.7 2.8 7.5 26
1980007 1980 1 7 16.5 22.2 11.4 0.0 2.5 -0.5 5.9 22
AGMIP模板
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM
{%for timestamp, srad, tmax, tmin, rain, wind, dewp, vprs, rhum in chunk%}
1980001 {{timestamp.year}} {{timestamp.month}} {{timestamp.day}} {{srad.value}} {{tmax.value}} {{tmin.value}} {{rain.value}} {{wind.value}} {{dewp.value}} {{vprs.value}} {{rhum.value}}
{%endfor%}
agmip元数据
Station:name:Agmipmobile:Falselatitude:23.200longitude:89.330license:Attributiontags:key1:value1key2:value2Observables:-observable_id:tminname:Temperature Minontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#min-observable_id:tmaxname:Temperature Maxontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#max-observable_id:rainname:Rainontology:http://edam.gr#Rain-observable_id:sradname:Solar radiationontology:http://edam.gr#SolarRadiation-observable_id:windname:Windontology:http://edam.gr#WindSpeed-observable_id:rhumname:Humidityontology:http://edam.gr#RelativeHumidity-observable_id:vprsname:Vprsontology:http://edam.gr#VaporPressure-observable_id:dewpname:Dewing pointontology:http://edam.gr#DewingPointUnits of Measurement:-name:Megajoule per square metresymbol:MJ/m^2relevant_observables:srad-name:Kilopascalsymbol:kParelevant_observables:vprs-name:Percentsymbol:\%relevant_observables:rhum-name:Celciussymbol:degCrelevant_observables:tmin, tmax, dewp-name:Millimeterssymbol:mmrelevant_observables:rain-name:kilometers per hoursymbol:km/hrrelevant_observables:wind
分析agmip
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM {%for timestamp, srad, tmax, tmin, rain, wind, dewp, vprs, rhum in chunk%} 1980001 {{timestamp.year}} {{timestamp.month}} {{timestamp.day}} {{srad.value}} {{tmax.value}} {{tmin.value}} {{rain.value}} {{wind.value}} {{dewp.value}} {{vprs.value}} {{rhum.value}} {%endfor%}
agmip元数据
Station:name:Agmipmobile:Falselatitude:23.200longitude:89.330license:Attributiontags:key1:value1key2:value2Observables:-observable_id:tminname:Temperature Minontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#min-observable_id:tmaxname:Temperature Maxontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#max-observable_id:rainname:Rainontology:http://edam.gr#Rain-observable_id:sradname:Solar radiationontology:http://edam.gr#SolarRadiation-observable_id:windname:Windontology:http://edam.gr#WindSpeed-observable_id:rhumname:Humidityontology:http://edam.gr#RelativeHumidity-observable_id:vprsname:Vprsontology:http://edam.gr#VaporPressure-observable_id:dewpname:Dewing pointontology:http://edam.gr#DewingPointUnits of Measurement:-name:Megajoule per square metresymbol:MJ/m^2relevant_observables:srad-name:Kilopascalsymbol:kParelevant_observables:vprs-name:Percentsymbol:\%relevant_observables:rhum-name:Celciussymbol:degCrelevant_observables:tmin, tmax, dewp-name:Millimeterssymbol:mmrelevant_observables:rain-name:kilometers per hoursymbol:km/hrrelevant_observables:wind
分析agmip
大约2秒钟后执行以下命令:
edam——输入agmip.csv——模板agmip.tmpl—元数据agmip.yaml—删除"是"
APSIM站
APSIM数据集
[weather.met.weather] Latitude = 36.68 longitude = 116.98 tav = 14.6 (oC) ! annual average ambient temperature amp = 28.2 (oC) ! annual amplitude in mean monthly temperature !!!! 1/01/1961 to 31/12/2005 day year radn maxt mint rain wind RH 273 2002 17.5 27.2 14.6 0 3.5 54 274 2002 13.6 23.1 14.7 0 5.3 40 275 2002 15.8 27.1 11.1 0 5.5 29 276 2002 15.5 25.8 16.5 0 3.8 39 277 2002 14.9 25.5 14.6 0 2.5 63 278 2002 15.2 23.1 15.2 0 3 47 279 2002 13.4 19.9 10.9 0 3 38 280 2002 15.7 19.3 8.2 0 2.5 47
APSIM模板
[weather.met.weather] Latitude = {{station.latitude}} longitude = {{station.longitude}} tav = {{station.tags.tav}} amp = {{station.tags.amp}} !!!! 1/01/1961 to 31/12/2005 day year radn maxt mint rain wind RH {%for timestamp, radn,maxt,mint,rain,wind,RH in chunk%} {{timestamp.dayofyear}} {{timestamp.year}} {{radn.value}} {{maxt.value}} {{mint.value}} {{rain.value}} {{wind.value}} {{RH.value}} {%endfor%}
APSIM元数据
Station:name:Yuchenglicense:AttributionObservables:-observable_id:mintname:Temperatureontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#min-observable_id:maxtname:Max Temperatureontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#max-observable_id:rainname:Rainontology:http://edam.gr#Rain-observable_id:radnname:Solar radiationontology:http://edam.gr#SolarRadiation-observable_id:windname:Windontology:http://edam.gr#WindSpeed-observable_id:RHname:Relative humidityontology:http://edam.gr#RelativeHumidityUnits of Measurement:-name:Millijoule per square meterssymbol:mJ/m^2relevant_observables:radn-name:Percentsymbol:\%relevant_observables:RH-name:Celciussymbol:degCrelevant_observables:mint, maxt-name:Millimeterssymbol:mmrelevant_observables:rain-name:Meters per secondsymbol:m/srelevant_observables:wind
分析apsim
以下命令在不到1秒的时间内执行:
edam--input yucheng.met--template yucheng.tmpl--metadata yucheng.yaml--drop yes
英国气象局
在公开数据的背景下,英国气象局报告了27个气象站的历史观测结果。
对于每个站点,每月的观测数据都存储在一个文本文档中。
每个月都会有新的观测结果,每个气象站都可以在某个uri上找到。
uri遵循以下模式:
http://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/{station name}data.txt
,其中{station name}替换为实际的站名。
气象局气象站文件中报告的数据点有特殊标记。
这里的挑战是建立标记和属性之间的关系。
这种关系用自然语言表达,在每个文件的序言中都有定义。
例如,"估计数据在值后用*标记"。
这些类型的元数据是必不可少的,因此必须对它们进行分析和存储。
英国气象数据集
Cwmystwyth
Location: 277300E 274900N, Lat 52.358 Lon -3.802, 301 metres amsl
Estimated data is marked with a * after the value.
Missing data (more than 2 days missing in month) is marked by ---.
Sunshine data taken from an automatic Kipp & Zonen sensor marked with a #, otherwise sunshine data taken from a Campbell Stokes recorder.
yyyy mm tmax tmin af rain sun
degC degC days mm hours
1959 1 4.5 -1.9 20 --- 57.2
1959 2 7.3 0.9 15 --- 87.2
1959 3 8.4 3.1 3 --- 81.6
1959 4 10.8 3.7 1 --- 107.4
1959 5 15.8 5.8 1 --- 213.5
1959 6 16.9 8.2 0 --- 209.4
1959 7 18.5 9.5 0 --- 167.8
1959 8 19.0 10.5 0 --- 164.8
1959 9 18.3 5.9 0 --- 196.5
1959 10 14.8 7.9 1 --- 101.1
1959 11 8.8 3.9 3 --- 38.9
1959 12 7.2 2.5 3 --- 19.2
英国气象局模板
{{station.name}}
Location:{{station.location}}, Lat {{station.latitude}} Lon {{station.longitude}}, {{station.tags.altitude}}
Estimated data is marked with a * after the value.
Missing data (more than 2 days missing in month) is marked by ---.
Sunshine data taken from an automatic Kipp & Zonen sensor marked with a #, otherwise sunshine data taken from a Campbell Stokes recorder.
yyyy mm tmax tmin af rain sun
degC degC days mm hours
{%for timestamp, tmax,tmin,af,rain,sun in chunk%}
{{timestamp.year}} {{timestamp.month}} {{tmax.value}} {{tmin.value}} {{af.value}} {{rain.value}} {{sun.value}}
{%endfor%}
英国气象元数据
Station:license:Attributionregion:United Kingdomurl:http://www.metoffice.gov.uk/tags:key1:value1key2:value2Observables:-observable_id:tminname:Temperature minimumontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#min-observable_id:tmaxname:Temperature Maxontology:http://edam.gr#Temperaturequalifiers:http://edam.gr#max-observable_id:rainname:Rainontology:http://edam.gr#Rain-observable_id:afname:Days of air frostontology:http://edam.gr#AirFrostDays-observable_id:sunname:Sunshine durationontology:http://edam.gr#SunShineDurationUnits of Measurement:-name:Dayssymbol:Drelevant_observables:af, sun-name:Celciussymbol:degCrelevant_observables:tmin, tmax-name:Millimeterssymbol:mmrelevant_observables:rain
分析所有英国气象站
以下命令从27个气象站下载并存储数据。
大约9秒钟后执行。
edam--input"http://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/{\$var}data.txt"--template uk.tmpl--metadata uk.yaml--var"阿伯波特、阿尔马、巴利帕特里克、坎伯恩、剑桥、卡迪夫、奇维诺、cwmystwyth、邓斯塔夫纳奇、达勒姆、伊斯特本,eskdalemuir"--删除"是"
澳大利亚气象局(在线)
澳大利亚气象局(bom)提供多个气象站的历史时间序列。
它们涉及每月在html文档中发布的每日观察结果。
它们共享相同的结构和语义,并且可以在线使用。
用户可以通过创建URL来访问时间序列,URL包含有关所请求站点ID和月份/年份的信息。
例如,2017年10月阿德莱德站(5002站id)气象数据的url为:
http://www.bom.gov.au/climate/dwo/201710/text/idcjdw5002201710.csv
人们以bom时间序列的结构来看待管理bom时间序列的挑战。
在大多数其他情况下,对于给定的时间戳,每个数据行对应于一个观测值。
但是,对于相同的每日采样时间戳,每个bom行有两个观测值。
这两个观察是在一天的不同时间进行的。
此采样小时将补充双日观测的每日采样时间戳,编码在数据集的头中。
物料清单数据集
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM
1980001 1980 1 1 15.0 26.0 12.2 0.0 1.4 4.8 8.6 25
1980002 1980 1 2 6.9 21.2 9.5 0.0 1.6 8.1 10.8 42
1980003 1980 1 3 10.7 22.2 14.7 8.0 1.5 11.9 14.0 52
1980004 1980 1 4 15.6 24.0 10.0 0.0 2.9 9.2 11.7 39
1980005 1980 1 5 16.3 23.9 12.0 0.0 2.7 1.7 6.9 23
1980006 1980 1 6 15.0 23.0 11.8 0.0 2.7 2.8 7.5 26
1980007 1980 1 7 16.5 22.2 11.4 0.0 2.5 -0.5 5.9 22
0
物料清单模板
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM
1980001 1980 1 1 15.0 26.0 12.2 0.0 1.4 4.8 8.6 25
1980002 1980 1 2 6.9 21.2 9.5 0.0 1.6 8.1 10.8 42
1980003 1980 1 3 10.7 22.2 14.7 8.0 1.5 11.9 14.0 52
1980004 1980 1 4 15.6 24.0 10.0 0.0 2.9 9.2 11.7 39
1980005 1980 1 5 16.3 23.9 12.0 0.0 2.7 1.7 6.9 23
1980006 1980 1 6 15.0 23.0 11.8 0.0 2.7 2.8 7.5 26
1980007 1980 1 7 16.5 22.2 11.4 0.0 2.5 -0.5 5.9 22
1
物料清单元数据
@DATE YYYY MM DD SRAD TMAX TMIN RAIN WIND DEWP VPRS RHUM
1980001 1980 1 1 15.0 26.0 12.2 0.0 1.4 4.8 8.6 25
1980002 1980 1 2 6.9 21.2 9.5 0.0 1.6 8.1 10.8 42
1980003 1980 1 3 10.7 22.2 14.7 8.0 1.5 11.9 14.0 52
1980004 1980 1 4 15.6 24.0 10.0 0.0 2.9 9.2 11.7 39
1980005 1980 1 5 16.3 23.9 12.0 0.0 2.7 1.7 6.9 23
1980006 1980 1 6 15.0 23.0 11.8 0.0 2.7 2.8 7.5 26
1980007 1980 1 7 16.5 22.2 11.4 0.0 2.5 -0.5 5.9 22
2
分析2017年7月的所有物料清单站
下面的命令将生成574个站点的url,下载并存储它们。
最终有478个车站。
这个命令需要一些时间来执行(大约。5分钟)。
edam--input"http://www.bom.gov.au/climate/dwo/201707/text/idcjdw{2-8}0{01-82}.201707.csv"--template bom.tmpl--metadata bom.yaml--drop yes
EDAM模板语言
元数据文件
在元数据文件中,您可以定义可观测值、站点和传感器
可观测的可以具有以下属性:
- 名称(如风)
- 单位(如km/h方向)
<观察>Le_id(如风)。这对应于可以在.tmpl中使用的名称< > >模板
在模板中,可以在占位符({{})中仅使用元数据文件中定义的模板id。
模板id可以具有某些属性。
这些是:
- 值(例如
{{wind.value}
) - 时间戳。如果表(csv)有一个专用列,表示特定可观测值的时间戳
,则定义为{{wind.timestamp.time}
(如果是hh:mm格式的话)。
http://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/{station name}data.txt
,其中{station name}替换为实际的站名。edam--input"http://www.metoffice.gov.uk/pub/data/weather/uk/climate/stationdata/{\$var}data.txt"--template uk.tmpl--metadata uk.yaml--var"阿伯波特、阿尔马、巴利帕特里克、坎伯恩、剑桥、卡迪夫、奇维诺、cwmystwyth、邓斯塔夫纳奇、达勒姆、伊斯特本,eskdalemuir"--删除"是"
http://www.bom.gov.au/climate/dwo/201710/text/idcjdw5002201710.csv
这个命令需要一些时间来执行(大约。5分钟)。
edam--input"http://www.bom.gov.au/climate/dwo/201707/text/idcjdw{2-8}0{01-82}.201707.csv"--template bom.tmpl--metadata bom.yaml--drop yes
模板
在模板中,可以在占位符({{})中仅使用元数据文件中定义的模板id。
模板id可以具有某些属性。 这些是:
- 值(例如
{{wind.value}
) - 时间戳。如果表(csv)有一个专用列,表示特定可观测值的时间戳
{相同的时间戳(windm spd.timestamp.time,windm dir.timestamp.time)}
如果一列的时间戳对应于每行中的所有可观测值,则用户将使用{{timestamp.}