Revision 324
Added by Aaron Marcuse-Kubitza about 13 years ago
lib/xml_func.py | ||
---|---|---|
37 | 37 |
items = dict(items) |
38 | 38 |
if 'date' in items: |
39 | 39 |
str_ = items['date'] |
40 |
try: import dateutil.parser |
|
41 |
except ImportError: return str_ |
|
42 |
try: date = dateutil.parser.parse(str_) |
|
43 |
except ValueError, e: raise SyntaxException(e) |
|
40 |
try: year = float(str_) |
|
41 |
except ValueError: |
|
42 |
try: import dateutil.parser |
|
43 |
except ImportError: return str_ |
|
44 |
try: date = dateutil.parser.parse(str_) |
|
45 |
except ValueError, e: raise SyntaxException(e) |
|
46 |
else: date = (datetime.date(int(year), 1, 1) + |
|
47 |
datetime.timedelta(round((year % 1.)*365))) |
|
44 | 48 |
else: |
45 | 49 |
year = items['year'] |
46 | 50 |
month = items.get('month', '1') |
47 | 51 |
day = items.get('day', '1') |
48 | 52 |
try: |
49 |
year = float(year)
|
|
53 |
year = int(year)
|
|
50 | 54 |
month = int(month) |
51 | 55 |
day = int(day) |
52 | 56 |
except ValueError, e: raise SyntaxException(e) |
53 |
date = (datetime.date(int(year), month, day) + |
|
54 |
datetime.timedelta(round((year % 1.)*365))) |
|
57 |
date = datetime.date(year, month, day) |
|
55 | 58 |
return date.strftime('%Y-%m-%d') |
56 | 59 |
|
57 | 60 |
def name(items): |
mappings/SALVIAS-VegX.plots.csv | ||
---|---|---|
39 | 39 |
"plot_methodology","/simpleUserdefined[name=plotMethodology]/value", |
40 | 40 |
"plot_area_ha","/*UniqueIdentifierID->/*s/plot/area","Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed" |
41 | 41 |
"recensused",,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values" |
42 |
"date_start","/obsStartDate/_date/year", |
|
43 |
"date_finish","/obsEndDate/_date/year", |
|
42 |
"date_start","/obsStartDate/_date/date", |
|
43 |
"date_finish","/obsEndDate/_date/date", |
mappings/for_review/SALVIAS-VegX.plots.csv | ||
---|---|---|
39 | 39 |
plot_methodology,/simpleUserdefined[name=plotMethodology]/value, |
40 | 40 |
plot_area_ha,//plot/area,"Brad: Area in hectares. Is there any way to store units?; Aaron: VegX plot area annotation says ""Total area of the plot in square meters."" so units are fixed" |
41 | 41 |
recensused,,"Brad: This is a 0/1 value, internal to SALVIAS. 1 indicates that a plot has >1 set of values, from different census events.; Aaron: Different censuses are distinguished in organisms data by different census_no values" |
42 |
date_start,/obsStartDate/_date/year, |
|
43 |
date_finish,/obsEndDate/_date/year, |
|
42 |
date_start,/obsStartDate/_date/date, |
|
43 |
date_finish,/obsEndDate/_date/date, |
mappings/for_review/SALVIAS-VegBank.plots.csv | ||
---|---|---|
18 | 18 |
precip_mm,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=precipitationMm]]/definedValue", |
19 | 19 |
temp_c,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=temperatureC]]/definedValue", |
20 | 20 |
plot_methodology,/methodNarrative, |
21 |
date_start,/obsStartDate/_date/year, |
|
21 |
date_finish,/obsEndDate/_date/date, |
|
22 |
date_start,/obsStartDate/_date/date, |
|
22 | 23 |
soil_acidity,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]]/definedValue", |
23 | 24 |
soil_base,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]]/definedValue", |
24 | 25 |
soil_Ca,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]]/definedValue", |
mappings/for_review/SALVIAS-VegBIEN.plots.csv | ||
---|---|---|
18 | 18 |
precip_mm,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=precipitationMm]]/definedValue", |
19 | 19 |
temp_c,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=temperatureC]]/definedValue", |
20 | 20 |
plot_methodology,/methodNarrative, |
21 |
date_start,/obsStartDate/_date/year, |
|
21 |
date_finish,/obsEndDate/_date/date, |
|
22 |
date_start,/obsStartDate/_date/date, |
|
22 | 23 |
soil_acidity,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]]/definedValue", |
23 | 24 |
soil_base,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]]/definedValue", |
24 | 25 |
soil_Ca,"//soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]]/definedValue", |
mappings/SALVIAS-VegBank.plots.csv | ||
---|---|---|
18 | 18 |
precip_mm,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=precipitationMm]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
19 | 19 |
temp_c,"/definedValue[*_ID/userDefined[tableName=observation,userDefinedName=temperatureC]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
20 | 20 |
plot_methodology,/methodNarrative, |
21 |
date_start,/obsStartDate/_date/year, |
|
21 |
date_finish,/obsEndDate/_date/date, |
|
22 |
date_start,/obsStartDate/_date/date, |
|
22 | 23 |
soil_acidity,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
23 | 24 |
soil_base,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
24 | 25 |
soil_Ca,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
mappings/SALVIAS-VegBIEN.plots.csv | ||
---|---|---|
18 | 18 |
precip_mm,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=precipitationMm]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
19 | 19 |
temp_c,"/definedValue[*_ID/userDefined[tableName=plotevent,userDefinedName=temperatureC]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
20 | 20 |
plot_methodology,/methodNarrative, |
21 |
date_start,/obsStartDate/_date/year, |
|
21 |
date_finish,/obsEndDate/_date/date, |
|
22 |
date_start,/obsStartDate/_date/date, |
|
22 | 23 |
soil_acidity,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilAcidity]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
23 | 24 |
soil_base,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilBase]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
24 | 25 |
soil_Ca,"/soilObs/definedValue[*_ID/userDefined[tableName=soilObs,userDefinedName=soilCalcium]:[userDefinedType=varchar]]:[@fkey=tableRecord_ID]/definedValue", |
Also available in: Unified diff
xml_func.py: Changed _date func to try parsing date field, rather than year field, as a decimal. Changed SALVIAS mappings to use new _date func syntax. Fixes SALVIAS plots data syntax error for decimal years.