Project

General

Profile

« Previous | Next » 

Revision 11749

inputs/CVS/: switched to new-style import, using the steps at http://wiki.vegpath.org/Adding_new-style_import_to_a_datasource

View differences:

inputs/CVS/stemCount_/postprocess.sql
1 1
SELECT util.search_path_append('util');
2 2

  
3
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'__parent'||$$ ON $$||:table_str||$$ ("taxonObservation_ID")$$); -- runtime: 3 s ("3003.022 ms") @starscream
3
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'__parent'||$$ ON $$||:table_str||$$ ("taxonOccurrenceID")$$); -- runtime: 3 s ("3003.022 ms") @starscream
4 4

  
5 5

  
6 6
SELECT mk_derived_col((:table_str, 'aggregateOrganismObservationID'),
7
$$_join("taxonImportance_ID"::text, "STEMCOUNT_ID"::text)$$)
7
$$_join("aggregateOrganismObservationID__taxon_presence"::text, "aggregateOrganismObservationID__individual_count"::text)$$)
8 8
; -- runtime: 25 s ("26272.523 ms") @starscream
9 9

  
10 10

  
inputs/CVS/stemCount_/run
1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../table.run
0 3

  
inputs/CVS/stemCount_/map.csv
32 32
stemCount_entry_treeLineID,*stemCount_entry_treeLineID,,
33 33
entry_recordCount,*entry_recordCount,,
34 34
entry_sortOrder,*entry_sortOrder,,
35
aggregateOrganismObservationID,aggregateOrganismObservationID,,
inputs/CVS/stemCount_/test.xml.ref
11 11
                            <locationevent fkey="parent_id">
12 12
                                <taxonoccurrence>
13 13
                                    <aggregateoccurrence>
14
                                        <count>$stemCount</count>
15
                                        <cover_fraction><_percent_to_fraction><value>$cover</value></_percent_to_fraction></cover_fraction>
14
                                        <count>$individualCount</count>
15
                                        <cover_fraction><_percent_to_fraction><value>$coverPercent</value></_percent_to_fraction></cover_fraction>
16 16
                                        <plantobservation>
17 17
                                            <stemobservation>
18
                                                <diameterbreastheight_m><_cm_to_m><value>$stemDiameter</value></_cm_to_m></diameterbreastheight_m>
19
                                                <height_m>$stemHeight</height_m>
18
                                                <diameterbreastheight_m><_cm_to_m><value>$diameterBreastHeight_cm</value></_cm_to_m></diameterbreastheight_m>
19
                                                <height_m>$height_m</height_m>
20 20
                                            </stemobservation>
21 21
                                        </plantobservation>
22 22
                                        <sourceaccessioncode>$aggregateOrganismObservationID</sourceaccessioncode>
23 23
                                    </aggregateoccurrence>
24
                                    <sourceaccessioncode>$taxonObservation_ID</sourceaccessioncode>
24
                                    <sourceaccessioncode>$taxonOccurrenceID</sourceaccessioncode>
25 25
                                </taxonoccurrence>
26 26
                            </locationevent>
27 27
                        </locationevent>
inputs/CVS/stemCount_/VegBIEN.csv
1
CVS,VegBIEN:/_setDefault:[source_id/source/shortname/_env:[name=source]]/path/_simplifyPath:[next=parent_id]/path,Comments
2
taxonObservation_ID,"/location/iscultivated/_or/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
3
stemCount,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/count,
4
cover,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/cover_fraction/_percent_to_fraction/value,
5
stemDiameter,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/diameterbreastheight_m/_cm_to_m/value,
6
stemHeight,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/height_m,
7
aggregateOrganismObservationID,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/sourceaccessioncode,
8
taxonObservation_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/iscultivated/_alt/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
9
taxonObservation_ID,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/sourceaccessioncode/_first/1,
10
aggregateOrganismObservationID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/sourceaccessioncode/_first/2/_if[@name=""if organism in AggregateOccurrence""]/cond/_exists",
11
taxonObservation_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/_if[@name=""if has taxondetermination""]/cond/_exists",
12
STEMCOUNT_ID,,** No join mapping for aggregateOrganismObservationID__individual_count ** 
13
basalArea,,** No join mapping for *basalarea ** 
14
biomass,,** No join mapping for *biomass ** 
15
cust_cvs_StemFrequency,,** No join mapping for *cust_cvs_StemFrequency ** 
16
cust_cvs_corner1Presence,,** No join mapping for *cust_cvs_corner1Presence ** 
17
cust_cvs_corner2Presence,,** No join mapping for *cust_cvs_corner2Presence ** 
18
cust_cvs_corner3Presence,,** No join mapping for *cust_cvs_corner3Presence ** 
19
cust_cvs_corner4Presence,,** No join mapping for *cust_cvs_corner4Presence ** 
20
cust_cvs_corner5Presence,,** No join mapping for *cust_cvs_corner5Presence ** 
21
cust_cvs_ddh,,** No join mapping for *cust_cvs_ddh ** 
22
cust_cvs_ddhAccuracy,,** No join mapping for *cust_cvs_ddhAccuracy ** 
23
cust_cvs_isPlanted,,** No join mapping for *cust_cvs_isPlanted ** 
24
cust_cvs_originalCoverCode,,** No join mapping for *cust_cvs_originalCoverCode ** 
25
cust_cvs_subsamplingFactor,,** No join mapping for *cust_cvs_subsamplingFactor ** 
26
entry_recordCount,,** No join mapping for *entry_recordCount ** 
27
entry_sortOrder,,** No join mapping for *entry_sortOrder ** 
28
inferenceArea,,** No join mapping for *inferencearea ** 
29
stemCount_dba_src_ID,,** No join mapping for *stemCount_dba_src_ID ** 
30
stemCount_entry_herbLineID,,** No join mapping for *stemCount_entry_herbLineID ** 
31
stemCount_entry_treeLineID,,** No join mapping for *stemCount_entry_treeLineID ** 
32
stemDiameterAccuracy,,** No join mapping for *stemdiameteraccuracy ** 
33
stemHeightAccuracy,,** No join mapping for *stemheightaccuracy ** 
34
stemTaxonArea,,** No join mapping for *stemtaxonarea ** 
35
stratum_ID,,** No join mapping for *stratum_id ** 
36
taxonImportance_ID,,** No join mapping for aggregateOrganismObservationID__taxon_presence ** 
37
taxonImportance_dba_src_ID,,** No join mapping for *taxonImportance_dba_src_ID ** 
38
taxonImportance_entry_herbLineID,,** No join mapping for *taxonImportance_entry_herbLineID ** 
39
taxonImportance_entry_treeLineID,,** No join mapping for *taxonImportance_entry_treeLineID ** 
1
link ../../../mappings/VegCore-VegBIEN.csv
40 2

  
inputs/CVS/plantConcept_/postprocess.sql
1 1
SELECT util.search_path_append('util');
2 2

  
3
SELECT util.rename_cols(:table_str, $$
4
genus => *genus,
5
$$::hstore);
3
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("*PLANTCONCEPT_ID")$$); -- runtime: ~0 @starscream
6 4

  
7
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("PLANTCONCEPT_ID")$$); -- runtime: ~0 @starscream
8 5

  
9

  
10 6
SELECT mk_derived_col((:table_str, 'division'),
11
$$_alt(denorm_division, "Division")$$)
7
$$_alt(division_main, division_normalized)$$)
12 8
; -- runtime: 0.2 s ("212.478 ms") @starscream
13 9

  
14 10
SELECT mk_derived_col((:table_str, 'genus'),
15
$$_alt(denorm_genus, "*genus")$$)
11
$$_alt(genus_main, genus_normalized)$$)
16 12
; -- runtime: 0.1 s ("127.546 ms") @starscream
inputs/CVS/plantConcept_/run
1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../table.run
0 3

  
inputs/CVS/plantConcept_/map.csv
52 52
subspecies,EQUIV#to:species#subspecies,,full taxonomic name at that rank
53 53
composite variety,EQUIV#to:species#composite variety,,full taxonomic name at that rank
54 54
variety,EQUIV#to:species#variety,,full taxonomic name at that rank
55
division,division,,
56
genus,genus,,
inputs/CVS/plantConcept_/test.xml.ref
17 17
                                                    <taxonlabel>
18 18
                                                        <parent_id>
19 19
                                                            <taxonlabel>
20
                                                                <rank>$taxonLevel</rank>
20
                                                                <rank>$taxonRank</rank>
21 21
                                                                <parent_id>
22 22
                                                                    <taxonlabel>
23 23
                                                                        <rank>cultivar</rank>
......
33 33
                                                                                                <parent_id>
34 34
                                                                                                    <taxonlabel>
35 35
                                                                                                        <rank>species</rank>
36
                                                                                                        <taxonepithet>$denorm_species</taxonepithet>
36
                                                                                                        <taxonepithet>$specificEpithet</taxonepithet>
37 37
                                                                                                        <parent_id>
38 38
                                                                                                            <taxonlabel>
39 39
                                                                                                                <rank>genus</rank>
......
41 41
                                                                                                                <parent_id>
42 42
                                                                                                                    <taxonlabel>
43 43
                                                                                                                        <rank>family</rank>
44
                                                                                                                        <taxonepithet>$denorm_family</taxonepithet>
44
                                                                                                                        <taxonepithet>$family</taxonepithet>
45 45
                                                                                                                        <parent_id>
46 46
                                                                                                                            <taxonlabel>
47 47
                                                                                                                                <rank>order</rank>
48
                                                                                                                                <taxonepithet>$Order</taxonepithet>
48
                                                                                                                                <taxonepithet>$order</taxonepithet>
49 49
                                                                                                                                <parent_id>
50 50
                                                                                                                                    <taxonlabel>
51 51
                                                                                                                                        <rank>class</rank>
52
                                                                                                                                        <taxonepithet>$Class</taxonepithet>
52
                                                                                                                                        <taxonepithet>$class</taxonepithet>
53 53
                                                                                                                                        <parent_id>
54 54
                                                                                                                                            <taxonlabel>
55 55
                                                                                                                                                <rank>phylum</rank>
56 56
                                                                                                                                                <parent_id>
57 57
                                                                                                                                                    <taxonlabel>
58 58
                                                                                                                                                        <rank>kingdom</rank>
59
                                                                                                                                                        <taxonepithet>$denorm_kingdom</taxonepithet>
59
                                                                                                                                                        <taxonepithet>$kingdom</taxonepithet>
60 60
                                                                                                                                                    </taxonlabel>
61 61
                                                                                                                                                </parent_id>
62 62
                                                                                                                                            </taxonlabel>
......
79 79
                                                                        </parent_id>
80 80
                                                                    </taxonlabel>
81 81
                                                                </parent_id>
82
                                                                <taxonepithet>$denorm_triName</taxonepithet>
82
                                                                <taxonepithet>$infraspecificEpithet</taxonepithet>
83 83
                                                            </taxonlabel>
84 84
                                                        </parent_id>
85
                                                        <rank>$taxonLevel</rank>
85
                                                        <rank>$taxonRank</rank>
86 86
                                                        <taxonomicname>
87 87
                                                            <_merge_prefix>
88
                                                                <prefix><_taxon_family_require_std><family>$denorm_family</family></_taxon_family_require_std></prefix>
88
                                                                <prefix><_taxon_family_require_std><family>$family</family></_taxon_family_require_std></prefix>
89 89
                                                                <value>
90 90
                                                                    <_alt>
91
                                                                        <1>$plantNameWithAuthority</1>
91
                                                                        <1>$scientificName</1>
92 92
                                                                        <2>
93 93
                                                                            <_alt>
94
                                                                                <1>$plantname</1>
94
                                                                                <1>$taxonName</1>
95 95
                                                                                <2>
96 96
                                                                                    <_join_words>
97 97
                                                                                        <2><_filter_genus><value>$genus</value></_filter_genus></2>
98
                                                                                        <3>$denorm_species</3>
98
                                                                                        <3>$specificEpithet</3>
99 99
                                                                                        <5>
100 100
                                                                                            <_join_words>
101 101
                                                                                                <1>
102 102
                                                                                                    <_if name="if has infraspecificEpithet">
103
                                                                                                        <cond>$denorm_triName</cond>
104
                                                                                                        <then>$taxonLevel</then>
103
                                                                                                        <cond>$infraspecificEpithet</cond>
104
                                                                                                        <then>$taxonRank</then>
105 105
                                                                                                    </_if>
106 106
                                                                                                </1>
107
                                                                                                <2>$denorm_triName</2>
107
                                                                                                <2>$infraspecificEpithet</2>
108 108
                                                                                            </_join_words>
109 109
                                                                                        </5>
110 110
                                                                                    </_join_words>
......
117 117
                                                        </taxonomicname>
118 118
                                                    </taxonlabel>
119 119
                                                </taxonlabel_id>
120
                                                <family>$denorm_family</family>
120
                                                <family>$family</family>
121 121
                                                <genus>$genus</genus>
122
                                                <specific_epithet>$denorm_species</specific_epithet>
123
                                                <taxonname>$plantname</taxonname>
124
                                                <taxonomicname>$plantNameWithAuthority</taxonomicname>
125
                                                <verbatimrank>$taxonLevel</verbatimrank>
122
                                                <specific_epithet>$specificEpithet</specific_epithet>
123
                                                <taxonname>$taxonName</taxonname>
124
                                                <taxonomicname>$scientificName</taxonomicname>
125
                                                <verbatimrank>$taxonRank</verbatimrank>
126 126
                                            </taxonverbatim>
127 127
                                        </taxonverbatim_id>
128 128
                                    </taxondetermination>
inputs/CVS/plantConcept_/VegBIEN.csv
1
CVS,VegBIEN:/_setDefault:[source_id/source/shortname/_env:[name=source]]/path/_simplifyPath:[next=parent_id]/path,Comments
2
plantNameWithAuthority,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/3/_first/2",
3
plantname,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/3/_first/3",
4
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/_if[@name=""if has explicit parent""]/else/rank",
5
denorm_species,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=species]/taxonepithet","unlike VegBank, this is in fact the epithet, not the full name"
6
genus,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=genus]/taxonepithet",
7
denorm_family,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=family]/taxonepithet",
8
Order,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=order]/taxonepithet",
9
Class,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=class]/taxonepithet",
10
denorm_kingdom,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,class,phylum,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=kingdom]/taxonepithet",
11
denorm_triName,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/taxonepithet,
12
taxonLevel,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/rank,
13
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonepithet/_if[@name=""if taxonomic name is epithet""]/cond/_alt:[2=true]/1/_taxonomic_name_is_epithet/rank",
14
denorm_family,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/prefix/_taxon_family_require_std/family,
15
plantNameWithAuthority,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/1,
16
plantname,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/1,
17
genus,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/2/_filter_genus/value,
18
denorm_species,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/3/_join_words/1,"unlike VegBank, this is in fact the epithet, not the full name"
19
denorm_triName,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/1/_if[@name=""if has infraspecificEpithet""]/cond",
20
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/1/_if[@name=""if has infraspecificEpithet""]/then",
21
denorm_triName,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/2,
22
denorm_family,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/family,
23
genus,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/genus,
24
denorm_species,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/specific_epithet,"unlike VegBank, this is in fact the epithet, not the full name"
25
plantname,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/taxonname,
26
plantNameWithAuthority,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/taxonomicname,
27
taxonLevel,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/verbatimrank,
28
Division,,** No join mapping for division_normalized ** 
29
Kingdom,,** No non-empty join mapping for DUPLICATE#of:denorm_kingdom#Kingdom ** 
30
PLANTCONCEPT_ID,,** No join mapping for *PLANTCONCEPT_ID ** 
31
PLANTNAME_ID,,** No join mapping for *PLANTNAME_ID ** 
32
Subclass,,** No join mapping for *Subclass ** 
33
Subkingdom,,** No join mapping for *Subkingdom ** 
34
USDAPlantsCode,,** No join mapping for *USDAPlantsCode ** 
35
VascularPlant,,** No join mapping for *VascularPlant ** 
36
commonName,,** No join mapping for vernacularName ** 
37
composite family,,** No join mapping for *composite family ** 
38
composite genus,,** No join mapping for *composite genus ** 
39
composite species,,** No join mapping for *composite species ** 
40
composite variety,,** No non-empty join mapping for EQUIV#to:species#composite variety ** full taxonomic name at that rank
41
denorm_category,,** No join mapping for *category ** 
42
denorm_division,,"** No join mapping for division_main ** must be _alt-ed with Division because this is missing in 2 rows that have Division, and different from Division in 1 row"
43
denorm_genus,,** No join mapping for genus_main ** must be _alt-ed with genus because this is missing in 1 row that has genus
44
denorm_hybridX,,** No join mapping for *hybridX ** 
45
denorm_quadAbbr,,** No join mapping for infraspecificRank2 ** sometimes misparsed as the last + sign in the plantNameWithAuthority
46
denorm_quadName,,** No join mapping for infraspecificEpithet2 ** sometimes misparsed as the part after the last + sign in the plantNameWithAuthority
47
denorm_triAbbr,,** No join mapping for infraspecificRank ** 
48
division,,** No join mapping for division ** 
49
exotic,,** No join mapping for *exotic ** 
50
family,,** No non-empty join mapping for DUPLICATE#of:denorm_family#family ** 
51
genus,,"** No join mapping for genus_normalized ** unlike VegBank, does *not* include genus author"
52
growthForm_short,,** No join mapping for *growthForm_short ** 
53
lowestChildRank,,** No join mapping for *lowestChildRank ** 
54
lowestParentConcept_ID,,** No join mapping for *lowestParentConcept_ID ** 
55
lowestParentName,,** No join mapping for *lowestParentName ** 
56
plantCode,,** No join mapping for *plantCode ** 
57
plantConcept_accessionCode,,** No join mapping for *plantConcept_accessionCode ** 
58
plantConcept_dba_src_ID,,** No join mapping for *plantConcept_dba_src_ID ** 
59
plantConcept_entry_sppID,,** No join mapping for *plantConcept_entry_sppID ** 
60
plantConcept_reference_ID,,** No join mapping for *plantConcept_reference_ID ** 
61
plantDescription,,** No join mapping for *plantDescription ** 
62
section,,** No join mapping for *section ** 
63
sensitiveSpeciesFuzzPlot,,** No join mapping for *sensitiveSpeciesFuzzPlot ** 
64
species,,** No join mapping for speciesBinomial ** full taxonomic name at that rank
65
subgenus,,** No join mapping for subgenus ** 
66
subspecies,,** No non-empty join mapping for EQUIV#to:species#subspecies ** full taxonomic name at that rank
67
taxonRank,,** No non-empty join mapping for OMIT#taxonRank ** Omitted because taxonLevel contains this information in text form
68
tribe,,** No join mapping for *tribe ** 
69
usda_code,,** No join mapping for *usda_code ** 
70
usda_growthForm,,** No join mapping for *usda_growthForm ** 
71
variety,,** No non-empty join mapping for EQUIV#to:species#variety ** full taxonomic name at that rank
72
woody,,** No join mapping for *woody ** 
1
link ../../../mappings/VegCore-VegBIEN.csv
73 2

  
inputs/CVS/plantConcept_/new_terms.csv
12 12
denorm_quadName,infraspecificEpithet2,,sometimes misparsed as the part after the last + sign in the plantNameWithAuthority
13 13
denorm_hybridX,*hybridX,,
14 14
taxonLevel,taxonRank,,
15
Division,division_normalized,,
15 16
composite variety,EQUIV#to:species#composite variety,,full taxonomic name at that rank
inputs/CVS/plantConcept_/unmapped_terms.csv
36 36
*section
37 37
*composite species
38 38
speciesBinomial
39
division
inputs/CVS/observation_/postprocess.sql
1 1
SELECT util.search_path_append('util');
2 2

  
3
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("OBSERVATION_ID")$$); -- runtime: ~0 @starscream
3
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("eventID")$$); -- runtime: ~0 @starscream
4 4

  
5
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'_parent'||$$ ON $$||:table_str||$$ ("PLOT_ID")$$); -- runtime: ~0 @starscream
5
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'_parent'||$$ ON $$||:table_str||$$ ("locationID")$$); -- runtime: ~0 @starscream
inputs/CVS/observation_/run
1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../table.run
0 3

  
inputs/CVS/observation_/test.xml.ref
7 7
                <next>parent_id</next>
8 8
                <path>
9 9
                    <location>
10
                        <sourceaccessioncode>$PLOT_ID</sourceaccessioncode>
10
                        <sourceaccessioncode>$locationID</sourceaccessioncode>
11 11
                        <locationevent>
12
                            <method_id><method><name>$methodNarrative</name></method></method_id>
13
                            <project_id><project><sourceaccessioncode>$PROJECT_ID</sourceaccessioncode></project></project_id>
14
                            <authoreventcode>$authorObsCode</authoreventcode>
15
                            <sourceaccessioncode>$OBSERVATION_ID</sourceaccessioncode>
16
                            <locationevent fkey="parent_id"><sourceaccessioncode>$OBSERVATION_ID</sourceaccessioncode></locationevent>
17
                            <obsenddate>$obsEndDate</obsenddate>
18
                            <obsstartdate>$obsStartDate</obsstartdate>
12
                            <method_id><method><name>$samplingProtocol</name></method></method_id>
13
                            <project_id><project><sourceaccessioncode>$projectID</sourceaccessioncode></project></project_id>
14
                            <authoreventcode>$authorEventCode</authoreventcode>
15
                            <sourceaccessioncode>$eventID</sourceaccessioncode>
16
                            <locationevent fkey="parent_id"><sourceaccessioncode>$eventID</sourceaccessioncode></locationevent>
17
                            <obsenddate>$endDate</obsenddate>
18
                            <obsstartdate>$startDate</obsstartdate>
19 19
                            <soilsample>
20
                                <basesaturation_fraction><_percent_to_fraction><value>$baseSaturation</value></_percent_to_fraction></basesaturation_fraction>
21
                                <cationexchangecapacity_cmol_kg>$exchangeCapacity</cationexchangecapacity_cmol_kg>
22
                                <clay_fraction><_percent_to_fraction><value>$soilClay</value></_percent_to_fraction></clay_fraction>
23
                                <organic_fraction><_percent_to_fraction><value>$soilOrganic</value></_percent_to_fraction></organic_fraction>
24
                                <ph>$soilPH</ph>
25
                                <sand_fraction><_percent_to_fraction><value>$soilSand</value></_percent_to_fraction></sand_fraction>
26
                                <silt_fraction><_percent_to_fraction><value>$soilSilt</value></_percent_to_fraction></silt_fraction>
27
                                <texture>$soilTexture</texture>
20
                                <basesaturation_fraction><_percent_to_fraction><value>$baseSaturation_percent</value></_percent_to_fraction></basesaturation_fraction>
21
                                <cationexchangecapacity_cmol_kg>$cationExchangeCapacity_cmol_kg</cationexchangecapacity_cmol_kg>
22
                                <clay_fraction><_percent_to_fraction><value>$clay_percent</value></_percent_to_fraction></clay_fraction>
23
                                <organic_fraction><_percent_to_fraction><value>$organic_percent</value></_percent_to_fraction></organic_fraction>
24
                                <ph>$ph</ph>
25
                                <sand_fraction><_percent_to_fraction><value>$sand_percent</value></_percent_to_fraction></sand_fraction>
26
                                <silt_fraction><_percent_to_fraction><value>$silt_percent</value></_percent_to_fraction></silt_fraction>
27
                                <texture>$texture</texture>
28 28
                            </soilsample>
29 29
                        </locationevent>
30 30
                    </location>
inputs/CVS/observation_/VegBIEN.csv
1
CVS,VegBIEN:/_setDefault:[source_id/source/shortname/_env:[name=source]]/path/_simplifyPath:[next=parent_id]/path,Comments
2
PLOT_ID,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/2/_if[@name=""if locationID""]/cond/_exists",
3
authorObsCode,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/2/_if[@name=""if locationID""]/else",
4
PLOT_ID,"/location/_if[@name=""if subplot""]/else/sourceaccessioncode",
5
PLOT_ID,"/location/_if[@name=""if subplot""]/then/parent_id/location/sourceaccessioncode",
6
methodNarrative,/location/locationevent/*_id/method/name,
7
PROJECT_ID,/location/locationevent/*_id/project/sourceaccessioncode,
8
authorObsCode,"/location/locationevent/_if[@name=""if subplot""]/else/authoreventcode",
9
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/else/sourceaccessioncode",
10
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/cond/_exists",
11
authorObsCode,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/cond/_exists",
12
obsEndDate,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/cond/_exists",
13
obsStartDate,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/cond/_exists",
14
PLOT_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode/_if[@name=""if subplot""]/then",
15
authorObsCode,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/authoreventcode",
16
obsEndDate,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/obsenddate/_alt/1",
17
obsStartDate,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/obsstartdate/_alt/1",
18
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/sourceaccessioncode",
19
OBSERVATION_ID,/location/locationevent/locationevent:[@fkey=parent_id]/sourceaccessioncode,
20
OBSERVATION_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
21
PLOT_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
22
authorObsCode,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
23
obsEndDate,/location/locationevent/obsenddate/_alt/1,
24
obsStartDate,/location/locationevent/obsstartdate/_alt/1,
25
baseSaturation,/location/locationevent/soilsample/basesaturation_fraction/_percent_to_fraction/value,
26
exchangeCapacity,/location/locationevent/soilsample/cationexchangecapacity_cmol_kg,
27
soilClay,/location/locationevent/soilsample/clay_fraction/_percent_to_fraction/value,
28
soilOrganic,/location/locationevent/soilsample/organic_fraction/_percent_to_fraction/value,
29
soilPH,/location/locationevent/soilsample/ph,
30
soilSand,/location/locationevent/soilsample/sand_fraction/_percent_to_fraction/value,
31
soilSilt,/location/locationevent/soilsample/silt_fraction/_percent_to_fraction/value,
32
soilTexture,/location/locationevent/soilsample/texture,
33
PLOT_ID,"/location/sourceaccessioncode/_first/2/_if[@name=""if locationID""]/cond/_exists",
34
PLOT_ID,"/location/sourceaccessioncode/_first/2/_if[@name=""if locationID""]/then/_if[@name=""if subplot""]/then/_join/1",
35
COVERMETHOD_ID,,** No join mapping for *COVERMETHOD_ID ** 
36
PREVIOUSOBS_ID,,** No join mapping for *PREVIOUSOBS_ID ** 
37
SOILOBS_ID,,** No join mapping for *SOILOBS_ID ** 
38
SOILTAXON_ID,,** No join mapping for *SOILTAXON_ID ** 
39
STRATUMMETHOD_ID,,** No join mapping for *STRATUMMETHOD_ID ** 
40
accessionCode,,** No join mapping for *accessionCode ** 
41
autoTaxonCover,,** No join mapping for *autoTaxonCover ** 
42
basalArea,,** No join mapping for *basalArea ** 
43
bryophyteQuality,,** No join mapping for *bryophyteQuality ** 
44
coverDispersion,,** No join mapping for *coverDispersion ** 
45
cust_cvs_Al_ppm,,** No join mapping for *cust_cvs_Al_ppm ** 
46
cust_cvs_B_ppm,,** No join mapping for *cust_cvs_B_ppm ** 
47
cust_cvs_Ca_over_Mg_ppm,,** No join mapping for *cust_cvs_Ca_over_Mg_ppm ** 
48
cust_cvs_Ca_ppm,,** No join mapping for *cust_cvs_Ca_ppm ** 
49
cust_cvs_CanopyHeight,,** No join mapping for *cust_cvs_CanopyHeight ** 
50
cust_cvs_CowardinSystem,,** No join mapping for *cust_cvs_CowardinSystem ** 
51
cust_cvs_Cu_ppm,,** No join mapping for *cust_cvs_Cu_ppm ** 
52
cust_cvs_Density,,** No join mapping for *cust_cvs_Density ** 
53
cust_cvs_Fe_ppm,,** No join mapping for *cust_cvs_Fe_ppm ** 
54
cust_cvs_GPSLocationX,,** No join mapping for *cust_cvs_GPSLocationX ** 
55
cust_cvs_GPSLocationY,,** No join mapping for *cust_cvs_GPSLocationY ** 
56
cust_cvs_K_ppm,,** No join mapping for *cust_cvs_K_ppm ** 
57
cust_cvs_Lab,,** No join mapping for *cust_cvs_Lab ** 
58
cust_cvs_LeafPhenology,,** No join mapping for *cust_cvs_LeafPhenology ** 
59
cust_cvs_LeafType,,** No join mapping for *cust_cvs_LeafType ** 
60
cust_cvs_LocationSource,,** No join mapping for *cust_cvs_LocationSource ** 
61
cust_cvs_Mg_ppm,,** No join mapping for *cust_cvs_Mg_ppm ** 
62
cust_cvs_Mn_ppm,,** No join mapping for *cust_cvs_Mn_ppm ** 
63
cust_cvs_N,,** No join mapping for *cust_cvs_N ** 
64
cust_cvs_Na_ppm,,** No join mapping for *cust_cvs_Na_ppm ** 
65
cust_cvs_Ownership,,** No join mapping for *cust_cvs_Ownership ** 
66
cust_cvs_P,,** No join mapping for *cust_cvs_P ** 
67
cust_cvs_S,,** No join mapping for *cust_cvs_S ** 
68
cust_cvs_Zn_ppm,,** No join mapping for *cust_cvs_Zn_ppm ** 
69
cust_cvs_collectionName,,** No join mapping for *cust_cvs_collectionName ** 
70
cust_cvs_compassType,,** No join mapping for *cust_cvs_compassType ** 
71
cust_cvs_lengthSoilProbe,,** No join mapping for *cust_cvs_lengthSoilProbe ** 
72
cust_cvs_mcnab_LFI,,** No join mapping for *cust_cvs_mcnab_LFI ** 
73
cust_cvs_mcnab_LFI_135,,** No join mapping for *cust_cvs_mcnab_LFI_135 ** 
74
cust_cvs_mcnab_LFI_180,,** No join mapping for *cust_cvs_mcnab_LFI_180 ** 
75
cust_cvs_mcnab_LFI_225,,** No join mapping for *cust_cvs_mcnab_LFI_225 ** 
76
cust_cvs_mcnab_LFI_270,,** No join mapping for *cust_cvs_mcnab_LFI_270 ** 
77
cust_cvs_mcnab_LFI_315,,** No join mapping for *cust_cvs_mcnab_LFI_315 ** 
78
cust_cvs_mcnab_LFI_45,,** No join mapping for *cust_cvs_mcnab_LFI_45 ** 
79
cust_cvs_mcnab_LFI_90,,** No join mapping for *cust_cvs_mcnab_LFI_90 ** 
80
cust_cvs_mcnab_LFI_asp,,** No join mapping for *cust_cvs_mcnab_LFI_asp ** 
81
cust_cvs_mcnab_TSI,,** No join mapping for *cust_cvs_mcnab_TSI ** 
82
cust_cvs_mcnab_TSI_135,,** No join mapping for *cust_cvs_mcnab_TSI_135 ** 
83
cust_cvs_mcnab_TSI_180,,** No join mapping for *cust_cvs_mcnab_TSI_180 ** 
84
cust_cvs_mcnab_TSI_225,,** No join mapping for *cust_cvs_mcnab_TSI_225 ** 
85
cust_cvs_mcnab_TSI_270,,** No join mapping for *cust_cvs_mcnab_TSI_270 ** 
86
cust_cvs_mcnab_TSI_315,,** No join mapping for *cust_cvs_mcnab_TSI_315 ** 
87
cust_cvs_mcnab_TSI_45,,** No join mapping for *cust_cvs_mcnab_TSI_45 ** 
88
cust_cvs_mcnab_TSI_90,,** No join mapping for *cust_cvs_mcnab_TSI_90 ** 
89
cust_cvs_mcnab_TSI_asp,,** No join mapping for *cust_cvs_mcnab_TSI_asp ** 
90
cust_cvs_percentBedrock,,** No join mapping for *cust_cvs_percentBedrock ** 
91
cust_cvs_percentBoulder,,** No join mapping for *cust_cvs_percentBoulder ** 
92
cust_cvs_percentCWD,,** No join mapping for *cust_cvs_percentCWD ** 
93
cust_cvs_percentDuff,,** No join mapping for *cust_cvs_percentDuff ** 
94
cust_cvs_percentFWD,,** No join mapping for *cust_cvs_percentFWD ** 
95
cust_cvs_percentGravelCobble,,** No join mapping for *cust_cvs_percentGravelCobble ** 
96
cust_cvs_percentHistosol,,** No join mapping for *cust_cvs_percentHistosol ** 
97
cust_cvs_percentLitter,,** No join mapping for *cust_cvs_percentLitter ** 
98
cust_cvs_percentMineralSoil,,** No join mapping for *cust_cvs_percentMineralSoil ** 
99
cust_cvs_percentNonVasc,,** No join mapping for *cust_cvs_percentNonVasc ** 
100
cust_cvs_percentOther,,** No join mapping for *cust_cvs_percentOther ** 
101
cust_cvs_percentOtherName,,** No join mapping for *cust_cvs_percentOtherName ** 
102
cust_cvs_percentWater,,** No join mapping for *cust_cvs_percentWater ** 
103
cust_cvs_percent_Ca,,** No join mapping for *cust_cvs_percent_Ca ** 
104
cust_cvs_percent_H,,** No join mapping for *cust_cvs_percent_H ** 
105
cust_cvs_percent_K,,** No join mapping for *cust_cvs_percent_K ** 
106
cust_cvs_percent_Mg,,** No join mapping for *cust_cvs_percent_Mg ** 
107
cust_cvs_percent_Na,,** No join mapping for *cust_cvs_percent_Na ** 
108
cust_cvs_percent_Othr,,** No join mapping for *cust_cvs_percent_Othr ** 
109
cust_cvs_postDsgPoly,,** No join mapping for *cust_cvs_postDsgPoly ** 
110
cust_cvs_samplingLevel,,** No join mapping for *cust_cvs_samplingLevel ** 
111
cust_cvs_stemSamplingNarrative,,** No join mapping for *cust_cvs_stemSamplingNarrative ** 
112
cust_cvs_stemsSampled,,** No join mapping for *cust_cvs_stemsSampled ** 
113
cust_cvs_taxaRichness,,** No join mapping for *cust_cvs_taxaRichness ** 
114
cust_eep_plotLastPlantedDate,,** No join mapping for *cust_eep_plotLastPlantedDate ** 
115
cust_eep_plotNotSampled,,** No join mapping for *cust_eep_plotNotSampled ** 
116
cust_eep_plotNotSampledReason,,** No join mapping for *cust_eep_plotNotSampledReason ** 
117
dateAccuracy,,** No join mapping for *dateAccuracy ** 
118
dateEntered,,** No join mapping for *dateEntered ** 
119
dba_notes,,** No join mapping for *dba_notes ** 
120
dba_src_ID,,** No join mapping for *dba_src_ID ** 
121
dominantStratum,,** No join mapping for *dominantStratum ** 
122
effortLevel,,** No join mapping for *effortLevel ** 
123
entry_IntensiveModuleList,,** No join mapping for *entry_IntensiveModuleList ** 
124
entry_ares_herbs,,** No join mapping for *entry_ares_herbs ** 
125
entry_ares_trees,,** No join mapping for *entry_ares_trees ** 
126
entry_currentLandUse,,** No join mapping for *entry_currentLandUse ** 
127
entry_depth,,** No join mapping for *entry_depth ** 
128
entry_elevationUnits,,** No join mapping for *entry_elevationUnits ** 
129
entry_formerLandUse,,** No join mapping for *entry_formerLandUse ** 
130
entry_identificationNarrative,,** No join mapping for *entry_identificationNarrative ** 
131
entry_moduleSizeX,,** No join mapping for *entry_moduleSizeX ** 
132
entry_moduleSizeY,,** No join mapping for *entry_moduleSizeY ** 
133
entry_moduleSize_Overall,,** No join mapping for *entry_moduleSize_Overall ** 
134
entry_numberOfModules,,** No join mapping for *entry_numberOfModules ** 
135
entry_photosTaken,,** No join mapping for *entry_photosTaken ** 
136
entry_physClass,,** No join mapping for *entry_physClass ** 
137
entry_plot,,** No join mapping for *entry_plot ** 
138
entry_plot_X,,** No join mapping for *entry_plot_X ** 
139
entry_plot_Y,,** No join mapping for *entry_plot_Y ** 
140
entry_soilModulesSampled,,** No join mapping for *entry_soilModulesSampled ** 
141
entry_subsequentObsNum,,** No join mapping for *entry_subsequentObsNum ** 
142
entry_taxonomicAuthorityDate,,** No join mapping for *entry_taxonomicAuthorityDate ** 
143
entry_taxonomicAuthority_ID,,** No join mapping for *entry_taxonomicAuthority_ID ** 
144
entry_team,,** No join mapping for *entry_team ** 
145
errors,,** No join mapping for *errors ** 
146
fieldCover,,** No join mapping for *fieldCover ** 
147
fieldHt,,** No join mapping for *fieldHt ** 
148
floatingCover,,** No join mapping for *floatingCover ** 
149
floristicQuality,,** No join mapping for *floristicQuality ** 
150
growthform1Cover,,** No join mapping for *growthform1Cover ** 
151
growthform1Type,,** No join mapping for *growthform1Type ** 
152
growthform2Cover,,** No join mapping for *growthform2Cover ** 
153
growthform2Type,,** No join mapping for *growthform2Type ** 
154
growthform3Cover,,** No join mapping for *growthform3Cover ** 
155
growthform3Type,,** No join mapping for *growthform3Type ** 
156
homogeneity,,** No join mapping for *homogeneity ** 
157
hydrologicRegime,,** No join mapping for *hydrologicRegime ** 
158
landscapeNarrative,,** No join mapping for *landscapeNarrative ** 
159
lichenQuality,,** No join mapping for *lichenQuality ** 
160
nameOther,,** No join mapping for *nameOther ** 
161
nonvascularCover,,** No join mapping for *nonvascularCover ** 
162
nonvascularHt,,** No join mapping for *nonvascularHt ** 
163
notesMgt,,** No join mapping for *notesMgt ** 
164
notesPublic,,** No join mapping for *notesPublic ** 
165
numberOfTaxa,,** No join mapping for *numberOfTaxa ** 
166
observationNarrative,,** No join mapping for *observationNarrative ** 
167
organicDepth,,** No join mapping for *organicDepth ** 
168
originalData,,** No join mapping for *originalData ** 
169
percentBareSoil,,** No join mapping for *percentBareSoil ** 
170
percentBedRock,,** No join mapping for *percentBedRock ** 
171
percentLitter,,** No join mapping for *percentLitter ** 
172
percentOther,,** No join mapping for *percentOther ** 
173
percentRockGravel,,** No join mapping for *percentRockGravel ** 
174
percentWater,,** No join mapping for *percentWater ** 
175
percentWood,,** No join mapping for *percentWood ** 
176
phenologicAspect,,** No join mapping for *phenologicAspect ** 
177
plotValidationLevel,,** No join mapping for *plotValidationLevel ** 
178
representativeness,,** No join mapping for *representativeness ** 
179
revisions,,** No join mapping for *revisions ** 
180
shoreDistance,,** No join mapping for *shoreDistance ** 
181
shrubCover,,** No join mapping for *shrubCover ** 
182
shrubHt,,** No join mapping for *shrubHt ** 
183
soilCoarse,,** No join mapping for *soilCoarse ** 
184
soilColor,,** No join mapping for *soilColor ** 
185
soilDepth,,** No join mapping for *soilDepth ** 
186
soilDepthBottom,,** No join mapping for *soilDepthBottom ** 
187
soilDepthTop,,** No join mapping for *soilDepthTop ** 
188
soilDescription,,** No join mapping for *soilDescription ** 
189
soilDrainage,,** No join mapping for *soilDrainage ** 
190
soilHorizon,,** No join mapping for *soilHorizon ** 
191
soilMapUnit,,** No join mapping for *soilMapUnit ** 
192
soilMoistureRegime,,** No join mapping for *soilMoistureRegime ** 
193
soilObs_dba_src_ID,,** No join mapping for *soilObs_dba_src_ID ** 
194
soilTaxonComplex,,** No join mapping for *soilTaxonComplex ** 
195
soilTaxonSrc,,** No join mapping for *soilTaxonSrc ** 
196
standMaturity,,** No join mapping for *standMaturity ** 
197
stemObservationArea,,** No join mapping for *stemObservationArea ** 
198
stemSampleMethod,,** No join mapping for *stemSampleMethod ** 
199
stemSizeLimit,,** No join mapping for *stemSizeLimit ** 
200
submergedCover,,** No join mapping for *submergedCover ** 
201
submergedHt,,** No join mapping for *submergedHt ** 
202
successionalStatus,,** No join mapping for *successionalStatus ** 
203
taxonObservationArea,,** No join mapping for *taxonObservationArea ** 
204
totalCover,,** No join mapping for *totalCover ** 
205
treeCover,,** No join mapping for *treeCover ** 
206
treeHt,,** No join mapping for *treeHt ** 
207
waterDepth,,** No join mapping for *waterDepth ** 
208
waterSalinity,,** No join mapping for *waterSalinity ** 
1
link ../../../mappings/VegCore-VegBIEN.csv
209 2

  
inputs/CVS/run
1 1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../../lib/runscripts/datasrc_dir.run
2 3

  
3 4
# `make .../reinstall` runtime: 25 min ("25m30.587s") @starscream
4 5
#                               45 min ("43m40.625s") @vegbiendev
inputs/CVS/taxonObservation_/postprocess.sql
1 1
SELECT util.search_path_append('util');
2 2

  
3
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'_parent'||$$ ON $$||:table_str||$$ ("OBSERVATION_ID")$$); -- runtime: 1 s ("795.083 ms") @starscream
3
SELECT create_if_not_exists($$CREATE INDEX $$||:table_str||%'_parent'||$$ ON $$||:table_str||$$ ("eventID")$$); -- runtime: 1 s ("795.083 ms") @starscream
4 4

  
5 5

  
6 6
UPDATE :table SET
7
denorm_kingdom = "Kingdom"
8
WHERE denorm_kingdom != "Kingdom"/*implies both NOT NULL*/ -- applies to 1 row (PLANTCONCEPT_ID 92372)
7
kingdom = "DUPLICATE#of:denorm_kingdom#Kingdom"
8
WHERE kingdom != "DUPLICATE#of:denorm_kingdom#Kingdom"/*implies both NOT NULL*/ -- applies to 1 row (**PLANTCONCEPT_ID 92372)
9 9
; -- rerun time: 0.5 s ("710.176 ms") @starscream; runtime: 2 s ("2211.789 ms") @starscream
10 10

  
11 11
UPDATE :table SET
12
denorm_genus = trim(denorm_genus, '{}') -- applies to 6 rows
13
WHERE denorm_genus LIKE '{%}' -- applies to 6 rows
12
genus_main = trim(genus_main, '{}') -- applies to 6 rows
13
WHERE genus_main LIKE '{%}' -- applies to 6 rows
14 14
; -- rerun time: 0.5 s ("492.670 ms") @starscream; runtime: 0.5 s ("543.942 ms") @starscream
inputs/CVS/taxonObservation_/run
1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../table.run
0 3

  
inputs/CVS/taxonObservation_/test.xml.ref
8 8
                <path>
9 9
                    <location>
10 10
                        <locationevent>
11
                            <sourceaccessioncode>$OBSERVATION_ID</sourceaccessioncode>
11
                            <sourceaccessioncode>$eventID</sourceaccessioncode>
12 12
                            <locationevent fkey="parent_id">
13
                                <sourceaccessioncode>$OBSERVATION_ID</sourceaccessioncode>
13
                                <sourceaccessioncode>$eventID</sourceaccessioncode>
14 14
                                <taxonoccurrence>
15 15
                                    <aggregateoccurrence>
16
                                        <collectiondate>$collectionDate</collectiondate>
17
                                        <notes>$notes</notes>
16
                                        <collectiondate>$dateCollected</collectiondate>
17
                                        <notes>$occurrenceRemarks</notes>
18 18
                                        <plantobservation>
19
                                            <authorplantcode>$collectionNumber</authorplantcode>
19
                                            <authorplantcode>$collectorNumber</authorplantcode>
20 20
                                            <specimenreplicate>
21
                                                <catalognumber_dwc>$museumAccessionNumber</catalognumber_dwc>
22
                                                <collectionnumber>$collectionNumber</collectionnumber>
21
                                                <catalognumber_dwc>$accessionNumber</catalognumber_dwc>
22
                                                <collectionnumber>$collectorNumber</collectionnumber>
23 23
                                            </specimenreplicate>
24
                                            <stemobservation><sourceaccessioncode>$stemLocation_ID</sourceaccessioncode></stemobservation>
24
                                            <stemobservation><sourceaccessioncode>$stemID</sourceaccessioncode></stemobservation>
25 25
                                        </plantobservation>
26 26
                                    </aggregateoccurrence>
27
                                    <authortaxoncode>$collectionNumber</authortaxoncode>
28
                                    <sourceaccessioncode>$TAXONOBSERVATION_ID</sourceaccessioncode>
27
                                    <authortaxoncode>$collectorNumber</authortaxoncode>
28
                                    <sourceaccessioncode>$taxonOccurrenceID</sourceaccessioncode>
29 29
                                    <taxondetermination>
30 30
                                        <taxonverbatim_id>
31 31
                                            <taxonverbatim>
......
33 33
                                                    <taxonlabel>
34 34
                                                        <parent_id>
35 35
                                                            <taxonlabel>
36
                                                                <rank>$taxonLevel</rank>
36
                                                                <rank>$taxonRank</rank>
37 37
                                                                <parent_id>
38 38
                                                                    <taxonlabel>
39 39
                                                                        <rank>cultivar</rank>
......
49 49
                                                                                                <parent_id>
50 50
                                                                                                    <taxonlabel>
51 51
                                                                                                        <rank>species</rank>
52
                                                                                                        <taxonepithet>$denorm_species</taxonepithet>
52
                                                                                                        <taxonepithet>$specificEpithet</taxonepithet>
53 53
                                                                                                        <parent_id>
54 54
                                                                                                            <taxonlabel>
55 55
                                                                                                                <rank>genus</rank>
......
57 57
                                                                                                                <parent_id>
58 58
                                                                                                                    <taxonlabel>
59 59
                                                                                                                        <rank>family</rank>
60
                                                                                                                        <taxonepithet>$denorm_family</taxonepithet>
60
                                                                                                                        <taxonepithet>$family</taxonepithet>
61 61
                                                                                                                        <parent_id>
62 62
                                                                                                                            <taxonlabel>
63 63
                                                                                                                                <rank>order</rank>
64
                                                                                                                                <taxonepithet>$Order</taxonepithet>
64
                                                                                                                                <taxonepithet>$order</taxonepithet>
65 65
                                                                                                                                <parent_id>
66 66
                                                                                                                                    <taxonlabel>
67 67
                                                                                                                                        <rank>class</rank>
68
                                                                                                                                        <taxonepithet>$Class</taxonepithet>
68
                                                                                                                                        <taxonepithet>$class</taxonepithet>
69 69
                                                                                                                                        <parent_id>
70 70
                                                                                                                                            <taxonlabel>
71 71
                                                                                                                                                <rank>phylum</rank>
72 72
                                                                                                                                                <parent_id>
73 73
                                                                                                                                                    <taxonlabel>
74 74
                                                                                                                                                        <rank>kingdom</rank>
75
                                                                                                                                                        <taxonepithet>$denorm_kingdom</taxonepithet>
75
                                                                                                                                                        <taxonepithet>$kingdom</taxonepithet>
76 76
                                                                                                                                                    </taxonlabel>
77 77
                                                                                                                                                </parent_id>
78 78
                                                                                                                                            </taxonlabel>
......
95 95
                                                                        </parent_id>
96 96
                                                                    </taxonlabel>
97 97
                                                                </parent_id>
98
                                                                <taxonepithet>$denorm_triName</taxonepithet>
98
                                                                <taxonepithet>$infraspecificEpithet</taxonepithet>
99 99
                                                            </taxonlabel>
100 100
                                                        </parent_id>
101
                                                        <rank>$taxonLevel</rank>
101
                                                        <rank>$taxonRank</rank>
102 102
                                                        <taxonomicname>
103 103
                                                            <_merge_prefix>
104
                                                                <prefix><_taxon_family_require_std><family>$denorm_family</family></_taxon_family_require_std></prefix>
104
                                                                <prefix><_taxon_family_require_std><family>$family</family></_taxon_family_require_std></prefix>
105 105
                                                                <value>
106 106
                                                                    <_alt>
107
                                                                        <1>$plantNameWithAuthority</1>
107
                                                                        <1>$scientificName</1>
108 108
                                                                        <2>
109 109
                                                                            <_alt>
110
                                                                                <1>$plantname</1>
110
                                                                                <1>$taxonName</1>
111 111
                                                                                <2>
112 112
                                                                                    <_join_words>
113 113
                                                                                        <2><_filter_genus><value>$genus</value></_filter_genus></2>
114
                                                                                        <3>$denorm_species</3>
114
                                                                                        <3>$specificEpithet</3>
115 115
                                                                                        <5>
116 116
                                                                                            <_join_words>
117 117
                                                                                                <1>
118 118
                                                                                                    <_if name="if has infraspecificEpithet">
119
                                                                                                        <cond>$denorm_triName</cond>
120
                                                                                                        <then>$taxonLevel</then>
119
                                                                                                        <cond>$infraspecificEpithet</cond>
120
                                                                                                        <then>$taxonRank</then>
121 121
                                                                                                    </_if>
122 122
                                                                                                </1>
123
                                                                                                <2>$denorm_triName</2>
123
                                                                                                <2>$infraspecificEpithet</2>
124 124
                                                                                            </_join_words>
125 125
                                                                                        </5>
126 126
                                                                                    </_join_words>
......
133 133
                                                        </taxonomicname>
134 134
                                                    </taxonlabel>
135 135
                                                </taxonlabel_id>
136
                                                <family>$denorm_family</family>
136
                                                <family>$family</family>
137 137
                                                <genus>$genus</genus>
138
                                                <specific_epithet>$denorm_species</specific_epithet>
139
                                                <taxonname>$plantname</taxonname>
140
                                                <taxonomicname>$plantNameWithAuthority</taxonomicname>
141
                                                <verbatimrank>$taxonLevel</verbatimrank>
138
                                                <specific_epithet>$specificEpithet</specific_epithet>
139
                                                <taxonname>$taxonName</taxonname>
140
                                                <taxonomicname>$scientificName</taxonomicname>
141
                                                <verbatimrank>$taxonRank</verbatimrank>
142 142
                                            </taxonverbatim>
143 143
                                        </taxonverbatim_id>
144
                                        <determinationdate><_dateRangeStart><value>$interpretationDate</value></_dateRangeStart></determinationdate>
145
                                        <determinationtype>$interpretationType</determinationtype>
146
                                        <iscurrent__verbatim>$currentInterpretation</iscurrent__verbatim>
147
                                        <isoriginal>$originalInterpretation</isoriginal>
148
                                        <taxonfit>$taxonFit</taxonfit>
144
                                        <determinationdate><_dateRangeStart><value>$dateIdentified</value></_dateRangeStart></determinationdate>
145
                                        <determinationtype>$identificationType</determinationtype>
146
                                        <iscurrent__verbatim>$taxon_determination__is_current</iscurrent__verbatim>
147
                                        <isoriginal>$taxon_determination__is_original</isoriginal>
148
                                        <taxonfit>$identificationQualifier</taxonfit>
149 149
                                    </taxondetermination>
150 150
                                    <taxondetermination>
151 151
                                        <isoriginal>true</isoriginal>
152
                                        <taxonverbatim_id><taxonverbatim><taxonname>$authorPlantName</taxonname></taxonverbatim></taxonverbatim_id>
152
                                        <taxonverbatim_id><taxonverbatim><taxonname>$originalTaxonName</taxonname></taxonverbatim></taxonverbatim_id>
153 153
                                    </taxondetermination>
154 154
                                </taxonoccurrence>
155 155
                            </locationevent>
inputs/CVS/taxonObservation_/VegBIEN.csv
1
CVS,VegBIEN:/_setDefault:[source_id/source/shortname/_env:[name=source]]/path/_simplifyPath:[next=parent_id]/path,Comments
2
museumAccessionNumber,"/_if[@name=""if specimen""]/cond/_exists",
3
:plot,"/_if[@name=""if specimen""]/else/source:[shortname/_first/2/_env:[name=source]]/observationtype",
4
:plot,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/3/_if[@name=""if plot""]/cond/_eq:[right=plot]/left",
5
museumAccessionNumber,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/3/_if[@name=""if plot""]/else/_alt/2/_if[@name=""if catalogNumber""]/cond/_exists",
6
museumAccessionNumber,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/3/_if[@name=""if plot""]/else/_alt/2/_if[@name=""if catalogNumber""]/then/_join/1/_if[@name=""if specimen""]/cond/_exists",
7
museumAccessionNumber,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/3/_if[@name=""if plot""]/else/_alt/2/_if[@name=""if catalogNumber""]/then/_join/3/_if[@name=""if indirect voucher""]/else",
8
TAXONOBSERVATION_ID,"/location/iscultivated/_or/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
9
collectionNumber,"/location/iscultivated/_or/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
10
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/else/sourceaccessioncode",
11
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/cond/_exists",
12
OBSERVATION_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/sourceaccessioncode",
13
OBSERVATION_ID,/location/locationevent/locationevent:[@fkey=parent_id]/sourceaccessioncode,
14
interpretationDate,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/_if[@name=""if has accepted name""]/then/taxondetermination:[determinationtype=accepted]/determinationdate/_alt/1/_dateRangeStart/value",
15
taxonFit,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/_if[@name=""if has accepted name""]/then/taxondetermination:[determinationtype=accepted]/taxonfit",
16
collectionDate,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/collectiondate/_alt/1,
17
notes,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/notes/_join/1,
18
collectionNumber,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/authorplantcode/_first/2,
19
museumAccessionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/specimenreplicate/catalognumber_dwc/_if[@name=""if indirect voucher""]/else",
20
collectionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/specimenreplicate/collectionnumber/_if[@name=""if indirect voucher""]/else",
21
museumAccessionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/specimenreplicate/institution_id/sourcelist/_if[@name=""if specimen""]/cond/_exists",
22
stemLocation_ID,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/aggregateoccurrence/plantobservation/stemobservation/sourceaccessioncode,
23
OBSERVATION_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
24
stemLocation_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/1/_if[@name=""if individual""]/cond/_exists",
25
collectionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/2/_first/3",
26
authorPlantName,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/3/_first/1",
27
plantNameWithAuthority,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/3/_first/2",
28
plantname,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/then/_first/3/_first/3",
29
TAXONOBSERVATION_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/iscultivated/_alt/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
30
collectionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/iscultivated/_alt/1/_if[@name=""if TaxonOccurrence""]/cond/_exists",
31
TAXONOBSERVATION_ID,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/sourceaccessioncode/_first/1,
32
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/_if[@name=""if has explicit parent""]/else/rank",
33
denorm_species,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=species]/taxonepithet","unlike VegBank, this is in fact the epithet, not the full name"
34
genus,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=genus]/taxonepithet",
35
denorm_family,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=family]/taxonepithet",
36
Order,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=order]/taxonepithet",
37
Class,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=class]/taxonepithet",
38
denorm_kingdom,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/parent_id/_forEach:[in:[cultivar,forma,variety,subspecies,species,genus,family,order,class,phylum,],do=""taxonlabel[rank=_val]/parent_id""]/taxonlabel[rank=kingdom]/taxonepithet",
39
denorm_triName,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/parent_id/taxonlabel/taxonepithet,
40
taxonLevel,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/rank,
41
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonepithet/_if[@name=""if taxonomic name is epithet""]/cond/_alt:[2=true]/1/_taxonomic_name_is_epithet/rank",
42
denorm_family,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/prefix/_taxon_family_require_std/family,
43
plantNameWithAuthority,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/1,
44
plantname,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/1,
45
genus,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/2/_filter_genus/value,
46
denorm_species,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/3/_join_words/1,"unlike VegBank, this is in fact the epithet, not the full name"
47
denorm_triName,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/1/_if[@name=""if has infraspecificEpithet""]/cond",
48
taxonLevel,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/1/_if[@name=""if has infraspecificEpithet""]/then",
49
denorm_triName,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/*_id/taxonlabel/taxonomicname/_merge_prefix/value/_alt/2/_join_words/1/_alt/2/_join_words/5/_join_words/2,
50
denorm_family,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/family,
51
genus,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/genus,
52
denorm_species,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/specific_epithet,"unlike VegBank, this is in fact the epithet, not the full name"
53
plantname,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/taxonname,
54
plantNameWithAuthority,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/taxonomicname,
55
taxonLevel,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/*_id/taxonverbatim/verbatimrank,
56
TAXONOBSERVATION_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/_if[@name=""if has taxondetermination""]/cond/_exists",
57
interpretationDate,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/determinationdate/_alt/1/_dateRangeStart/value,
58
interpretationType,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/determinationtype,
59
currentInterpretation,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/iscurrent__verbatim,
60
originalInterpretation,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/isoriginal,
61
taxonFit,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[!isoriginal=true]/taxonfit,
62
authorPlantName,/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/taxondetermination[isoriginal=true]/*_id/taxonverbatim/taxonname,
63
museumAccessionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/voucher/*_id/specimenreplicate/catalognumber_dwc/_if[@name=""if indirect voucher""]/then",
64
collectionNumber,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/voucher/*_id/specimenreplicate/collectionnumber/_if[@name=""if indirect voucher""]/then",
65
*genus,,"** No join mapping for genus_normalized ** unlike VegBank, does *not* include genus author"
66
Division,,** No join mapping for division_normalized ** 
67
Kingdom,,** No non-empty join mapping for DUPLICATE#of:denorm_kingdom#Kingdom ** 
68
PLANTCONCEPT_ID,,** No join mapping for *PLANTCONCEPT_ID ** 
69
PLANTNAME_ID,,** No join mapping for *PLANTNAME_ID ** 
70
ROLE_ID,,** No join mapping for *ROLE_ID ** 
71
Subclass,,** No join mapping for *Subclass ** 
72
Subkingdom,,** No join mapping for *Subkingdom ** 
73
TAXONINTERPRETATION_ID,,** No join mapping for *TAXONINTERPRETATION_ID ** 
74
USDAPlantsCode,,** No join mapping for *USDAPlantsCode ** 
75
VascularPlant,,** No join mapping for *VascularPlant ** 
76
collector_ID,,** No non-empty join mapping for UNUSED#collector_ID ** 
77
commonName,,** No join mapping for vernacularName ** 
78
composite family,,** No join mapping for *composite family ** 
79
composite genus,,** No join mapping for *composite genus ** 
80
composite species,,** No join mapping for *composite species ** 
81
composite variety,,** No non-empty join mapping for EQUIV#to:species#composite variety ** full taxonomic name at that rank
82
currentTaxonInterpPlantConcept_ID,,** No join mapping for *currentTaxonInterpPlantConcept_ID ** 
83
cust_cvs_collectionFlag,,** No join mapping for *cust_cvs_collectionFlag ** 
84
cust_cvs_corner1Presence,,** No join mapping for *cust_cvs_corner1Presence ** 
85
cust_cvs_corner2Presence,,** No join mapping for *cust_cvs_corner2Presence ** 
86
cust_cvs_corner3Presence,,** No join mapping for *cust_cvs_corner3Presence ** 
87
cust_cvs_corner4Presence,,** No join mapping for *cust_cvs_corner4Presence ** 
88
cust_cvs_corner5Presence,,** No join mapping for *cust_cvs_corner5Presence ** 
89
denorm_category,,** No join mapping for *category ** 
90
denorm_division,,"** No join mapping for division_main ** must be _alt-ed with Division because this is missing in 2 rows that have Division, and different from Division in 1 row"
91
denorm_genus,,** No join mapping for genus_main ** must be _alt-ed with genus because this is missing in 1 row that has genus
92
denorm_hybridX,,** No join mapping for *hybridX ** 
93
denorm_quadAbbr,,** No join mapping for infraspecificRank2 ** sometimes misparsed as the last + sign in the plantNameWithAuthority
94
denorm_quadName,,** No join mapping for infraspecificEpithet2 ** sometimes misparsed as the part after the last + sign in the plantNameWithAuthority
95
denorm_triAbbr,,** No join mapping for infraspecificRank ** 
96
division,,** No join mapping for *division ** 
97
entry_herbLineID,,** No join mapping for *entry_herbLineID ** 
98
entry_sortOrder,,** No join mapping for *entry_sortOrder ** 
99
entry_treeLineID,,** No join mapping for *entry_treeLineID ** 
100
entry_unknownSp,,** No join mapping for *entry_unknownSp ** 
101
exotic,,** No join mapping for *exotic ** 
102
family,,** No non-empty join mapping for DUPLICATE#of:denorm_family#family ** 
103
groupType,,** No join mapping for *groupType ** 
104
growthForm_short,,** No join mapping for *growthForm_short ** 
105
lowestChildRank,,** No join mapping for *lowestChildRank ** 
106
lowestParentConcept_ID,,** No join mapping for *lowestParentConcept_ID ** 
107
lowestParentName,,** No join mapping for *lowestParentName ** 
108
museum_ID,,** No join mapping for *museum_ID ** 
109
notesMgt,,** No join mapping for *notesMgt ** 
110
notesPublic,,** No join mapping for *notesPublic ** 
111
plantCode,,** No join mapping for *plantCode ** 
112
plantConcept_accessionCode,,** No join mapping for *plantConcept_accessionCode ** 
113
plantConcept_dba_src_ID,,** No join mapping for *plantConcept_dba_src_ID ** 
114
plantConcept_entry_sppID,,** No join mapping for *plantConcept_entry_sppID ** 
115
plantConcept_reference_ID,,** No join mapping for *plantConcept_reference_ID ** 
116
plantDescription,,** No join mapping for *plantDescription ** 
117
reference_ID,,** No join mapping for *reference_ID ** 
118
revisions,,** No join mapping for *revisions ** 
119
section,,** No join mapping for *section ** 
120
sensitiveSpeciesFuzzPlot,,** No join mapping for *sensitiveSpeciesFuzzPlot ** 
121
species,,** No join mapping for speciesBinomial ** full taxonomic name at that rank
122
subgenus,,** No join mapping for subgenus ** 
123
subspecies,,** No non-empty join mapping for EQUIV#to:species#subspecies ** full taxonomic name at that rank
124
taxonConfidence,,** No join mapping for identificationVerificationStatus ** 
125
taxonInferenceArea,,** No join mapping for *taxonInferenceArea ** 
126
taxonInterpretation_PARTY_ID,,** No join mapping for *taxonInterpretation_PARTY_ID ** 
127
taxonInterpretation_PLANTNAME_ID,,** No join mapping for *taxonInterpretation_PLANTNAME_ID ** 
128
taxonInterpretation_accessionCode,,** No join mapping for *taxonInterpretation_accessionCode ** 
129
taxonInterpretation_dba_src_ID,,** No join mapping for *taxonInterpretation_dba_src_ID ** 
130
taxonObservationNotes,,** No join mapping for *taxonObservationNotes ** 
131
taxonObservation_accessionCode,,** No join mapping for *taxonObservation_accessionCode ** 
132
taxonObservation_dba_src_ID,,** No join mapping for *taxonObservation_dba_src_ID ** 
133
taxonObservation_entry_sppID,,** No join mapping for *taxonObservation_entry_sppID ** 
134
taxonObservation_reference_ID,,** No join mapping for *taxonObservation_reference_ID ** 
135
taxonRank,,** No non-empty join mapping for OMIT#taxonRank ** Omitted because taxonLevel contains this information in text form
136
temp_taxonUpToDate,,** No join mapping for *temp_taxonUpToDate ** 
137
tribe,,** No join mapping for *tribe ** 
138
usda_code,,** No join mapping for *usda_code ** 
139
usda_growthForm,,** No join mapping for *usda_growthForm ** 
140
variety,,** No non-empty join mapping for EQUIV#to:species#variety ** full taxonomic name at that rank
141
woody,,** No join mapping for *woody ** 
1
link ../../../mappings/VegCore-VegBIEN.csv
142 2

  
inputs/CVS/plot_/postprocess.sql
1 1
SELECT util.search_path_append('util');
2 2

  
3
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("PLOT_ID")$$); -- runtime: ~0 ("78.941 ms") @starscream
3
SELECT create_if_not_exists($$ALTER TABLE $$||:table_str||$$ ADD PRIMARY KEY ("locationID")$$); -- runtime: ~0 ("78.941 ms") @starscream
4 4

  
5 5

  
6 6
-- map_*() derived cols
......
27 27
  LANGUAGE sql IMMUTABLE
28 28
  COST 100;
29 29

  
30
SELECT mk_derived_col((:table_str, 'accessRights'), $$map_access_rights("confidentialityStatus")$$); -- runtime: 0.5 s ("292.078 ms") @starscream
30
SELECT mk_derived_col((:table_str, 'accessRights'), $$map_access_rights("accessRights_verbatim")$$); -- runtime: 0.5 s ("292.078 ms") @starscream
31 31

  
32 32
CREATE OR REPLACE FUNCTION map_fuzzing(value integer)
33 33
  RETURNS double precision AS
......
50 50
  LANGUAGE sql IMMUTABLE
51 51
  COST 100;
52 52

  
53
SELECT mk_derived_col((:table_str, 'coordinateUncertaintyInMeters__from_fuzzing'), $$map_fuzzing("confidentialityStatus")$$); -- runtime: 0.2 s ("199.359 ms") @starscream
53
SELECT mk_derived_col((:table_str, 'coordinateUncertaintyInMeters__from_fuzzing'), $$map_fuzzing("accessRights_verbatim")$$); -- runtime: 0.2 s ("199.359 ms") @starscream
54 54

  
55 55

  
56 56
SELECT mk_derived_col((:table_str, 'coordinateUncertaintyInMeters'),
57
$$GREATEST("coordinateUncertaintyInMeters__from_fuzzing", "locationAccuracy")$$)
57
$$GREATEST("coordinateUncertaintyInMeters__from_fuzzing", "coordinateUncertaintyInMeters__from_coords")$$)
58 58
; -- runtime: 0.2 s ("172.425 ms") @starscream
inputs/CVS/plot_/run
1
#!/bin/bash -e
2
. "$(dirname "${BASH_SOURCE[0]}")"/../table.run
0 3

  
inputs/CVS/plot_/map.csv
64 64
quadrangle,*quadrangle,,
65 65
Geographic Name,*Geographic Name,,
66 66
River Basin,*River Basin,,
67
accessRights,accessRights,,
68
coordinateUncertaintyInMeters__from_fuzzing,coordinateUncertaintyInMeters__from_fuzzing,,
69
coordinateUncertaintyInMeters,coordinateUncertaintyInMeters,,
inputs/CVS/plot_/test.xml.ref
7 7
                <next>parent_id</next>
8 8
                <path>
9 9
                    <location>
10
                        <authorlocationcode>$authorPlotCode</authorlocationcode>
11
                        <sourceaccessioncode>$PLOT_ID</sourceaccessioncode>
10
                        <authorlocationcode>$locationName</authorlocationcode>
11
                        <sourceaccessioncode>$locationID</sourceaccessioncode>
12 12
                        <accesslevel>$accessRights</accesslevel>
13
                        <area_m2>$area</area_m2>
14
                        <elevation_m>$elevation</elevation_m>
15
                        <iscultivated><_locationnarrative_is_cultivated><locationnarrative>$locationNarrative</locationnarrative></_locationnarrative_is_cultivated></iscultivated>
13
                        <area_m2>$plotArea_m2</area_m2>
14
                        <elevation_m>$elevationInMeters</elevation_m>
15
                        <iscultivated><_locationnarrative_is_cultivated><locationnarrative>$locality</locationnarrative></_locationnarrative_is_cultivated></iscultivated>
16 16
                        <landform>$landform</landform>
17
                        <locationnarrative>$locationNarrative</locationnarrative>
17
                        <locationnarrative>$locality</locationnarrative>
18 18
                        <locationplace>
19 19
                            <place_id>
20 20
                                <place>
21 21
                                    <coordinates_id>
22 22
                                        <coordinates>
23 23
                                            <coordsaccuracy_m><_noCV><value>$coordinateUncertaintyInMeters</value></_noCV></coordsaccuracy_m>
24
                                            <footprintgeometry_dwc>$shape</footprintgeometry_dwc>
24
                                            <footprintgeometry_dwc>$footprintWKT</footprintgeometry_dwc>
25 25
                                            <latitude_deg>
26 26
                                                <_nullIf>
27 27
                                                    <null>0</null>
28 28
                                                    <type>float</type>
29
                                                    <value>$latitude</value>
29
                                                    <value>$decimalLatitude</value>
30 30
                                                </_nullIf>
31 31
                                            </latitude_deg>
32 32
                                            <longitude_deg>
33 33
                                                <_nullIf>
34 34
                                                    <null>0</null>
35 35
                                                    <type>float</type>
36
                                                    <value>$longitude</value>
36
                                                    <value>$decimalLongitude</value>
37 37
                                                </_nullIf>
38 38
                                            </longitude_deg>
39 39
                                        </coordinates>
40 40
                                    </coordinates_id>
41 41
                                    <continent>$continent</continent>
42
                                    <country>$COUNTRY</country>
42
                                    <country>$country</country>
43 43
                                    <county>$county</county>
44 44
                                    <matched_place_id>
45 45
                                        <place>
......
51 51
                                                        <_nullIf>
52 52
                                                            <null>0</null>
53 53
                                                            <type>float</type>
54
                                                            <value>$latitude</value>
54
                                                            <value>$decimalLatitude</value>
55 55
                                                        </_nullIf>
56 56
                                                    </latitude_deg>
57 57
                                                    <longitude_deg>
58 58
                                                        <_nullIf>
59 59
                                                            <null>0</null>
60 60
                                                            <type>float</type>
61
                                                            <value>$longitude</value>
61
                                                            <value>$decimalLongitude</value>
62 62
                                                        </_nullIf>
63 63
                                                    </longitude_deg>
64 64
                                                </coordinates>
65 65
                                            </coordinates_id>
66
                                            <country>$COUNTRY</country>
66
                                            <country>$country</country>
67 67
                                            <county>$county</county>
68 68
                                            <stateprovince>$stateProvince</stateprovince>
69 69
                                        </place>
......
72 72
                                </place>
73 73
                            </place_id>
74 74
                        </locationplace>
75
                        <parent_id><location><sourceaccessioncode>$PARENT_ID</sourceaccessioncode></location></parent_id>
75
                        <parent_id><location><sourceaccessioncode>$parentLocationID</sourceaccessioncode></location></parent_id>
76 76
                        <slopeaspect_deg>
77 77
                            <_alt>
78 78
                                <1><_compass><value>$slopeAspect</value></_compass></1>
inputs/CVS/plot_/unmapped_terms.csv
37 37
*quadrangle
38 38
*Geographic Name
39 39
*River Basin
40
coordinateUncertaintyInMeters__from_fuzzing
inputs/CVS/plot_/VegBIEN.csv
1
CVS,VegBIEN:/_setDefault:[source_id/source/shortname/_env:[name=source]]/path/_simplifyPath:[next=parent_id]/path,Comments
2
authorPlotCode,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/1",
3
PLOT_ID,"/location/_if[@name=""if subplot""]/else/authorlocationcode/_first/2/_if[@name=""if locationID""]/cond/_exists",
4
PLOT_ID,"/location/_if[@name=""if subplot""]/else/sourceaccessioncode",
5
authorPlotCode,"/location/_if[@name=""if subplot""]/then/parent_id/location/authorlocationcode",
6
PLOT_ID,"/location/_if[@name=""if subplot""]/then/parent_id/location/sourceaccessioncode",
7
accessRights,/location/accesslevel,
8
area,/location/area_m2,"assuming units are the same as VegBank's corresponding field (""Total area of the plot in m2"", http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=plot&entity=dba_tabledescription&where=where_tablename#area)"
9
elevation,/location/elevation_m/_alt/1,"assuming units are the same as VegBank's corresponding field (""The elevation of the plot origin in meters above sea level"", http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=plot&entity=dba_tabledescription&where=where_tablename#elevation)"
10
locationNarrative,/location/iscultivated/_or/2/_locationnarrative_is_cultivated/locationnarrative/_join/1,
11
landform,/location/landform,
12
authorPlotCode,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/*_id/location/authorlocationcode/_if[@name=""if subplot""]/then",
13
PLOT_ID,"/location/locationevent/_if[@name=""if subplot""]/then/_if[@name=""if has event""]/then/parent_id/locationevent/*_id/location/sourceaccessioncode/_if[@name=""if subplot""]/then",
14
PLOT_ID,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
15
authorPlotCode,"/location/locationevent/locationevent:[@fkey=parent_id]/taxonoccurrence/authortaxoncode/_if[@name=""if in plot""]/cond/_exists",
16
locationNarrative,/location/locationnarrative/_merge/1,
17
coordinateUncertaintyInMeters,/location/locationplace/*_id/place/*_id/coordinates/coordsaccuracy_m/_noCV/value,
18
shape,/location/locationplace/*_id/place/*_id/coordinates/footprintgeometry_dwc,
19
latitude,"/location/locationplace/*_id/place/*_id/coordinates/latitude_deg/_nullIf:[null=0,type=float]/value",
20
longitude,"/location/locationplace/*_id/place/*_id/coordinates/longitude_deg/_nullIf:[null=0,type=float]/value",
21
continent,/location/locationplace/*_id/place/continent,
22
COUNTRY,/location/locationplace/*_id/place/country,
23
county,/location/locationplace/*_id/place/county,
24
latitude,"/location/locationplace/*_id/place/matched_place_id/place:[.,source_id/source/shortname=geoscrub]/*_id/coordinates:[source_id/source/shortname=geoscrub]/_first/2/latitude_deg/_nullIf:[null=0,type=float]/value",""".,"" sorts it with other coordinates mappings"
25
longitude,"/location/locationplace/*_id/place/matched_place_id/place:[.,source_id/source/shortname=geoscrub]/*_id/coordinates:[source_id/source/shortname=geoscrub]/_first/2/longitude_deg/_nullIf:[null=0,type=float]/value",""".,"" sorts it with other coordinates mappings"
26
COUNTRY,/location/locationplace/*_id/place/matched_place_id/place:[source_id/source/shortname=geoscrub]/country/_first/2,
27
county,/location/locationplace/*_id/place/matched_place_id/place:[source_id/source/shortname=geoscrub]/county/_first/2,
28
stateProvince,/location/locationplace/*_id/place/matched_place_id/place:[source_id/source/shortname=geoscrub]/stateprovince/_first/2,
29
stateProvince,/location/locationplace/*_id/place/stateprovince,
30
PARENT_ID,/location/parent_id/location/sourceaccessioncode,
31
slopeAspect,/location/slopeaspect_deg/_alt/1/_compass/value,
32
minSlopeAspect,/location/slopeaspect_deg/_alt/2/_avg/1,
33
maxSlopeAspect,/location/slopeaspect_deg/_alt/2/_avg/2,
34
slopeGradient,/location/slopegradient_fraction/_alt/1,
35
minSlopeGradient,/location/slopegradient_fraction/_alt/2/_avg/1,
36
maxSlopeGradient,/location/slopegradient_fraction/_alt/2/_avg/2,
37
PLOT_ID,"/location/sourceaccessioncode/_first/2/_if[@name=""if locationID""]/cond/_exists",
38
PLOT_ID,"/location/sourceaccessioncode/_first/2/_if[@name=""if locationID""]/then/_if[@name=""if subplot""]/then/_join/1",
39
Geographic Name,,** No join mapping for *Geographic Name ** 
40
REPLACEMENTPLOT_ID,,** No join mapping for *REPLACEMENTPLOT_ID ** 
41
River Basin,,** No join mapping for *River Basin ** 
42
accessionCode,,** No join mapping for *accessionCode ** 
43
area|country|territory,,** No non-empty join mapping for DUPLICATE#of:COUNTRY#area|country|territory ** 
44
authorCoordinateType,,** No join mapping for *authorCoordinateType ** 
45
authorCoordinateUnits,,** No join mapping for *authorCoordinateUnits ** 
46
authorDatum,,** No join mapping for *authorDatum ** 
47
authorE,,** No join mapping for *authorE ** 
48
authorLocation,,** No join mapping for *authorLocation ** 
49
authorN,,** No join mapping for *authorN ** 
50
authorZone,,** No join mapping for *authorZone ** 
51
azimuth,,** No join mapping for *azimuth ** 
52
confidentialityFieldsBlocked,,** No join mapping for *confidentialityFieldsBlocked ** 
53
confidentialityReason,,** No join mapping for *confidentialityReason ** 
54
confidentialityStatus,,** No join mapping for accessRights_verbatim ** 
55
coordinateUncertaintyInMeters__from_fuzzing,,** No join mapping for coordinateUncertaintyInMeters__from_fuzzing ** 
56
county_,,** No non-empty join mapping for DUPLICATE#of:county#county_ ** 
57
cust_cvs_province,,** No join mapping for *cust_cvs_province ** 
58
cust_eep_reach,,** No join mapping for *cust_eep_reach ** 
59
dateentered,,** No join mapping for *dateentered ** 
60
dba_src_ID,,** No join mapping for *dba_src_ID ** 
61
dsgpoly,,** No join mapping for *dsgpoly ** 
62
elevationAccuracy,,** No join mapping for *elevationAccuracy ** 
63
elevationRange,,** No non-empty join mapping for UNUSED#elevationRange ** 
64
layoutNarrative,,** No join mapping for *layoutNarrative ** 
65
locationAccuracy,,"** No join mapping for coordinateUncertaintyInMeters__from_coords ** assuming units are the same as VegBank's corresponding field (""within this many meters of the reported location"", http://vegbank.org/vegbank/views/dba_tabledescription_detail.jsp?view=detail&wparam=plot&entity=dba_tabledescription&where=where_tablename&params=plot#locationAccuracy)"
66
notesMgt,,** No join mapping for *notesMgt ** 
67
notesPublic,,** No join mapping for *notesPublic ** 
68
permanence,,** No join mapping for *permanence ** 
69
placementMethod,,** No join mapping for *placementMethod ** 
70
plotObsolete,,** No join mapping for *plotObsolete ** 
71
plotRationaleNarrative,,** No join mapping for *plotRationaleNarrative ** 
72
quadrangle,,** No join mapping for *quadrangle ** 
73
realLatitude,,** No non-empty join mapping for UNUSED#realLatitude ** 
74
realLongitude,,** No non-empty join mapping for UNUSED#realLongitude ** 
75
reference_ID,,** No join mapping for *reference_ID ** 
76
region|state|province,,** No non-empty join mapping for DUPLICATE#of:stateProvince#region|state|province ** 
77
revisions,,** No join mapping for *revisions ** 
78
rockType,,** No join mapping for *rockType ** 
79
standSize,,** No join mapping for *standSize ** 
80
submitter_email,,** No join mapping for *submitter_email ** 
81
submitter_givenname,,** No join mapping for *submitter_givenname ** 
82
submitter_surname,,** No join mapping for *submitter_surname ** 
83
surficialDeposits,,** No join mapping for *surficialDeposits ** 
84
topoPosition,,** No join mapping for *topoPosition ** 
1
link ../../../mappings/VegCore-VegBIEN.csv
85 2

  

Also available in: Unified diff