changeset 0:b34c5a70b706 draft

planemo upload for repository https://github.com/galaxyecology/tools-ecology/tree/master/tools/EMLassemblyline commit f00c48e2a16ba6154e6c1aa50330586eefb13a32
author ecology
date Sat, 23 Dec 2023 20:40:04 +0000
parents
children 06e29cdc08bf
files eal_table_templates.R eal_templates.R eml2eal.R entities_templates.R geo_cov_temp.R make_eml.R raster_template.xml raster_templates.R taxo_cov_template.R test-data/Assessing_the_importance_of_field_margins_for_bat_species.xml test-data/Present_Surface_pH.tif test-data/annotations.tabular test-data/annotations.txt test-data/attributes_data_7.txt test-data/attributes_data_blary_al.tabular test-data/attributes_data_blary_al.txt test-data/catvars_data_7.txt test-data/catvars_data_blary_al.tabular test-data/catvars_data_blary_al.txt test-data/custom_units.txt test-data/data_7.GeoJSON test-data/datafile_1.tsv test-data/entities.txt test-data/geographic_coverage.tabular test-data/geographic_coverage.txt test-data/keywords.tabular test-data/keywords.txt test-data/metadataoutput.xml test-data/personnel.tabular test-data/personnel.txt test-data/taxa.tsv test-data/taxonomic_coverage.txt test-data/test-geocov.tabular vector_templates.R
diffstat 34 files changed, 3406 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eal_table_templates.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,21 @@
+#28/11/2023 #SEGUINEAU Pauline 
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+if (length(commandArgs(trailingOnly = TRUE)) > 0) {
+    data_table <- commandArgs(trailingOnly = TRUE)[1]
+}
+
+#Transform arguments
+
+table =  strsplit(data_table," ")
+
+#Make templates to describe data tables : Describes columns of a data table (classes, units, datetime formats, missing value codes) + catégorical variables.
+
+template_table_attributes(path = ".",data.path= "data_files", data.table = table[[1]])
+template_categorical_variables(path = ".", data.path = "data_files")
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eal_templates.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,23 @@
+#22/11/2023 #SEGUINEAU Pauline 
+
+###First tool of EML Workflow
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+args = commandArgs(trailingOnly=TRUE)
+if(length(args)>0){
+  
+  license <- args[1]
+  file_type <- args[2]
+}
+
+#Make templates to describe core features of a data package (abstract, methods, keywords, personnel, license). 
+
+template_core_metadata(path=".",license = license, file.type = file_type)
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/eml2eal.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,15 @@
+##07/06/2023
+##Genthon Tanguy
+###eml2eal
+
+#load arguments
+args = commandArgs(trailingOnly=TRUE)
+if (length(args)==0)
+{
+  stop("This tool needs at least one argument")
+}else{
+  data <- args[1]
+}
+
+
+EMLassemblyline::eml2eal(data,path=".")
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/entities_templates.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,17 @@
+#19/12/2023 #SEGUINEAU Pauline 
+
+#Load arguments
+
+if (length(commandArgs(trailingOnly = TRUE)) > 0) {
+    data_objects <- commandArgs(trailingOnly = TRUE)[1]
+}
+
+#Transform arguments
+
+data =  strsplit(data_objects," ")[[1]]
+
+#Make entities templates for raster and/or vector and/or other entities data
+
+EMLassemblyline::template_entities(path="output_template",data.path="data_files",data.objects=data)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/geo_cov_temp.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,38 @@
+#27/11/2023
+#Seguineau Pauline
+#Make geographic coverage template
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+args = commandArgs(trailingOnly=TRUE)
+if(length(args)>0){
+  
+  data_table <- args[1]
+  tablename <- args[2]
+  lat_col <- as.numeric(args[3])
+  long_col <- as.numeric(args[4])
+  site_col <- as.numeric(args[5])
+  empty <- args[6]
+}
+
+datatable = read.table(data_table,header=T)
+
+latcol = names(datatable[lat_col])
+longcol = names(datatable[long_col])
+sitecol = names(datatable[site_col])
+
+if (empty == "false"){
+   empty = FALSE
+}else if (empty=="true"){
+   empty=TRUE}
+
+
+#Make template
+
+template_geographic_coverage(path =".", data.path = "data_files", data.table = tablename, lat.col = latcol, lon.col = longcol, site.col = sitecol, empty = empty)
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/make_eml.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,442 @@
+##07/06/2023 ##Genthon Tanguy
+##update 15/11/2023 ## Seguineau Pauline
+
+###make_eml
+
+args = commandArgs(trailingOnly=TRUE)
+if(length(args)>0){
+  title <- args[1]
+  start <- args[2]
+  end <-args[3]
+  data_table <- args[4]
+  data_raster <- args[5]
+  data_vector <- args[6]
+  data_other <- args[7]
+  destable <- args[8]
+  desraster<- args[9]
+  desvector<- args[10]
+  desother <- args[11]
+  quote <- args[12]
+  table_url <- args[13]
+  other_url <- args[14]
+  raster_url <- args[15]
+  vector_url <- args[16]
+}
+
+#Load package
+
+library(EMLassemblyline)
+sessionInfo()
+
+
+###Format data###
+if (data_table == ""){
+    table=NULL
+}else{
+    table =  strsplit(data_table," ")
+    for (file in table){
+         name_table = gsub("\\.[a-zA-Z]*", "", file)}
+    }
+    
+    
+if (quote != ""){
+   quote = strsplit(quote,",")
+   if (length(quote[[1]]) != length(table[[1]])){
+   stop("Your number of quote(s) isn't equal to your number of data table file(s). Please enter the quote parameter as many time as the number of data tables you've input")}
+}
+
+
+tablequote=NULL
+for (quote_table in quote[[1]]){
+    if (quote_table=="quote"){
+        quote_table = sub("quote",'"', quote_table)}
+    else if (quote_table=="apostrophe"){
+             quote_table = gsub("apostrophe","'",quote_table)}
+    else if (quote_table=="none"){
+             quote_table = gsub("none","",quote_table)}
+    tablequote = c(tablequote, quote_table)
+}
+
+  
+if (data_raster == ""){
+    raster=NULL
+}else{
+    raster =  strsplit(data_raster," ")
+    for (file in raster){
+         name_raster = gsub("\\.[a-zA-Z]*", "", file)}
+    }
+    
+if (data_vector == ""){
+    vector=NULL
+}else{
+    vector =  strsplit(data_vector," ")
+    for (file in vector){
+         name_vector = gsub("\\.[a-zA-Z]*", "", file)}
+    }
+
+if (data_other == ""){
+    other=NULL
+}else{
+    other =  strsplit(data_other," ")
+    for (file in other){
+         name_other = gsub("\\.[a-zA-Z]*", "", file)}
+         }
+
+if (data_table !=""){
+   if (destable == ""){
+       des_table = name_table
+   }else{
+       des_table =  strsplit(destable,",")}
+}
+
+if (data_raster !=""){
+   if (desraster == ""){
+       des_raster = name_raster
+   }else{
+       des_raster =  strsplit(desraster,",")}
+}
+
+if (data_vector !=""){ 
+   if (desvector == ""){
+       des_vector = name_vector
+   }else{
+       des_vector =  strsplit(desvector,",")}
+}
+
+if (data_other !=""){
+   if (desother == ""){
+       des_other = name_other
+   }else{
+       des_other =  strsplit(desother,",")}
+}
+
+if (data_table !=""){
+   if (table_url == ""){
+       urltable = ""
+   }else{
+       table_url = gsub("\\-" ,"", table_url)
+       urltable =  strsplit(table_url,",")
+   }
+}
+
+if (data_other !=""){
+   if (other_url == ""){
+       urlother = ""
+   }else{
+       other_url = gsub("\\-" ,"", other_url)
+       urlother =  strsplit(other_url,",")
+   }
+}
+
+if (data_raster !=""){
+   if (raster_url == ""){
+       urlraster = ""
+   }else{
+       raster_url = gsub("\\-" ,"", raster_url)
+       urlraster =  strsplit(raster_url,",")
+   }
+}
+
+if (data_vector !=""){
+   if (vector_url == ""){
+       urlvector = ""
+   }else{
+       vector_url = gsub("\\-" ,"", vector_url)
+       urlvector =  strsplit(vector_url,",")
+   }
+}
+
+
+
+###Make EML###
+   
+if (!is.null(table) && !is.null(raster) && !is.null(vector) && !is.null(other)){
+   
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+                      
+}else if (is.null(table) && is.null(raster) && is.null(vector) && is.null(other)){
+  
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end))
+   
+}else if (!is.null(table) && is.null(raster) && is.null(vector) && is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]]
+                      )
+
+}else if (!is.null(table) && !is.null(raster) && is.null(vector) && is.null(other)){
+   
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]])
+                      
+}else if (!is.null(table) && !is.null(raster) && !is.null(vector) && is.null(other)){
+  
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]])
+
+}else if (is.null(table) && !is.null(raster) && is.null(vector) && is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]])
+                      
+}else if (is.null(table) && !is.null(raster) && !is.null(vector) && is.null(other)){
+   
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]])
+
+}else if (is.null(table) && !is.null(raster) && !is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+                 
+}else if (is.null(table) && is.null(raster) && !is.null(vector) && is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]])
+                      
+}else if (is.null(table) && is.null(raster) && !is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+                      
+}else if (is.null(table) && is.null(raster) && is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+                      
+}else if (!is.null(table) && is.null(raster) && !is.null(vector) && is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]])
+
+}else if (!is.null(table) && is.null(raster) && is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+
+}else if (is.null(table) && !is.null(raster) && is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+
+}else if (!is.null(table) && is.null(raster) && !is.null(vector) && !is.null(other)){
+   
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.vector=vector[[1]],
+                      spatial.vector.name = name_vector,
+                      spatial.vector.description = des_vector[[1]],
+                      spatial.vector.url = urlvector[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])
+
+}else if (!is.null(table) && !is.null(raster) && is.null(vector) && !is.null(other)){
+
+   EMLassemblyline::make_eml(
+                      path="output_template",
+                      data.path="data_files",
+                      eml.path=".", 
+                      dataset.title = title,
+                      temporal.coverage = c(start,end),
+                      data.table=table[[1]],
+                      data.table.name = name_table,
+                      data.table.description = des_table[[1]],
+                      data.table.quote.character = tablequote,
+                      data.table.url = urltable[[1]],
+                      spatial.raster=raster[[1]],
+                      spatial.raster.name = name_raster,
+                      spatial.raster.description = des_raster[[1]],
+                      spatial.raster.url = urlraster[[1]],
+                      other.entity=other[[1]],
+                      other.entity.name = name_other,
+                      other.entity.description = des_other[[1]],
+                      other.entity.url= urlother[[1]])}
+
+issues()
+old.names <- list.files(path=".", pattern=".xml")
+file.rename(from=old.names, to="eml.xml")
+
+
+
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/raster_template.xml	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,56 @@
+<tool id="raster_template" name="Make templates for raster files" version="0.1.1+galaxy0" profile="22.05">
+    <description>attributes for EML metadata creation</description>
+    <requirements>
+        <container type="docker">outils-patrinat.mnhn.fr/metashark:latest</container>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+    
+    #set $table = ""
+    mkdir data_files && 
+    #for $indata in $inputdata
+        ln -s '$indata' 'data_files/${indata.element_identifier}';
+        #set $table += $indata.element_identifier + " ";
+    #end for
+    
+    Rscript 
+         '$__tool_directory__/raster_templates.R'
+         '$table'
+    
+    ]]></command>
+    <inputs>
+         <param name="inputdata" type="data_collection"  collection_type="list"  label="Upload all data files wich are raster files" help= "Input a data collection."/>
+    </inputs>
+    <outputs>
+       <collection name="templates" type="list" label="Raster data templates">
+             <discover_datasets pattern="(?P&lt;designation&gt;.+\.txt)" format="txt"/>
+       </collection>
+    </outputs>
+    <tests>
+        <test>
+           <param name="inputdata">
+              <collection type="list">
+                 <element name="Present_Surface_pH.tif" value="Present_Surface_pH.tif"/>
+              </collection>
+           </param>
+           <output_collection name='templates' type = "list" count="2"/>
+        </test>
+    </tests>
+    <help><![CDATA[
+
+**What it does?**
+--------------------
+This tool is used to produce EAL templates for raster data used to build EML metadata. It produces the following eal files: 
+
+- attibutes_my_raster.txt (describe the attributes of your data table)
+- catvars_my_raster.txt (only if there are one or more catégorical variable in your data table)
+- custom_units.txt (made to describe custom units if there are any)
+
+After that, these files can be edited to add information about your raster data and then be used in the make eml tool to produce EML metadata.   
+
+**How to use it?**
+--------------------
+
+To use this tool, you need to select, in your history a data collection with your raster data (one or more).To do so, you can select the **Upload file** tool, select the *Collection* tab, upload all your templates, click on the *Start* button to integrate the files to Galaxy and then click on *Build*. You will need to choose a name and select *Create collection* to build a collection with your templates.
+You also can upload your files to Galaxy, select them in the history by clicking the *Select items* button, click on the newly appeared box on the right and select *Build dataset list*.
+    ]]></help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/raster_templates.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,22 @@
+#15/12/2023 #SEGUINEAU Pauline 
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+if (length(commandArgs(trailingOnly = TRUE)) > 0) {
+    data_raster <- commandArgs(trailingOnly = TRUE)[1]
+}
+
+#Transform arguments
+
+raster =  strsplit(data_raster," ")
+
+#Make templates to describe data raster
+
+template_raster_attributes(path = ".",data.path= "data_files", raster.file = raster[[1]])
+template_categorical_variables(path = ".", data.path = "data_files")
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/taxo_cov_template.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,47 @@
+#28/11/2023
+#Seguineau Pauline
+#Make taxonomic coverage template
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+args = commandArgs(trailingOnly=TRUE)
+if(length(args)>0){
+  data_taxa <- args[1]
+  taxa_table <- args[2]
+  taxa_col <- as.numeric(args[3])
+  taxa_name_type <- args[4]
+  authority <- as.numeric(args[5])
+  authority2 <- as.numeric(args[6])
+  authority3 <- as.numeric(args[7])
+  empty <- args[8]
+}
+
+#transfom arguments
+taxatable = read.table(data_taxa,header=T,sep="\t")
+taxacol = names(taxatable[taxa_col])
+
+if (authority2 == 0 && authority3==0){
+   authority_f = authority}
+   
+if(authority2 == 0 && authority3 != 0){
+   authority_f = c(authority,authority3)}
+
+if (authority2 !=0 && authority3==0){
+   authority_f = c(authority,authority2)}
+
+if (authority3 !=0 && authority2 !=0){
+   authority_f = c(authority,authority2,authority3)}
+   
+if (empty == "false"){
+   empty = FALSE
+}else if (empty=="true"){
+   empty=TRUE}
+
+
+#Make template
+
+template_taxonomic_coverage(path =".", data.path = "data_files", taxa.table = taxa_table, taxa.col = taxacol, taxa.name.type = taxa_name_type , taxa.authority = authority_f, empty = empty)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Assessing_the_importance_of_field_margins_for_bat_species.xml	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,2074 @@
+<?xml version="1.0" encoding="UTF-8"?><eml:eml xmlns:eml="https://eml.ecoinformatics.org/eml-2.2.0" xmlns:stmml="http://www.xml-cml.org/schema/stmml-1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" packageId="doi:10.48502/hssh-5194" system="unknown" xsi:schemaLocation="https://eml.ecoinformatics.org/eml-2.2.0  https://nis.lternet.edu/schemas/EML/eml-2.2.0/xsd/eml.xsd">
+  <dataset id="dataset-02">
+    <title>Assessing the importance of field margins for bat species and communities in intensive agricultural landscapes - Data</title>
+    <creator>c
+      <individualName>
+        <givenName>Constance</givenName>
+        <givenName/>
+        <surName>Blary</surName>
+      </individualName>
+      <organizationName>CEFE</organizationName>
+      <electronicMailAddress>constance.blary@cefe.cnrs.fr</electronicMailAddress>
+      <userId directory="https://orcid.org">https://orcid.org/0000-0001-6204-9983</userId>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Kévin</givenName>
+        <givenName/>
+        <surName>Barré</surName>
+      </individualName>
+      <organizationName>CESCO MNHN</organizationName>
+      <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+      <userId directory="https://orcid.org">https://orcid.org/0000-0001-5368-4053</userId>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Christian</givenName>
+        <givenName/>
+        <surName>Kerbiriou</surName>
+      </individualName>
+      <organizationName>CESCO</organizationName>
+      <electronicMailAddress>christian.kerbiriou@mnhn.fr</electronicMailAddress>
+      <userId directory="https://orcid.org">https://orcid.org/0000-0001-6080-4762</userId>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Isabelle</givenName>
+        <givenName/>
+        <surName>Le Viol</surName>
+      </individualName>
+      <organizationName>CESCO</organizationName>
+      <electronicMailAddress>isabelle.le-viol@mnhn.fr</electronicMailAddress>
+    </creator>
+    <pubDate>2021-05-25</pubDate>
+    <abstract>
+      <para>Landscape simplification and degradation through agricultural intensification is widely recognized as a main driver of biodiversity loss. In intensively used agricultural landscapes, patches of semi-natural habitats and particularly connections between them are of high importance for many taxa. Vegetated connections like hedgerows are especially important for foraging and commuting of mobile taxa such as bats. However, the interest of another treeless linear habitat – herbaceous field margins – remains unstudied for insectivorous bats. Field margins are nevertheless known as an important habitat for other taxa, including bat prey. Here we assessed the importance of field margins for bats compared to other landscape variables. We measured bat activity based on a repeated passive acoustic monitoring during 17 complete nights in summer on 112 study sites in an intensively used agricultural landscape. Each night, we sampled bat species activity and community metrics (i.e. species richness and community habitat specialization index) at different distances to field margins, and along a gradient of relative density of field margins. To compare field margin effects with other landscape variables, the sampled sites were selected by keeping a large variability in these other variables (land-cover Shannon diversity index, forests, hedgerows, water bodies, main roads, urban areas, grasslands, number of crops and rapeseed percentage). Only Myotis sp. were affected by herbaceous field margins. Specifically, the Myotis group activity decreased with the distance to herbaceous field margins (i.e. towards field crop cores), and positively correlated with relative density of herbaceous field margins, for which the effect size was comparable to other landscape variables. However, other landscape variables such as the proportion of and the distance to forests, the relative density of and the distance to hedgerows or land-cover Shannon diversity index, affected species richness, community specialization index, and bat activity of species from open, edge and narrow-space foragers, including the Myotis group as well. Our results highlight that herbaceous field margins have a positive effect on the activity of narrow-space bat foragers as Myotis species, but do not replace other landscape variables that drive the activity of the whole community.
+</para>
+    </abstract>
+    <keywordSet>
+        <keyword>Acoustic monitoring</keyword>
+        <keyword>Bat community</keyword>
+        <keyword>Farmland biodiversity</keyword>
+        <keyword>Field borders</keyword>
+        <keyword>Habitat specialisation</keyword>
+        <keyword>Landscape composition</keyword>
+        <keywordThesaurus>Keywords</keywordThesaurus>
+    </keywordSet>
+    <intellectualRights>
+      <para>This information is released under the Creative Commons license - Attribution - CC BY (https://creativecommons.org/licenses/by/4.0/). The consumer of these data ("Data User" herein) is required to cite it appropriately in any publication that results from its use. The Data User should realize that these data may be actively used by others for ongoing research and that coordination may be necessary to prevent duplicate publication. The Data User is urged to contact the authors of these data if any questions about methodology or results occur. Where appropriate, the Data User is encouraged to consider collaboration or co-authorship with the authors. The Data User should realize that misinterpretation of data may occur if used out of context of the original study. While substantial efforts are made to ensure the accuracy of data and associated documentation, complete accuracy of data sets cannot be guaranteed. All data are made available "as is." The Data User should be aware, however, that data are updated periodically and it is the responsibility of the Data User to check for new versions of the data. The data authors and the repository where these data were obtained shall not be liable for damages resulting from any use or misinterpretation of the data. Thank you.
+</para>
+    </intellectualRights>
+    <coverage>
+      <geographicCoverage>
+        <geographicDescription>Yvelines - Essonne - Seine et Marne</geographicDescription>
+        <boundingCoordinates>
+          <westBoundingCoordinate>1.60296</westBoundingCoordinate>
+          <eastBoundingCoordinate>3.56409</eastBoundingCoordinate>
+          <northBoundingCoordinate>49.08428</northBoundingCoordinate>
+          <southBoundingCoordinate>48.12266</southBoundingCoordinate>
+        </boundingCoordinates>
+      </geographicCoverage>
+      <temporalCoverage>
+        <rangeOfDates>
+          <beginDate>
+            <calendarDate>2015-07-08</calendarDate>
+          </beginDate>
+          <endDate>
+            <calendarDate>2015-08-02</calendarDate>
+          </endDate>
+        </rangeOfDates>
+      </temporalCoverage>
+    </coverage>
+    <annotation id="kw3">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="biodiversity">http://aims.fao.org/aos/agrovoc/c_33949</valueURI>
+    </annotation>
+    <annotation id="kw4">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="mammals">http://aims.fao.org/aos/agrovoc/c_4560</valueURI>
+    </annotation>
+    <annotation id="kw5">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="chiroptera">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation id="kw55">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="bats">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation id="kw10">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="Landscape">http://www.eionet.europa.eu/gemet/concept/4648</valueURI>
+    </annotation>
+    <annotation id="kw1">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="Ecosystem"> http://www.eionet.europa.eu/gemet/concept/2519</valueURI>
+    </annotation>
+    <annotation id="kw2">
+        <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+        <valueURI label="Animal ecology">http://www.eionet.europa.eu/gemet/concept/420</valueURI>
+    </annotation>
+    <maintenance>
+      <description>ongoing</description>
+    </maintenance>
+    <contact>
+      <individualName>
+        <givenName>Constance</givenName>
+        <givenName>""</givenName>
+        <surName>Blary</surName>
+      </individualName>
+      <organizationName>CEFE</organizationName>
+      <electronicMailAddress>constance.blary@cefe.cnrs.fr</electronicMailAddress>
+              <userId directory="https://orcid.org">https://orcid.org/0000-0001-6204-9983</userId>
+    </contact>
+    <contact>
+      <individualName>
+        <givenName>Kévin</givenName>
+        <givenName>""</givenName>
+        <surName>Barré</surName>
+      </individualName>
+      <organizationName>CESCO MNHN</organizationName>
+      <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+      <userId directory="https://orcid.org">https://orcid.org/0000-0001-5368-4053</userId>
+    </contact>
+    <methods>
+        <methodStep>
+            <description>The aim of the study was to investigate the potential of field margins to support bat activity compared to other landscape variables in agricultural landscapes. As a consequence, we chose the location of sampling sites in a way that limited correlations between field margins and other landscape variables to avoid statistical issues (see Statistical analysis section), and to maximise the gradient of each. The weather was highly stable and favourable to bats throughout the sampling period. We recorded bat activity on 112 sampling sites along a gradient of distances from 0 to 447 m from field margins (median: 60 m, median absolute deviation: 57 m) and along a gradient of relative density of field margins ranging from 0 to 64 m/ha (computed in different sizes of buffers around sampling sites, from 250 m to 4,000 m, see Landscape variable and Statistical analysis sections for more details about buffer sizes). Each night, we sampled simultaneously three to 11 sites at different densities of and distances from field margins, in order to limit potential correlations with temporal variables (i.e. weather, moon). Each site was sampled one time and echolocation calls were recorded on sites separated by at least 230 m from each other to avoid simultaneous recordings (see acoustic sampling section). Recorders were associated with a single microphone throughout the study and were homogeneously distributed between distances to the field margin and relative densities of field margins, in order to limit potential correlations between recorders and field margins variables.</description>
+            <instrumentation>Sampling was carried out over 17 nights from the 8th of July to the 2nd of August 2015, during the seasonal peak in bat activity. Recordings were performed during the entire night, from 30 min before sunset to 30 min after sunrise. Standardized acoustic bat survey was carried out using Song Meter SM2Bat+ and omnidirectional microphones SMX-US (Wildlife Acoustics Inc., Concord, MA, USA) put horizontally at one meter above the ground on a pole and pointed perpendicularly to the field margin. Recording was triggered automatically by ultrasounds between eight and 192 kHz, using a trigger level set to 6 dB Signal Noise Ratio and set to continue recording until two seconds after last trigger event, and a 384 kHz sampling rate, as widely used in many previous studies (e.g. Azam et al., 2016; Millon et al., 2017; Barré et al., 2017, 2019). As it is currently impossible to distinguish individual bats from their echolocation calls, it is not possible to count bat abundance. Instead, we used the number of bat passes recorded during a night as a measure of bat activity (however this metric is correlated to the abundance, see Mimet et al., 2020). We defined a bat pass as one or more echolocation call within a 5-second interval, which is a commonly accepted standard in Europe (Stahlschmidt and Brühl; 2012, Millon et al.; 2015, Kerbiriou et al. 2018; 2019; Put et al., 2019). We used the software TADARIDA (Bas et al., 2017) to automatically detect sound events and assign bat passes (11,324 bat passes for a total of ~450,000 calls) to the most accurate taxonomic level associated to a confidence score calculated by the software (i.e. the probability that a bat pass has been assigned to the right species). Two species groups were firstly constructed in order to limit identification errors: (i) a Myotis group (including Myotis nattereri, Myotis myotis, Myotis mystacinus and Myotis daubentonii) and (ii) a Plecotus group (including Plecotus austriacus and Plecotus auritus). In addition to these species-groups, we considered four species: (i) P. pipistrellus that are edge space foragers, (ii) Nyctalus leisleri and (iii) Nyctalus noctula that are open space foragers, and (iv) Eptesicus serotinus, that are edge space foragers (Robinson and Stebbincs, 1996). Given that automated identification can generate high error rates at species level, we followed the Barré et al. (2019) approach proposing a cautious method to ensure results robustness against automated identification errors. The method allows to model the error rate for each species or group, according to confidence scores of automated identifications provided by the software TADARIDA (Bas et al., 2017). This method allows to perform statistical analyses based on two levels of maximum error rate tolerance: first on a 0.5 maximum error rate tolerance and then by confirming results on a safer threshold of 0.1 maximum error rate tolerance. Indeed, each threshold of error rate tolerated in data involve different caveats which potentially induce biases in acoustic data (i.e. false positives and false negatives). The 0.5 maximum error rate tolerance keeps high number of bat passes for analysis including false positives, while a more restrictive 0.1 threshold limits false positives, but at the cost of discarding more true positives, which thus induce a loss of statistical power. As a consequence, checking the consistence in results whatever the threshold considered ensures robust conclusions (see Barré et al. 2019 for more details).</instrumentation>
+        </methodStep>
+        <sampling>
+            <studyExtent>
+                <description> The study was conducted in France, in the Île-de-France region (Yvelines, Essonne and Seine-et-Marne departments) in an intensively used agricultural landscape. This region is covered by 59% agricultural areas, 22% forests and semi natural areas, 18% artificial surfaces and 1% water bodies (Corine Land Cover data from 2016; https://www.data.gouv.fr/en/datasets/corine-land-cover-occupation-des-sols-en-france). The agricultural areas were dominated by arable land (90%) for intensive cropping (73 % of rapeseed, 7% of wheat, 3% of barley, based on manual mapping during the experiment in a 100 m radius around sampling sites). Crops were harvested before the study between the end of June and the beginning of July.
+We defined field margins as an herbaceous linear structure with only spontaneous vegetation, without fertilizers or pesticides immediately applied, without trees or bushes, 2 ± 1 m wide, and that were surrounding fields. </description>
+            </studyExtent>
+            <samplingDescription>Sampling was carried out over 17 nights from the 8th of July to the 2nd of August 2015, during the seasonal peak in bat activity. Recordings were performed during the entire night, from 30 min before sunset to 30 min after sunrise. Standardized acoustic bat survey was carried out using Song Meter SM2Bat+ and omnidirectional microphones SMX-US (Wildlife Acoustics Inc., Concord, MA, USA) put horizontally at one meter above the ground on a pole and pointed perpendicularly to the field margin. Recording was triggered automatically by ultrasounds between eight and 192 kHz, using a trigger level set to 6 dB Signal Noise Ratio and set to continue recording until two seconds after last trigger event, and a 384 kHz sampling rate, as widely used in many previous studies (e.g. Azam et al., 2016; Millon et al., 2017; Barré et al., 2017, 2019).
+As it is currently impossible to distinguish individual bats from their echolocation calls, it is not possible to count bat abundance. Instead, we used the number of bat passes recorded during a night as a measure of bat activity (however this metric is correlated to the abundance, see Mimet et al., 2020). We defined a bat pass as one or more echolocation call within a 5-second interval, which is a commonly accepted standard in Europe (Stahlschmidt and Brühl; 2012, Millon et al.; 2015, Kerbiriou et al. 2018; 2019; Put et al., 2019).</samplingDescription>
+        </sampling>
+    </methods>
+    <project>
+      <title>Effect of agricultural landscape features on bats</title>
+      <personnel>
+        <individualName>
+          <givenName>Kévin</givenName>
+          <givenName>""</givenName>
+          <surName>Barré</surName>
+        </individualName>
+        <organizationName>CESCO MNHN</organizationName>
+        <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+        <userId directory="https://orcid.org">https://orcid.org/0000-0001-5368-4053</userId>
+        <role>Principal Investigator</role>
+      </personnel>
+      <funding>DIM ASTREA Région Ile-de-France, FRB</funding>
+    </project>
+    <dataTable>
+      <entityName>data_blary_al.tsv</entityName>
+      <entityDescription>Content of data_blary_al.txt</entityDescription>
+      <physical>
+        <objectName>data_blary_al.txt</objectName>
+        <size unit="bytes">79724</size>
+        <authentication method="MD5">189e312d6c6635a7ca21aa1b6c15bda2</authentication>
+        <dataFormat>
+          <textFormat>
+            <numHeaderLines>1</numHeaderLines>
+            <recordDelimiter>\r\n</recordDelimiter>
+            <attributeOrientation>column</attributeOrientation>
+            <simpleDelimited>
+              <fieldDelimiter>	</fieldDelimiter>
+            </simpleDelimited>
+          </textFormat>
+        </dataFormat>
+      </physical>
+      <attributeList>
+        <attribute>
+          <attributeName>Id</attributeName>
+          <attributeDefinition>Sampling site ID</attributeDefinition>
+          <storageType>string</storageType>
+          <measurementScale>
+            <nominal>
+              <nonNumericDomain>
+                <textDomain>
+                  <definition>sampling site ID</definition>
+                </textDomain>
+              </nonNumericDomain>
+            </nominal>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_field_margin</attributeName>
+          <attributeDefinition>Distance to the nearest field margin element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.197097079</minimum>
+                  <maximum exclusive="false">446.7105128</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>NA</code>
+            <codeExplanation>No information</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_hedgerow</attributeName>
+          <attributeDefinition>Distance to the nearest hedgerow element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">26.18609735</minimum>
+                  <maximum exclusive="false">993.9548575</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_forest</attributeName>
+          <attributeDefinition>Distance to the nearest forest element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">35.65219329</minimum>
+                  <maximum exclusive="false">2117.555351</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_road</attributeName>
+          <attributeDefinition>Distance to the nearest road element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">26.78687042</minimum>
+                  <maximum exclusive="false">1906.832346</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_water</attributeName>
+          <attributeDefinition>Distance to the nearest water body element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">293.5477229</minimum>
+                  <maximum exclusive="false">7059.607301</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>dist_urban</attributeName>
+          <attributeDefinition>Distance to the nearest urban element (in meters)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>meter</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">117.752441</minimum>
+                  <maximum exclusive="false">1660.510336</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_250m</attributeName>
+          <attributeDefinition>Relative density of field margins in a 250 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">63.98307757</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_500m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">1.30602297</minimum>
+                  <maximum exclusive="false">56.85356039</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_750m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 750 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">3.76147295</minimum>
+                  <maximum exclusive="false">51.98107287</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_1000m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 1000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">7.016125291</minimum>
+                  <maximum exclusive="false">49.65501534</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_1500m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 1500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">13.19438883</minimum>
+                  <maximum exclusive="false">46.14576092</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_2000m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 2000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">14.31645702</minimum>
+                  <maximum exclusive="false">49.15383992</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_field_margins_4000m</attributeName>
+          <attributeDefinition>Relative density of filed margins in a 4000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">12.0861939</minimum>
+                  <maximum exclusive="false">49.04803019</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_250m</attributeName>
+          <attributeDefinition>Relative density of roads in a 250 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">41.24173899</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_500m</attributeName>
+          <attributeDefinition>Relative density of roads in a 500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">28.67314656</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_750m</attributeName>
+          <attributeDefinition>Relative density of roads in a 750 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">21.52403654</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_1000m</attributeName>
+          <attributeDefinition>Description for density_roads_1000m</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">16.31772774</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_1500m</attributeName>
+          <attributeDefinition>Relative density of roads in a 1500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">14.66196384</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_2000m</attributeName>
+          <attributeDefinition>Relative density of roads in a 2000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.691124942</minimum>
+                  <maximum exclusive="false">15.21731043</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_roads_4000m</attributeName>
+          <attributeDefinition>Relative density of roads in a 4000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">4.415217013</minimum>
+                  <maximum exclusive="false">12.96935098</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_250m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 250 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">29.04454202</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_500m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">30.69898208</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_750m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 750 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">27.45535012</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_1000m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 1000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.018214632</minimum>
+                  <maximum exclusive="false">20.45344062</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_1500m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 1500 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.28226013</minimum>
+                  <maximum exclusive="false">15.24459232</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_2000m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 2000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.793527384</minimum>
+                  <maximum exclusive="false">16.1536311</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>density_hedgerows_4000m</attributeName>
+          <attributeDefinition>Relative density of hedgerows in a 4000 meters buffer around the sampling site (in meters per hectare)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">1.067627189</minimum>
+                  <maximum exclusive="false">12.42166846</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_250m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 250 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">0.855530354</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_500m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 500 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">0.977506236</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_750m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 750 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.009166349</minimum>
+                  <maximum exclusive="false">1.072124368</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_1000m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 1000 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.025382592</minimum>
+                  <maximum exclusive="false">1.123819367</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_1500m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 1500 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.050243126</minimum>
+                  <maximum exclusive="false">1.129956244</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_2000m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 2000 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.066009112</minimum>
+                  <maximum exclusive="false">1.190823677</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>shannon_4000m</attributeName>
+          <attributeDefinition>Land-cover Shannon diversity index in 4000 meters buffer around the sampling site (no unit of measurement)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.188127771</minimum>
+                  <maximum exclusive="false">1.328685868</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_250</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 250 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">46.5648855</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_250m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 250 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">30.25980642</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_250m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 250 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">7.997962303</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_500</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">35.31134598</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_500m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">29.51362363</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_500m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">8.348180199</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_750</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 750 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">23.93162393</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_750m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 750 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">37.17890687</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_750m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 750 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">14.74017887</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_1000</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 1000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">20.70600968</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_1000m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 1000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">39.53725216</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_1000m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 1000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">19.74593269</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_1500</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 1500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.026879439</minimum>
+                  <maximum exclusive="false">13.52712356</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_1500m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 1500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.014150076</minimum>
+                  <maximum exclusive="false">46.80246128</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_1500m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 1500 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.063679846</minimum>
+                  <maximum exclusive="false">28.33451252</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_2000</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 2000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.082766305</minimum>
+                  <maximum exclusive="false">9.971589326</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_2000m</attributeName>
+          <attributeDefinition>Description for forest_2000m</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.008754128</minimum>
+                  <maximum exclusive="false">49.82452231</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_2000m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 2000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.421796535</minimum>
+                  <maximum exclusive="false">25.34798768</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>grassland_4000</attributeName>
+          <attributeDefinition>Percentage of land covered by grassland in different 4000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.174480141</minimum>
+                  <maximum exclusive="false">8.655696087</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>forest_4000m</attributeName>
+          <attributeDefinition>Percentage of land covered by forest in different 4000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.37902</minimum>
+                  <maximum exclusive="false">56.74757214</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>urban_4000m</attributeName>
+          <attributeDefinition>Percentage of land covered by urban area in different 4000 m buffer sizes</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">1.227729864</minimum>
+                  <maximum exclusive="false">18.25776748</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>perc_rapeseed</attributeName>
+          <attributeDefinition>Percentage of rapeseed crops in a 100 m radius around each site at the sampling date</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>percent</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">1</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>nb_crops</attributeName>
+          <attributeDefinition>Number of different crops in a 100 m radius around each site at the sampling date</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>natural</numberType>
+                <bounds>
+                  <minimum exclusive="false">1</minimum>
+                  <maximum exclusive="false">4</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>date</attributeName>
+          <attributeDefinition>Description for date</attributeDefinition>
+          <storageType>date</storageType>
+          <measurementScale>
+            <dateTime>
+              <formatString>YYYY-MM-DD</formatString>
+              <dateTimeDomain/>
+            </dateTime>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute id="x">
+          <attributeName>X</attributeName>
+          <attributeDefinition>Sampling site longitude</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>natural</numberType>
+                <bounds>
+                  <minimum exclusive="false">616338</minimum>
+                  <maximum exclusive="false">742845</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+          <annotation>
+              <propertyURI label="is a">http://www.w3.org/1999/02/22-rdf-syntax-ns#type</propertyURI>
+              <valueURI label="decimalLongitude">http://rs.tdwg.org/dwc/terms/decimalLongitude</valueURI>
+          </annotation>
+        </attribute>
+        <attribute id="y">
+          <attributeName>Y</attributeName>
+          <attributeDefinition>Sampling site latitude</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>natural</numberType>
+                <bounds>
+                  <minimum exclusive="false">6784925</minimum>
+                  <maximum exclusive="false">6847092</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+          <annotation>
+              <propertyURI label="is a">http://www.w3.org/1999/02/22-rdf-syntax-ns#type</propertyURI>
+              <valueURI label="decimalLatitude">http://rs.tdwg.org/dwc/terms/decimalLatitude</valueURI>
+          </annotation>
+        </attribute>
+        <attribute>
+          <attributeName>recorder</attributeName>
+          <attributeDefinition>Recorder ID used for data collection on the sampling site</attributeDefinition>
+          <storageType>string</storageType>
+          <measurementScale>
+            <nominal>
+              <nonNumericDomain>
+                <enumeratedDomain>
+                  <codeDefinition>
+                    <code>10250</code>
+                    <definition>Value: 10250 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>11693</code>
+                    <definition>Value: 11693 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>13289</code>
+                    <definition>Value: 13289 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>13676</code>
+                    <definition>Value: 13676 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>13733</code>
+                    <definition>Value: 13733 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>13740</code>
+                    <definition>Value: 13740 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17232</code>
+                    <definition>Value: 17232 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17329</code>
+                    <definition>Value: 17329 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17573</code>
+                    <definition>Value: 17573 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17578</code>
+                    <definition>Value: 17578 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17598</code>
+                    <definition>Value: 17598 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17601</code>
+                    <definition>Value: 17601 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17607</code>
+                    <definition>Value: 17607 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>17608</code>
+                    <definition>Value: 17608 for attribute: recorder</definition>
+                  </codeDefinition>
+                  <codeDefinition>
+                    <code>3760</code>
+                    <definition>Value: 3760 for attribute: recorder</definition>
+                  </codeDefinition>
+                </enumeratedDomain>
+              </nonNumericDomain>
+            </nominal>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>min_t</attributeName>
+          <attributeDefinition>Minimum temperature recorded on the sampling area during the sampling night (in celsius)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>celsius</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">8.1</minimum>
+                  <maximum exclusive="false">20</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>max_wind</attributeName>
+          <attributeDefinition>Maximum wind speed recorded on the sampling area during the sampling night (in km/h)</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>kilometerPerHour</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">30</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>CSI_ER05</attributeName>
+          <attributeDefinition>Community specialization index calculated from species level activity on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.004968013</minimum>
+                  <maximum exclusive="false">0.241732748</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>CSI_ER01</attributeName>
+          <attributeDefinition>Community specialization index calculated from species level activity on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>real</numberType>
+                <bounds>
+                  <minimum exclusive="false">0.00199574</minimum>
+                  <maximum exclusive="false">0.238529275</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>richness_ER05</attributeName>
+          <attributeDefinition>Species richness calculated from species level activity on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">11</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>richness_ER01</attributeName>
+          <attributeDefinition>Species richness calculated from species level activity on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>dimensionless</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">9</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Nyclei_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">51</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Nyclei_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">49</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Pippip_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">863</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Pippip_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">842</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Eptser_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Epster specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">65</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Eptser_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Epster specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">40</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Nycnoc_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">17</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Nycnoc_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">13</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Myo_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Myo specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">42</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Myo_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Myo specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">33</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Ple_ER05</attributeName>
+          <attributeDefinition>Number of bat passes of Ple specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">8</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+        <attribute>
+          <attributeName>Ple_ER01</attributeName>
+          <attributeDefinition>Number of bat passes of Ple specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold</attributeDefinition>
+          <storageType>float</storageType>
+          <measurementScale>
+            <ratio>
+              <unit>
+                <standardUnit>number</standardUnit>
+              </unit>
+              <numericDomain>
+                <numberType>whole</numberType>
+                <bounds>
+                  <minimum exclusive="false">0</minimum>
+                  <maximum exclusive="false">5</maximum>
+                </bounds>
+              </numericDomain>
+            </ratio>
+          </measurementScale>
+          <missingValueCode>
+            <code>"NA"</code>
+            <codeExplanation>"No information"</codeExplanation>
+          </missingValueCode>
+        </attribute>
+      </attributeList>
+      <numberOfRecords>112</numberOfRecords>
+    </dataTable>
+  </dataset>
+</eml:eml>
Binary file test-data/Present_Surface_pH.tif has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotations.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,10 @@
+id	element	context	subject	predicate_label	predicate_uri	object_label	object_uri
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	biodiversity	http://aims.fao.org/aos/agrovoc/c_33949
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	mammals	http://aims.fao.org/aos/agrovoc/c_4560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	chiroptera	http://aims.fao.org/aos/agrovoc/c_1560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	bats	http://aims.fao.org/aos/agrovoc/c_1560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Landscape	http://www.eionet.europa.eu/gemet/concept/4648
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Ecosystem	http://www.eionet.europa.eu/gemet/concept/2519
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Animal ecology	http://www.eionet.europa.eu/gemet/concept/420
+/data_blary_al.txt/X	/dataTable/attribute	data_blary_al.txt	X	is a	http://www.w3.org/1999/02/22-rdf-syntax-ns#type	decimalLongitude	http://rs.tdwg.org/dwc/terms/decimalLongitude
+/data_blary_al.txt/Y	/dataTable/attribute	data_blary_al.txt	Y	is a	http://www.w3.org/1999/02/22-rdf-syntax-ns#type	decimalLatitude	http://rs.tdwg.org/dwc/terms/decimalLatitude
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/annotations.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,10 @@
+id	element	context	subject	predicate_label	predicate_uri	object_label	object_uri
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	biodiversity	http://aims.fao.org/aos/agrovoc/c_33949
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	mammals	http://aims.fao.org/aos/agrovoc/c_4560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	chiroptera	http://aims.fao.org/aos/agrovoc/c_1560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	bats	http://aims.fao.org/aos/agrovoc/c_1560
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Landscape	http://www.eionet.europa.eu/gemet/concept/4648
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Ecosystem	http://www.eionet.europa.eu/gemet/concept/2519
+/dataset	/dataset	eml	dataset	is about	http://purl.obolibrary.org/obo/IAO_0000136	Animal ecology	http://www.eionet.europa.eu/gemet/concept/420
+/data_blary_al.txt/X	/dataTable/attribute	data_blary_al.txt	X	is a	http://www.w3.org/1999/02/22-rdf-syntax-ns#type	decimalLongitude	http://rs.tdwg.org/dwc/terms/decimalLongitude
+/data_blary_al.txt/Y	/dataTable/attribute	data_blary_al.txt	Y	is a	http://www.w3.org/1999/02/22-rdf-syntax-ns#type	decimalLatitude	http://rs.tdwg.org/dwc/terms/decimalLatitude
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/attributes_data_7.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,7 @@
+attributeName	attributeDefinition	class	unit	dateTimeFormatString	missingValueCode	missingValueCodeExplanation
+LIB_SITE	Description for: LIB_SITE	character	""	""	""	""
+X	Description for: X	numeric	dimensionless	""	""	""
+Y	Description for: Y	numeric	dimensionless	""	""	""
+PROGRAMME	Description for: PROGRAMME	categorical	""	""	""	""
+OPERATEUR_	Description for: OPERATEUR_	categorical	""	""	""	""
+STATUT_DU_	Description for: STATUT_DU_	categorical	""	""	""	""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/attributes_data_blary_al.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,81 @@
+attributeName	attributeDefinition	class	unit	dateTimeFormatString	missingValueCode	missingValueCodeExplanation
+Id	Sampling site ID	character			"NA"	"No information"
+dist_field_margin	Distance to the nearest field margin element (in meters)	numeric	meter		NA	No information
+dist_hedgerow	Distance to the nearest hedgerow element (in meters)	numeric	meter		"NA"	"No information"
+dist_forest	Distance to the nearest forest element (in meters)	numeric	meter		"NA"	"No information"
+dist_road	Distance to the nearest road element (in meters)	numeric	meter		"NA"	"No information"
+dist_water	Distance to the nearest water body element (in meters)	numeric	meter		"NA"	"No information"
+dist_urban	Distance to the nearest urban element (in meters)	numeric	meter		"NA"	"No information"
+density_field_margins_250m	Relative density of field margins in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_500m	Relative density of filed margins in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_750m	Relative density of filed margins in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_1000m	Relative density of filed margins in a 1000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_1500m	Relative density of filed margins in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_2000m	Relative density of filed margins in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_4000m	Relative density of filed margins in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_250m	Relative density of roads in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_500m	Relative density of roads in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_750m	Relative density of roads in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_1000m	Description for density_roads_1000m	numeric	dimensionless		"NA"	"No information"
+density_roads_1500m	Relative density of roads in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_2000m	Relative density of roads in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_4000m	Relative density of roads in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_250m	Relative density of hedgerows in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_500m	Relative density of hedgerows in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_750m	Relative density of hedgerows in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_1000m	Relative density of hedgerows in a 1000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_1500m	Relative density of hedgerows in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_2000m	Relative density of hedgerows in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_4000m	Relative density of hedgerows in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+shannon_250m	Land-cover Shannon diversity index in 250 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_500m	Land-cover Shannon diversity index in 500 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_750m	Land-cover Shannon diversity index in 750 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_1000m	Land-cover Shannon diversity index in 1000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_1500m	Land-cover Shannon diversity index in 1500 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_2000m	Land-cover Shannon diversity index in 2000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_4000m	Land-cover Shannon diversity index in 4000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+grassland_250	Percentage of land covered by grassland in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_250m	Percentage of land covered by forest in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_250m	Percentage of land covered by urban area in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_500	Percentage of land covered by grassland in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_500m	Percentage of land covered by forest in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_500m	Percentage of land covered by urban area in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_750	Percentage of land covered by grassland in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_750m	Percentage of land covered by forest in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_750m	Percentage of land covered by urban area in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_1000	Percentage of land covered by grassland in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_1000m	Percentage of land covered by forest in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_1000m	Percentage of land covered by urban area in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_1500	Percentage of land covered by grassland in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_1500m	Percentage of land covered by forest in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_1500m	Percentage of land covered by urban area in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_2000	Percentage of land covered by grassland in different 2000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_2000m	Description for forest_2000m	numeric	percent		"NA"	"No information"
+urban_2000m	Percentage of land covered by urban area in different 2000 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_4000	Percentage of land covered by grassland in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_4000m	Percentage of land covered by forest in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_4000m	Percentage of land covered by urban area in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+perc_rapeseed	Percentage of rapeseed crops in a 100 m radius around each site at the sampling date	numeric	percent		"NA"	"No information"
+nb_crops	Number of different crops in a 100 m radius around each site at the sampling date	numeric	number		"NA"	"No information"
+date	Description for date	Date		YYYY-MM-DD	"NA"	"No information"
+X	Sampling site longitude	numeric	dimensionless		"NA"	"No information"
+Y	Sampling site latitude	numeric	dimensionless		"NA"	"No information"
+recorder	Recorder ID used for data collection on the sampling site	categorical			"NA"	"No information"
+min_t	Minimum temperature recorded on the sampling area during the sampling night (in celsius)	numeric	celsius		"NA"	"No information"
+max_wind	Maximum wind speed recorded on the sampling area during the sampling night (in km/h)	numeric	kilometerPerHour		"NA"	"No information"
+CSI_ER05	Community specialization index calculated from species level activity on the 0.5 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+CSI_ER01	Community specialization index calculated from species level activity on the 0.1 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+richness_ER05	Species richness calculated from species level activity on the 0.5 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+richness_ER01	Species richness calculated from species level activity on the 0.1 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+Nyclei_ER05	Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nyclei_ER01	Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Pippip_ER05	Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Pippip_ER01	Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Eptser_ER05	Number of bat passes of Epster specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Eptser_ER01	Number of bat passes of Epster specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nycnoc_ER05	Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nycnoc_ER01	Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Myo_ER05	Number of bat passes of Myo specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Myo_ER01	Number of bat passes of Myo specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Ple_ER05	Number of bat passes of Ple specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Ple_ER01	Number of bat passes of Ple specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/attributes_data_blary_al.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,81 @@
+attributeName	attributeDefinition	class	unit	dateTimeFormatString	missingValueCode	missingValueCodeExplanation
+Id	Sampling site ID	character			"NA"	"No information"
+dist_field_margin	Distance to the nearest field margin element (in meters)	numeric	meter		NA	No information
+dist_hedgerow	Distance to the nearest hedgerow element (in meters)	numeric	meter		"NA"	"No information"
+dist_forest	Distance to the nearest forest element (in meters)	numeric	meter		"NA"	"No information"
+dist_road	Distance to the nearest road element (in meters)	numeric	meter		"NA"	"No information"
+dist_water	Distance to the nearest water body element (in meters)	numeric	meter		"NA"	"No information"
+dist_urban	Distance to the nearest urban element (in meters)	numeric	meter		"NA"	"No information"
+density_field_margins_250m	Relative density of field margins in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_500m	Relative density of filed margins in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_750m	Relative density of filed margins in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_1000m	Relative density of filed margins in a 1000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_1500m	Relative density of filed margins in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_2000m	Relative density of filed margins in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_field_margins_4000m	Relative density of filed margins in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_250m	Relative density of roads in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_500m	Relative density of roads in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_750m	Relative density of roads in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_1000m	Description for density_roads_1000m	numeric	dimensionless		"NA"	"No information"
+density_roads_1500m	Relative density of roads in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_2000m	Relative density of roads in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_roads_4000m	Relative density of roads in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_250m	Relative density of hedgerows in a 250 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_500m	Relative density of hedgerows in a 500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_750m	Relative density of hedgerows in a 750 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_1000m	Relative density of hedgerows in a 1000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_1500m	Relative density of hedgerows in a 1500 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_2000m	Relative density of hedgerows in a 2000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+density_hedgerows_4000m	Relative density of hedgerows in a 4000 meters buffer around the sampling site (in meters per hectare)	numeric	dimensionless		"NA"	"No information"
+shannon_250m	Land-cover Shannon diversity index in 250 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_500m	Land-cover Shannon diversity index in 500 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_750m	Land-cover Shannon diversity index in 750 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_1000m	Land-cover Shannon diversity index in 1000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_1500m	Land-cover Shannon diversity index in 1500 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_2000m	Land-cover Shannon diversity index in 2000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+shannon_4000m	Land-cover Shannon diversity index in 4000 meters buffer around the sampling site (no unit of measurement)	numeric	dimensionless		"NA"	"No information"
+grassland_250	Percentage of land covered by grassland in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_250m	Percentage of land covered by forest in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_250m	Percentage of land covered by urban area in different 250 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_500	Percentage of land covered by grassland in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_500m	Percentage of land covered by forest in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_500m	Percentage of land covered by urban area in different 500 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_750	Percentage of land covered by grassland in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_750m	Percentage of land covered by forest in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_750m	Percentage of land covered by urban area in different 750 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_1000	Percentage of land covered by grassland in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_1000m	Percentage of land covered by forest in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_1000m	Percentage of land covered by urban area in different 1000 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_1500	Percentage of land covered by grassland in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_1500m	Percentage of land covered by forest in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_1500m	Percentage of land covered by urban area in different 1500 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_2000	Percentage of land covered by grassland in different 2000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_2000m	Description for forest_2000m	numeric	percent		"NA"	"No information"
+urban_2000m	Percentage of land covered by urban area in different 2000 m buffer sizes	numeric	percent		"NA"	"No information"
+grassland_4000	Percentage of land covered by grassland in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+forest_4000m	Percentage of land covered by forest in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+urban_4000m	Percentage of land covered by urban area in different 4000 m buffer sizes	numeric	percent		"NA"	"No information"
+perc_rapeseed	Percentage of rapeseed crops in a 100 m radius around each site at the sampling date	numeric	percent		"NA"	"No information"
+nb_crops	Number of different crops in a 100 m radius around each site at the sampling date	numeric	number		"NA"	"No information"
+date	Description for date	Date		YYYY-MM-DD	"NA"	"No information"
+X	Sampling site longitude	numeric	dimensionless		"NA"	"No information"
+Y	Sampling site latitude	numeric	dimensionless		"NA"	"No information"
+recorder	Recorder ID used for data collection on the sampling site	categorical			"NA"	"No information"
+min_t	Minimum temperature recorded on the sampling area during the sampling night (in celsius)	numeric	celsius		"NA"	"No information"
+max_wind	Maximum wind speed recorded on the sampling area during the sampling night (in km/h)	numeric	kilometerPerHour		"NA"	"No information"
+CSI_ER05	Community specialization index calculated from species level activity on the 0.5 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+CSI_ER01	Community specialization index calculated from species level activity on the 0.1 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+richness_ER05	Species richness calculated from species level activity on the 0.5 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+richness_ER01	Species richness calculated from species level activity on the 0.1 maximum error rate tolerance threshold	numeric	dimensionless		"NA"	"No information"
+Nyclei_ER05	Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nyclei_ER01	Number of bat passes of Nyclei specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Pippip_ER05	Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Pippip_ER01	Number of bat passes of Pippip specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Eptser_ER05	Number of bat passes of Epster specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Eptser_ER01	Number of bat passes of Epster specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nycnoc_ER05	Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Nycnoc_ER01	Number of bat passes of Nycnoc specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Myo_ER05	Number of bat passes of Myo specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Myo_ER01	Number of bat passes of Myo specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Ple_ER05	Number of bat passes of Ple specie or group recorded during the sampling night on the 0.5 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
+Ple_ER01	Number of bat passes of Ple specie or group recorded during the sampling night on the 0.1 maximum error rate tolerance threshold	numeric	number		"NA"	"No information"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/catvars_data_7.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,13 @@
+attributeName	code	definition
+PROGRAMME	DCE	Value: DCE for attribute: PROGRAMME
+PROGRAMME	ELV	Value: ELV for attribute: PROGRAMME
+PROGRAMME	DCE/ELV	Value: DCE/ELV for attribute: PROGRAMME
+PROGRAMME	REBENT	Value: REBENT for attribute: PROGRAMME
+PROGRAMME	REBENT/DCE	Value: REBENT/DCE for attribute: PROGRAMME
+OPERATEUR_	MNHN CC	Value: MNHN CC for attribute: OPERATEUR_
+OPERATEUR_	Station de Wimer	Value: Station de Wimer for attribute: OPERATEUR_
+OPERATEUR_	Ifremer Anglet	Value: Ifremer Anglet for attribute: OPERATEUR_
+OPERATEUR_	Bio-Littoral	Value: Bio-Littoral for attribute: OPERATEUR_
+OPERATEUR_	Ecosub	Value: Ecosub for attribute: OPERATEUR_
+STATUT_DU_	actif	Value: actif for attribute: STATUT_DU_
+STATUT_DU_	inactif	Value: inactif for attribute: STATUT_DU_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/catvars_data_blary_al.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,16 @@
+attributeName	code	definition
+recorder	10250	Value: 10250 for attribute: recorder
+recorder	11693	Value: 11693 for attribute: recorder
+recorder	13289	Value: 13289 for attribute: recorder
+recorder	13676	Value: 13676 for attribute: recorder
+recorder	13733	Value: 13733 for attribute: recorder
+recorder	13740	Value: 13740 for attribute: recorder
+recorder	17232	Value: 17232 for attribute: recorder
+recorder	17329	Value: 17329 for attribute: recorder
+recorder	17573	Value: 17573 for attribute: recorder
+recorder	17578	Value: 17578 for attribute: recorder
+recorder	17598	Value: 17598 for attribute: recorder
+recorder	17601	Value: 17601 for attribute: recorder
+recorder	17607	Value: 17607 for attribute: recorder
+recorder	17608	Value: 17608 for attribute: recorder
+recorder	3760	Value: 3760 for attribute: recorder
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/catvars_data_blary_al.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,16 @@
+attributeName	code	definition
+recorder	10250	Value: 10250 for attribute: recorder
+recorder	11693	Value: 11693 for attribute: recorder
+recorder	13289	Value: 13289 for attribute: recorder
+recorder	13676	Value: 13676 for attribute: recorder
+recorder	13733	Value: 13733 for attribute: recorder
+recorder	13740	Value: 13740 for attribute: recorder
+recorder	17232	Value: 17232 for attribute: recorder
+recorder	17329	Value: 17329 for attribute: recorder
+recorder	17573	Value: 17573 for attribute: recorder
+recorder	17578	Value: 17578 for attribute: recorder
+recorder	17598	Value: 17598 for attribute: recorder
+recorder	17601	Value: 17601 for attribute: recorder
+recorder	17607	Value: 17607 for attribute: recorder
+recorder	17608	Value: 17608 for attribute: recorder
+recorder	3760	Value: 3760 for attribute: recorder
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/custom_units.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,1 @@
+id	unitType	parentSI	multiplierToSI	description
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/data_7.GeoJSON	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,72 @@
+{
+"type": "FeatureCollection",
+"name": "shapefile",
+"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
+"features": [
+{ "type": "Feature", "properties": { "LIB_SITE": "Rohein", "X": -2.630417, "Y": 48.64695, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.630417, 48.64695 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Goue Vas", "X": -2.636567, "Y": 47.253417, "PROGRAMME": "ELV", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -2.636567, 47.253417 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Grand Coin", "X": -3.004233, "Y": 47.407783, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.004233, 47.407783 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Gaouac'h", "X": -4.398067, "Y": 47.807367, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.398067, 47.807367 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Pierres Noires", "X": -3.2159, "Y": 47.598067, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.2159, 47.598067 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Ile Dumet", "X": -2.623133, "Y": 47.408667, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.623133, 47.408667 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Bonen", "X": -2.65305, "Y": 47.303917, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.65305, 47.303917 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Cancavale", "X": -2.018067, "Y": 48.604633, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.018067, 48.604633 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Haie de la Conch‚e", "X": -2.045717, "Y": 48.687067, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.045717, 48.687067 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Vieux Banc", "X": -2.167383, "Y": 48.699133, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.167383, 48.699133 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Kein an duono", "X": -3.145533, "Y": 48.889183, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -3.145533, 48.889183 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Moguedhier", "X": -3.056567, "Y": 48.838983, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.056567, 48.838983 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Pointe du Paon", "X": -2.984967, "Y": 48.866383, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.984967, 48.866383 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Squ‚ouel", "X": -3.474583, "Y": 48.837417, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.474583, 48.837417 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Roc'h Mignon", "X": -3.5768, "Y": 48.756183, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.5768, 48.756183 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Roc'h Parou", "X": -3.620167, "Y": 48.715667, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.620167, 48.715667 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Triagoz", "X": -3.6466, "Y": 48.871267, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -3.6466, 48.871267 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "La BarriŠre", "X": -3.51345, "Y": 48.888767, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.51345, 48.888767 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Corbeau", "X": -3.888267, "Y": 48.6769, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.888267, 48.6769 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Penven", "X": -4.005867, "Y": 48.759633, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.005867, 48.759633 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Œles de la croix", "X": -4.603867, "Y": 48.615483, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.603867, 48.615483 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Liniou", "X": -4.8077, "Y": 48.490233, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.8077, 48.490233 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Morvan", "X": -4.585767, "Y": 48.638567, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -4.585767, 48.638567 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Fort de la Fraternit‚", "X": -4.577333, "Y": 48.3096, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.577333, 48.3096 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Gorle Vihan", "X": -5.043467, "Y": 48.47205, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -5.043467, 48.47205 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Ile Ronde", "X": -4.4634, "Y": 48.32465, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.4634, 48.32465 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Ar Forc'h Vihan", "X": -5.141717, "Y": 48.445367, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -5.141717, 48.445367 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Ile de l'Aber", "X": -4.437717, "Y": 48.221833, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.437717, 48.221833 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Pointe du Van", "X": -4.717133, "Y": 48.066083, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.717133, 48.066083 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Bluiniers", "X": -4.063533, "Y": 47.722467, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.063533, 47.722467 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Linuen", "X": -3.96295, "Y": 47.844217, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.96295, 47.844217 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "les Poulains", "X": -4.056917, "Y": 47.793583, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -4.056917, 47.793583 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Pen a Men", "X": -3.951233, "Y": 47.721667, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.951233, 47.721667 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Trou d'Enfer", "X": -3.465867, "Y": 47.621317, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.465867, 47.621317 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Bastresse Sud", "X": -3.36735, "Y": 47.681817, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.36735, 47.681817 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Magou‰r Nord", "X": -3.210717, "Y": 47.661117, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.210717, 47.661117 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Tourelle de Gr‚gam", "X": -2.9167, "Y": 47.56565, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.9167, 47.56565 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Pointe du Grand Guet", "X": -3.249933, "Y": 47.316767, "PROGRAMME": "REBENT\/DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.249933, 47.316767 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Er Pondeux", "X": -3.074467, "Y": 47.452117, "PROGRAMME": "REBENT", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -3.074467, 47.452117 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Wissant", "X": 1.676667, "Y": 50.912333, "PROGRAMME": "DCE", "OPERATEUR_": "Station de Wimer", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ 1.676667, 50.912333 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Audresselles", "X": 1.5845, "Y": 50.832833, "PROGRAMME": "DCE", "OPERATEUR_": "Station de Wimer", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ 1.5845, 50.832833 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Saint Aubin", "X": -0.42885, "Y": 49.352833, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -0.42885, 49.352833 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Tatihou", "X": -1.231933, "Y": 49.585867, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.231933, 49.585867 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Cap Levi", "X": -1.467817, "Y": 49.690883, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.467817, 49.690883 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Cap de Flamanville", "X": -1.894817, "Y": 49.529033, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.894817, 49.529033 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Ecrehou", "X": -1.937067, "Y": 49.2723, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.937067, 49.2723 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Chausey", "X": -1.85205, "Y": 48.865067, "PROGRAMME": "DCE", "OPERATEUR_": "MNHN CC", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.85205, 48.865067 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Guetary Sud", "X": -1.618, "Y": 43.428583, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.618, 43.428583 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Les Jumeaux", "X": -1.756583, "Y": 43.385567, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.756583, 43.385567 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Soccoa", "X": -1.689, "Y": 43.396667, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.689, 43.396667 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Le Pilier", "X": -2.377417, "Y": 47.045083, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.377417, 47.045083 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Yeu Basse Flore", "X": -2.40571, "Y": 46.7322, "PROGRAMME": "DCE", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.40571, 46.7322 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "La Vigie", "X": -2.01735, "Y": 46.721367, "PROGRAMME": "DCE", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.01735, 46.721367 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Phare des baleines", "X": -1.592167, "Y": 46.2476, "PROGRAMME": "DCE", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -1.592167, 46.2476 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Guetary Nord", "X": -1.60625, "Y": 43.4289, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -1.60625, 43.4289 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Viviers Basques", "X": -1.712017, "Y": 43.389367, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -1.712017, 43.389367 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Port Vieux", "X": -1.5717, "Y": 43.483133, "PROGRAMME": "DCE", "OPERATEUR_": "Ifremer Anglet", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -1.5717, 43.483133 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Dielette", "X": -1.869833, "Y": 49.550517, "PROGRAMME": "DCE", "OPERATEUR_": "Ecosub", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -1.869833, 49.550517 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Gouville", "X": -1.648583, "Y": 49.107267, "PROGRAMME": "DCE", "OPERATEUR_": "Ecosub", "STATUT_DU_": "inactif" }, "geometry": { "type": "Point", "coordinates": [ -1.648583, 49.107267 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Le Croisic SR", "X": -2.559867, "Y": 47.30305, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.559867, 47.30305 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Penchateau SR", "X": -2.412467, "Y": 47.256833, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.412467, 47.256833 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "Baguenaud SR", "X": -2.35355, "Y": 47.232017, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.35355, 47.232017 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "La Banche Nord SR", "X": -2.4672, "Y": 47.184617, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.4672, 47.184617 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "La Pointe Saint Gildas", "X": -2.253433, "Y": 47.134083, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.253433, 47.134083 ] } },
+{ "type": "Feature", "properties": { "LIB_SITE": "La Banche Sud SR", "X": -2.467883, "Y": 47.17335, "PROGRAMME": "DCE\/ELV", "OPERATEUR_": "Bio-Littoral", "STATUT_DU_": "actif" }, "geometry": { "type": "Point", "coordinates": [ -2.467883, 47.17335 ] } }
+]
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/datafile_1.tsv	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,113 @@
+Id	density_boats	distance_coast	percentage_turbidity	nb_individual	recorder	min_t	max_wind
+ID1	0	7.083851986	1	1	13740	9	13
+ID2	0	5.057419245	1	1	3760	11.7	15
+ID3	0	14.81271925	1	1	17598	9	13
+ID4	23.38130966	17.39474876	0	1	17607	12.8	24
+ID5	0	13.8788222	1	1	17608	14.3	17
+ID6	0	20.55593297	1	1	13733	20	17
+ID7	0	5.228906117	1	1	10250	14.3	30
+ID8	0	8.18336163	0.963336783	2	13740	11.7	15
+ID9	0	14.77478497	1	1	13733	11.7	15
+ID10	0	18.23789045	1	1	17573	9	13
+ID11	0	30.97770737	0.934057759	2	17608	8.1	13
+ID12	0	14.72135785	0	2	13733	8.1	13
+ID13	0	26.97792869	1	1	17578	8.1	13
+ID14	0	8.63834361	1	1	17329	11.7	15
+ID15	23.42372625	2.371250707	0.611485317	2	17232	14.3	30
+ID16	0	2.058590657	1	1	NA	11.7	15
+ID17	0	14.5557442	1	1	11693	14.3	17
+ID18	0	15.31628381	0.484376584	2	10250	14.2	9
+ID19	22.68310089	18.12266606	1	1	13733	16.9	13
+ID20	0	10.71630644	0.946424061	2	17608	NA	NA
+ID21	0	7.492501839	1	1	17608	14.3	30
+ID22	0	2.455167732	1	1	17578	8.1	13
+ID23	0	0.215005092	0.619357094	2	17608	13.3	0
+ID24	0	20.5942275	0.530977409	2	17573	12.8	24
+ID25	0	0.00565931	1	1	10250	9	13
+ID26	0	4.61669024	1	1	3760	8.1	13
+ID27	0	0.650746944	1	1	13289	NA	NA
+ID28	11.55094443	4.256523462	0.534748923	2	17608	17.4	15
+ID29	25.29249263	0.333785924	0	3	11693	16.9	13
+ID30	5.659985665	3.927116342	1	1	17578	16.9	13
+ID31	0	0.011314137	0	2	13740	20	17
+ID32	0	6.724401426	0.262229612	3	17578	8.5	7
+ID33	0	10.20546782	0.456408314	2	13676	17.8	13
+ID34	0	0.005662514	1	1	13289	9	13
+ID35	0	12.50424544	1	1	13733	13.3	0
+ID36	41.24173899	0.028288543	0	2	17607	NA	NA
+ID37	0	0.707453733	0	2	13733	17.8	13
+ID38	7.278017273	8.411585021	0.521433594	2	17601	17.4	15
+ID39	26.46665163	3.174693	1	1	17598	11.7	15
+ID40	21.65723654	8.846001472	0.672489759	2	17232	9	13
+ID41	0	7.296088753	0.033790965	2	17601	9	13
+ID42	0	0.848848396	0	3	17608	17.4	14
+ID43	0	17.47693701	1	1	NA	8.1	13
+ID44	0	8.040770102	1	1	17329	8.1	13
+ID45	0	9.227200724	1	1	17607	8.1	13
+ID46	0	4.089829166	0	1	17607	17.4	15
+ID47	16.24258106	12.9081546	0.519677866	2	17232	14.3	17
+ID48	0	28.17682685	0	3	13733	14.2	9
+ID49	0	11.13752122	0.568145458	2	17329	12.8	24
+ID50	0	12.15482119	0.744442086	2	13676	17.4	14
+ID51	0	1.075147125	0.126547756	2	17329	17.8	13
+ID52	0	0.639429606	0.318501019	3	17573	17.8	13
+ID53	0	11.34563151	1	1	13289	9	13
+ID54	0	6.070721358	1	1	11693	8.1	13
+ID55	0	2.534940304	1	1	3760	NA	NA
+ID56	0	0	1	1	17608	14.9	13
+ID57	23.6734518	9.73526417	1	1	13733	14.9	13
+ID58	22.77461434	2.30834512	0	2	3760	17.4	15
+ID59	0	9.034849513	1	1	NA	14.3	30
+ID60	0	1.61299451	1	1	17598	8.1	13
+ID61	0	1.550212164	1	1	17601	8.1	13
+ID62	16.6417688	0.198064626	1	1	13676	13.3	0
+ID63	0	0.147167035	0.503759276	2	13740	14.9	13
+ID64	0	1.126075147	1	1	17329	14.2	9
+ID65	0	1.166213768	0.486555056	2	10250	17.4	14
+ID66	0	37.17890687	0.241246715	3	11693	12.3	11
+ID67	0	1.01318843	1	1	NA	11.7	15
+ID68	0	14.97426034	0.513275979	3	17578	8.5	7
+ID69	0	0.050933786	1	1	10250	13.3	0
+ID70	0	1.60733488	1	1	11693	13.3	0
+ID71	0	0.15274085	0.616607437	2	11693	14.9	13
+ID72	0	4.745186863	0.427826338	3	17578	14.9	13
+ID73	0	0.005658029	1	1	13289	17.4	15
+ID74	20.10097018	1.120479882	1	1	17329	9	13
+ID75	0	1.833512535	1	1	11693	9	13
+ID76	0	1.964892412	1	1	3760	14.9	13
+ID77	0	1.024508972	1	1	17598	13.3	0
+ID78	13.02008677	2.446206116	0	2	17601	17.8	13
+ID79	0	5.849408836	0.506514891	2	17601	12.3	11
+ID80	0	0.82602546	1	1	17607	20	17
+ID81	0	6.632335465	1	1	13733	17.8	13
+ID82	9.774097667	2.083923212	0.147137616	2	17329	17.4	14
+ID83	0	0.843046283	1	1	17598	11.7	15
+ID84	0	17.16743054	1	1	3760	9	13
+ID85	0	2.347816248	1	1	17607	13.3	0
+ID86	0	2.089467724	1	1	17608	8.1	13
+ID87	14.70497236	1.782279054	1	1	17329	8.1	13
+ID88	0	1.828267391	1	1	10250	8.1	13
+ID89	19.54258479	2.829334541	1	1	3760	14.3	30
+ID90	22.89867383	0.50376408	1	1	17573	14.3	30
+ID91	0	7.486419194	1	1	13676	14.2	9
+ID92	0	4.612337295	1	1	17601	11.7	15
+ID93	0	20.34521788	1	1	17232	11.7	15
+ID94	0	13.69731259	0.558754442	2	13289	14.3	17
+ID95	0	0.481041313	0.601822162	2	17607	14.3	17
+ID96	0	19.55721647	0.856473518	3	17232	16.9	13
+ID97	0	9.467489106	1	1	10250	17.4	15
+ID98	0	22.78746039	0.460271388	3	11693	14.3	30
+ID99	0	8.380520951	0.769578171	2	17607	9	13
+ID100	32.43763517	0.486507892	0.297384797	4	17573	12.3	11
+ID101	39.87341993	18.47598574	0.377696294	3	17329	NA	NA
+ID102	0	1.482655198	0.420523151	2	17598	NA	NA
+ID103	0	1.188455008	1	1	13289	8.1	13
+ID104	0	2.981949867	1	1	17232	13.3	0
+ID105	6.048310547	0.06224536	1	1	17578	17.4	14
+ID106	0	0.067957866	1	1	17232	17.4	14
+ID107	0	0.305516266	0	1	17598	17.4	14
+ID108	0	1.375212224	0.512278187	2	17601	20	17
+ID109	23.18323585	0.045282164	0.355925541	2	13676	17.4	14
+ID110	0	0	0.599181014	2	17232	13.3	0
+ID111	0	0.050922259	1	1	17329	14.9	13
+ID112	0	0.763920326	1	1	13740	13.3	0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/entities.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,4 @@
+objectName	variable	value
+data_7.GeoJSON	geometry	Point
+data_7.GeoJSON	geometricObjectCount	65
+data_7.GeoJSON	spatialReference	GCS_WGS_1984
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/geographic_coverage.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,2 @@
+geographicDescription	northBoundingCoordinate	southBoundingCoordinate	eastBoundingCoordinate	westBoundingCoordinate
+Yvelines - Essonne - Seine et Marne	49.08428	48.12266	3.56409	1.60296
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/geographic_coverage.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,5 @@
+geographicDescription	northBoundingCoordinate	southBoundingCoordinate	eastBoundingCoordinate	westBoundingCoordinate
+1	-65.999946	-65.999946	142.3360535	142.3360535
+2	-66.394359	-66.394359	140.4840125	140.4840125
+3	-66.023545	-66.023545	142.745584	142.745584
+4	-66.3379125	-66.3379125	144.011634	144.011634
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/keywords.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,7 @@
+keyword	keywordThesaurus
+Acoustic monitoring	Keywords
+Bat community	Keywords
+Farmland biodiversity	Keywords
+Field borders	Keywords
+Habitat specialisation	Keywords
+Landscape composition	Keywords
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/keywords.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,7 @@
+keyword	keywordThesaurus
+Acoustic monitoring	Keywords
+Bat community	Keywords
+Farmland biodiversity	Keywords
+Field borders	Keywords
+Habitat specialisation	Keywords
+Landscape composition	Keywords
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/metadataoutput.xml	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<eml:eml xmlns:eml="https://eml.ecoinformatics.org/eml-2.2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:stmml="http://www.xml-cml.org/schema/stmml-1.2" packageId="0a0472ad-2e8f-412f-8e95-ba84b7cc9996" xsi:schemaLocation="https://eml.ecoinformatics.org/eml-2.2.0/eml.xsd https://eml.ecoinformatics.org/eml-2.2.0/eml.xsd" system="unknown">
+  <dataset id="dataset">
+    <creator>
+      <individualName>
+        <givenName>Constance</givenName>
+        <surName>Blary</surName>
+      </individualName>
+      <organizationName>CEFE</organizationName>
+      <electronicMailAddress>constance.blary@cefe.cnrs.fr</electronicMailAddress>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Kévin</givenName>
+        <surName>Barré</surName>
+      </individualName>
+      <organizationName>CESCO MNHN</organizationName>
+      <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Christian</givenName>
+        <surName>Kerbiriou</surName>
+      </individualName>
+      <organizationName>CESCO</organizationName>
+      <electronicMailAddress>christian.kerbiriou@mnhn.fr</electronicMailAddress>
+    </creator>
+    <creator>
+      <individualName>
+        <givenName>Isabelle</givenName>
+        <surName>Le Viol</surName>
+      </individualName>
+      <organizationName>CESCO</organizationName>
+      <electronicMailAddress>isabelle.le-viol@mnhn.fr</electronicMailAddress>
+    </creator>
+    <pubDate>2023-07-23</pubDate>
+    <keywordSet>
+      <keyword>Acoustic monitoring</keyword>
+      <keyword>Bat community</keyword>
+      <keyword>Farmland biodiversity</keyword>
+      <keyword>Field borders</keyword>
+      <keyword>Habitat specialisation</keyword>
+      <keyword>Landscape composition</keyword>
+      <keywordThesaurus>Keywords</keywordThesaurus>
+    </keywordSet>
+    <coverage>
+      <geographicCoverage>
+        <geographicDescription>Yvelines - Essonne - Seine et Marne</geographicDescription>
+        <boundingCoordinates>
+          <westBoundingCoordinate>1.60296</westBoundingCoordinate>
+          <eastBoundingCoordinate>3.56409</eastBoundingCoordinate>
+          <northBoundingCoordinate>49.08428</northBoundingCoordinate>
+          <southBoundingCoordinate>48.12266</southBoundingCoordinate>
+        </boundingCoordinates>
+      </geographicCoverage>
+    </coverage>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="biodiversity">http://aims.fao.org/aos/agrovoc/c_33949</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="mammals">http://aims.fao.org/aos/agrovoc/c_4560</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="chiroptera">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="bats">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Landscape">http://www.eionet.europa.eu/gemet/concept/4648</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Ecosystem">http://www.eionet.europa.eu/gemet/concept/2519</valueURI>
+    </annotation>
+    <annotation>
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Animal ecology">http://www.eionet.europa.eu/gemet/concept/420</valueURI>
+    </annotation>
+    <contact>
+      <individualName>
+        <givenName>Constance</givenName>
+        <surName>Blary</surName>
+      </individualName>
+      <organizationName>CEFE</organizationName>
+      <electronicMailAddress>constance.blary@cefe.cnrs.fr</electronicMailAddress>
+    </contact>
+    <contact>
+      <individualName>
+        <givenName>Kévin</givenName>
+        <surName>Barré</surName>
+      </individualName>
+      <organizationName>CESCO MNHN</organizationName>
+      <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+    </contact>
+    <project>
+      <title>Effect of agricultural landscape features on bats</title>
+      <personnel>
+        <individualName>
+          <givenName>Kévin</givenName>
+          <surName>Barré</surName>
+        </individualName>
+        <organizationName>CESCO MNHN</organizationName>
+        <electronicMailAddress>kevin.barre@mnhn.fr</electronicMailAddress>
+        <role>Principal Investigator</role>
+      </personnel>
+      <funding>DIM ASTREA Région Ile-de-France, FRB</funding>
+    </project>
+  </dataset>
+  <annotations>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="biodiversity">http://aims.fao.org/aos/agrovoc/c_33949</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="mammals">http://aims.fao.org/aos/agrovoc/c_4560</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="chiroptera">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="bats">http://aims.fao.org/aos/agrovoc/c_1560</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Landscape">http://www.eionet.europa.eu/gemet/concept/4648</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Ecosystem">http://www.eionet.europa.eu/gemet/concept/2519</valueURI>
+    </annotation>
+    <annotation references="dataset">
+      <propertyURI label="is about">http://purl.obolibrary.org/obo/IAO_0000136</propertyURI>
+      <valueURI label="Animal ecology">http://www.eionet.europa.eu/gemet/concept/420</valueURI>
+    </annotation>
+  </annotations>
+  <additionalMetadata>
+    <metadata>
+      <emlEditor>
+        <app>EMLassemblyline</app>
+        <release>3.5.5</release>
+      </emlEditor>
+    </metadata>
+  </additionalMetadata>
+</eml:eml>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/personnel.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,8 @@
+givenName	middleInitial	surName	organizationName	electronicMailAddress	userId	role	projectTitle	fundingAgency	fundingNumber
+Constance		Blary	CEFE	constance.blary@cefe.cnrs.fr	https://orcid.org/0000-0001-6204-9983	creator			
+Kévin		Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	creator			
+Christian		Kerbiriou	CESCO	christian.kerbiriou@mnhn.fr	https://orcid.org/0000-0001-6080-4762	creator			
+Isabelle		Le Viol	CESCO	isabelle.le-viol@mnhn.fr		creator			
+Constance	""	Blary	CEFE	constance.blary@cefe.cnrs.fr	https://orcid.org/0000-0001-6204-9983	contact			
+Kévin	""	Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	contact			
+Kévin	""	Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	PI	Effect of agricultural landscape features on bats	DIM ASTREA Région Ile-de-France, FRB	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/personnel.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,8 @@
+givenName	middleInitial	surName	organizationName	electronicMailAddress	userId	role	projectTitle	fundingAgency	fundingNumber
+Constance		Blary	CEFE	constance.blary@cefe.cnrs.fr	https://orcid.org/0000-0001-6204-9983	creator			
+Kévin		Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	creator			
+Christian		Kerbiriou	CESCO	christian.kerbiriou@mnhn.fr	https://orcid.org/0000-0001-6080-4762	creator			
+Isabelle		Le Viol	CESCO	isabelle.le-viol@mnhn.fr		creator			
+Constance	""	Blary	CEFE	constance.blary@cefe.cnrs.fr	https://orcid.org/0000-0001-6204-9983	contact			
+Kévin	""	Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	contact			
+Kévin	""	Barré	CESCO MNHN	kevin.barre@mnhn.fr	https://orcid.org/0000-0001-5368-4053	PI	Effect of agricultural landscape features on bats	DIM ASTREA Région Ile-de-France, FRB	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/taxa.tsv	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,5 @@
+taxa	site
+Achelia_sp	1
+Achelia_spicata	2
+Achelia_suflata	2
+Ammothea_adunca	3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/taxonomic_coverage.txt	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,5 @@
+name	name_type	name_resolved	authority_system	authority_id
+Achelia_sp	scientific	Achelia	GBIF Backbone Taxonomy	2118396
+Achelia_spicata	scientific	Achelia spicata	GBIF Backbone Taxonomy	4338694
+Achelia_suflata	scientific	Achelia suflata	GBIF Backbone Taxonomy	NA
+Ammothea_adunca	scientific	Ammothea adunca	GBIF Backbone Taxonomy	5720487
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test-geocov.tabular	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,5 @@
+site	lat	long
+1	-65.999946	142.3360535
+2	-66.394359	140.4840125
+3	-66.023545	142.745584
+4	-66.3379125	144.011634
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vector_templates.R	Sat Dec 23 20:40:04 2023 +0000
@@ -0,0 +1,22 @@
+#15/12/2023 #SEGUINEAU Pauline 
+
+#Load packages
+
+library(EMLassemblyline)
+
+#Load arguments
+
+if (length(commandArgs(trailingOnly = TRUE)) > 0) {
+    data_vector <- commandArgs(trailingOnly = TRUE)[1]   
+}
+
+#Transform arguments
+
+vector =  strsplit(data_vector," ")
+
+#Make templates to describe data raster
+
+template_vector_attributes(path = ".",data.path= "data_files", vector.file = vector[[1]])
+template_categorical_variables(path = ".", data.path = "data_files")
+
+