Den EDDTableFraEML og EDDTableFraEMLBatch Valgmuligheder i GenererDatasets Xml
\[Denne webside vil kun være af interesse forERDDAP™Administratorer, der arbejder med EML-filer. Dette dokument blev oprindeligt oprettet i 2016. Det blev senest redigeret den 30. april 2020.\]
ERDDAP™ er en dataserver, der giver brugerne en enkel, konsekvent måde at downloade subsets af gitterded og faneformede videnskabelige datasæt i almindelige filformater og lave grafer og kort.ERDDAP™arbejder med en given datasæt som enten en gruppe multidimensionelle gitterded variabler (f.eks. satellit- eller modeldata) eller som en databaselignende tabel (med en kolonne for hver type oplysninger og en række for hver observation) .ERDDAP™er gratis og Open Source Software, så alle kandownload og installationERDDAP™at tjene deres data.
Sådan tilføjer du et datasæt til etERDDAP™installation, installationERDDAP™Administrator skal tilføje en smule XML, der beskriver datasættet til en fil kaldetdatasets.xml. (Der er dergrundig dokumentation fordatasets.xml.) Selvom det er muligt at generere klumpen af XML fordatasets.xmlhelt ved hånden,ERDDAP™leveres med et værktøj kaldet GenererDatasetsXml som kan generere det grove udkast til omfanget af XML nødvendig for en given datasæt baseret på nogle oplysninger om datasættet.
Den første ting GenererDatasets Xml spørger, hvilken type datasæt du ønsker at oprette. GenererDatasets Xml har en særlig mulighed, EDDTableFraEML , som bruger oplysningerne i enEcological Metadata Sprog (EML) XML-fil til at generere klumpen af XML fordatasets.xmlat oprette enEDDTableFraAsciiFilesdatasæt fra hver datatabel i en EML-fil. Dette fungerer meget godt for de fleste EML-filer, for det meste fordi EML-filer gør et fremragende job for at gemme alle de nødvendige metadata til et datasæt i et let-til-arbejde-med format. De oplysninger, der GenererDatasetsXml skal oprette datasæt, er i EML-filen, herunder URL for datafilen, som GenererDatasetsXml downloads, parses og sammenligner til beskrivelsen i EML-filen. (Mange grupper vil gøre godt for at skifte til EML, som er et godt system til at dokumentere eventuelle tabulære videnskabelige datasæt, ikke kun økologiske data. Og mange grupper, der skaber XML schemas ville gøre godt at bruge EML som en case undersøgelse for XML schema, der er klar, til det punkt, ikke overdrevent dyb (dvs. for mange niveauer) , og let for mennesker og computere at arbejde med.)
Spørgsmål og svar
Her er alle spørgsmål GenererDatasets Xml vil spørge, med kommentarer om, hvordan du skal svare, hvis du ønsker at behandle kun en EML-fil eller en batch af EML-filer:
-
Hvilken EDDType? Hvis du ønsker at behandle en fil, skal du svare: EDDTableFraEML Hvis du vil behandle en gruppe filer, skal du svare: EDDTableFraEMLBatch
-
Directory til at gemme filer? Indtast navnet på den mappe, der vil blive brugt til at gemme downloadede EML og/eller datafiler. Hvis mappen ikke findes, oprettes den.
-
(Til EDDTableFraEML kun) EML URL eller lokal filnavn? Indtast URL-adressen eller det lokale filnavn på en EML-fil.
-
(Til EDDTableFraEMLBatch kun) EML dir (URL eller lokal) ? Indtast navnet på mappen med EML-filer (en URL eller en lokal dir) . For eksempel: http://sbc.lternet.edu/data/eml/files/
-
(Til EDDTableFraEMLBatch kun) Omdøbt regex? Indtast det regulære udtryk, der vil blive brugt til at identificere de ønskede EML-filer i EML-mappen. For eksempel: knb-lter-sbc«.
-
Brug lokale filer, hvis de er til stede (sande sande sande sande|falsk) ? Indtast sande for at bruge de eksisterende lokale EML-filer og datafiler, hvis de findes. Indtast falsk for altid at downloade EML-filer og / eller datafiler.
-
tilgængelig Vil du? Hvis du vil have de nye datasæt til at være private datasæt iERDDAP, angive navnet på gruppen (s s s) det vil være tilladt adgang. Anbefalet til LTER grupper: kombinere "lter" plus gruppen, f.eks. lter Sbc . Hvis du indtaster "null", vil der ikke være nogen<tilgængelig Til> tag i output. Se endnutilgængelig Sådan skal du til.
-
lokal lokal lokal lokal lokal lokal lokale TimeZone (f.eks. US/Pacific) ? Hvis en tidsvariabel angiver, at det har lokale tidsværdier, vil denne tidszone blive tildelt. Dette skal være en værdi fraTZ kolonne liste over tidszonenavne. Bemærk alle de brugervenlige "US/..." navne i slutningen af listen. Hvis du senere finder det, der skal være forkert, kan du ændre ændringen.time\_zonei bunden afdatasets.xml.
EML plusERDDAP™er en stor kombination, daERDDAP™kan give brugerne mere direkte adgang til rigdom afVidensnet for Biocomplexity (KNB) og og ogLangtids Økologisk forskning (LTER) data og hjælpe dem med at møde den amerikanske regeringsOffentlig adgang til forskningsresultater (PARR) kravved at gøre de tilgængelige data via en webtjeneste. Også, EML plusERDDAP™synes som en stor bro mellem forskere i det akademiske / NSF-funderede rige og forskere i det føderale agentur (NOAA, NASA, USGS) rige.
Se vores udvalgsektion om at få ekstra støtte.
Designdetaljer
Her er designdetaljerne for EDDTableFraEML mulighed i GenererDatasetsXml. Nogle er relateret til forskelle i, hvordan EML ogERDDAP™gøre ting og hvordan GenererDatasets Xml behandler disse problemer.
En dataTable Bliver enERDDAP™Datasæt
En EML fil kan have flere<Datadata Tabel>s.ERDDAP™gør énERDDAP™Datasæt pr EML dataTable. The The The The The The ThedatasetIDfor datasættet er EMLName \_t tabelnummer (når EMLname er tekst) eller eller eller System\_EMLName \_t tabelnummer (når EMLname er et nummer) . For eksempel, tabel #1 i filen knb-lter-sbc.28, bliverERDDAP™ datasetID=knb\_lter\_sbc\_28\_t1,
EML mod CF+ACDD
Næsten alle metadata i EML-filer bliver iERDDAP, men i et andet format.ERDDAP™Brug af cookiesCFog og ogACDDmetadatastandarder. De er komplementære metadatasystemer, der bruger nøgle=værdipar til globale metadata og for hver variabels metadata. Ja, EML-præsentationen af metadata er pænere end CF+ACDD-præsentationen. Jeg foreslår ikke at bruge CF+ACDD-præsentationen som erstatning for EML. Tænk på CF+ACDD som en del af broen fra EML verden til EML verdenOPeNDAP/CF/ACDD verden.
Små ændringer
ERDDAP™gør en masse små ændringer. For eksempel,ERDDAP™Brug af EML ikke-DOIalternativ alternativ Identifier plus et dataTabelt nummer somERDDAP™ datasetID, men lidt ændringer alternativ Identifier til at gøre det et gyldigt variabelt navn på de fleste computersprog, f.eks. knb-lter-sbc.33 data Tabel #1 bliver knb\_lter\_sbc\_33\_t1.
DocBook
EML bruger DocBooks mærkningssystem til at give struktur til blokke af tekst i EML-filer. CF og ACDD kræver, at metadata er almindelig tekst. Så GenererDatasets Xml konverterer den markerede tekst til almindelig tekst, der ligner den formaterede version af teksten. Inline tags er helliget med firkantede beslag, f.eks.\[understregede\], og venstre i tekst.
Datafiler
Da EML-dataTable indeholder URL'en for den faktiske datafil, indeholder GenererDatasetsets Xml vil:
- Hent datafilen.
- Gem det i samme mappe som EML-filen.
- Læs oplysningerne.
- Sammenlign beskrivelsen af dataene i EML med de faktiske data i filen.
- Hvis GenererDatasets Xml finder forskelle, det beskæftiger sig med dem, eller spørger operatøren, om forskellene er okay, eller returnerer en fejlmeddelelse. Detaljerne er i forskellige emner nedenfor.
.zip'd Datafiler
Hvis den registrerede datafil er en.zipfil, det skal indeholde kun én fil. Denne fil vil blive brugt tilERDDAP™Datasæt. Hvis der er mere end 1 fil.ERDDAP™vil afvise, at datasæt. Hvis det er nødvendigt, kan dette ændres. (I praksis har alle SBC LTER zip-filer kun en datafil.)
Opbevaringstype
Hvis en kolonnes opbevaring Type er ikke angivet,ERDDAP™Brug dens bedste gætte baseret på dataene i datafilen. Dette virker ret godt.
Enheder
ERDDAP™Brug af anvendelserUDUNITSformatering for enheder. GenererDatasets Xml er i stand til at konvertere EML enheder tilUDUNITSrent omkring 95% af tiden. De resterende 5% resulterer i en læsbar beskrivelse af enhederne, f.eks. "biomassDensityUnitPerAbundanceUnit" i EML bliver "biomasstæthed enhed pr overflod enhed" iERDDAP. Teknisk set er dette ikke tilladt. Jeg tror ikke det er så slemt under omstændighederne.\[Hvis det er nødvendigt, kan enheder, der ikke kan gøresUDUNITSkompatible kunne flyttes til den variables kommentar attribut.\]
EML version 2.1.1
Denne understøttelse af EML v2.1.1 filer blev tilføjet til GenererDatasets Xml i 2016 med håb om, at der ville være nogle optagelse i EML fællesskabet. I 2020 er det ikke sket. The The The The The The TheERDDAP™udviklere ville være glade for at tilføje støtte til flere nyeste versioner af EML, men kun hvis de nye funktioner faktisk vil blive brugt. Send en mailerd.data at noaa.govhvis du vil støtte til flere seneste versioner af EML og vil faktisk bruge denne funktion.
Problemer med EML-filer
Der er nogle problemer / problemer med EML-filer, der forårsager problemer, når en software klient (såsom EDDTableFraEML mulighed i GenererDatasetsXML) forsøger at fortolke / behandle EML-filer.
- Selvom der er flere spørgsmål opført her, er de mest små, sålvbare problemer. Generelt er EML et stort system, og det har været min fornøjelse at arbejde med det.
- Disse er omtrent sorteret fra værste / mest almindelige til mindst dårlige / mindre almindelige.
- De fleste er relateret til små problemer i specifikke EML-filer (som ikke er EML's fejl) .
- De fleste kan fastsættes ved enkle ændringer i EML-filen eller datafilen.
- I betragtning af at LTER mennesker bygger en EML-tjeker for at teste gyldigheden af EML-filer, har jeg tilføjet nogle forslag nedenfor om funktioner, der kan tilføjes til checkeren.
Her er problemerne:
Separat dato og time kolonner
Nogle datafiler har separate kolonner for dato og for tid, men ingen samlet dato + time kolonne. I øjeblikket, GenererDatasets Xml skaber et datasæt med disse separate kolonner, men det er ikke ideelt, fordi:
- Det er bedst, hvis datasæt iERDDAP™har en samlet dato+time kolonne kaldet"time".
- Ofte vil datasættet ikke indlæse iERDDAP™fordi"time"kolonne har ikke dato+time data.
Der er to mulige løsninger:
- Rediger kildedatafilen for at tilføje en ny kolonne i datafilen (og beskrive det i EML) hvor dato og tidskolonner flettes i en kolonne. Så rerun GenererDatasets Xml, så det finder den nye kolonne.
- Brug afAfledte VarerFunktioner i trækERDDAP™at definere en ny variabel idatasets.xmlsom skabes ved at samle datoen og tidskolonnerne. En af eksemplerne omhandler især denne situation.
Inconsistent kolonnenavne
EML-filer lister datafilens kolonner og deres navne. Desværre er de ofte forskellige fra kolonnenavnene i den faktiske datafil. Normalt er kolonneordren i EML-filen den samme som kolonneordren i datafilen, selvom navnene varierer lidt, men ikke altid. GenererDatasets Xml forsøger at matche kolonnenavnene. Når det ikke kan (som er fælles) , det vil stoppe, vise dig EML / data filnavn par, og spørge om de er korrekt afstemt. Hvis du indtaster 's' for at springe et bord, vil GenererdDatasetsXml udskrive en fejlmeddelelse og gå på den næste tabel. Løsningen er at ændre de fejlagtige kolonnenavne i EML-filen for at matche kolonnenavnene i datafilen.
Forskellige kolonner Ordre
Der er flere tilfælde, hvor EML specificerede kolonnerne i en anden rækkefølge, end de findes i datafilen. GenererDatasets Xml vil stoppe og spørge operatøren, hvis matchups er okay, eller hvis datasættet skal springes. Hvis det springes, vil der være en fejlmeddelelse i resultatfilen, f.eks.:
<-- SKIPPED (USUALLY BECAUSE THE COLUMN NAMES IN THE DATAFILE ARE IN
A DIFFERENT ORDER OR HAVE DIFFERENT UNITS THAN IN THE EML file):
datasetID=knb\\_lter\\_sbc\\_17\\_t1
dataFile=all\\_fish\\_all\\_years\\_20140903.csv
The data file and EML file have different column names.
ERDDAP™ would like to equate these pairs of names:
SURVEY\\_TIMING = notes
NOTES = survey\\_timing
-->
Løsningen er at fastsætte kolonneordren i disse EML-filer, så de matcher ordren i datafiler.
Det ville være rart, hvis EML-kontrollen kontrollerede, at kolonner og kolonneordre i kildefilen matcher kolonner og kolonneordre i EML-filen.
Forkerte numHeaderLines
Flere data Tabeller forkert tilstand numHeaderLines =, f.eks. ...sbc.4011. Dette årsagerERDDAP™at læse den første linje af data som kolonnenavne. Jeg forsøgte at manuelt SKIP alle disse dataTables. De er indlysende, fordi de uovertruffen kildenavne er alle dataværdier. Og hvis der er filer, der forkert har numHeaderLines=0, gør mit system ikke det indlysende. Her er et eksempel fra SBC LTER-fejlfilen:
<-- SKIPPED (USUALLY BECAUSE THE COLUMN NAMES IN THE DATAFILE ARE IN
A DIFFERENT ORDER OR HAVE DIFFERENT UNITS THAN IN THE EML file):
datasetID=knb\\_lter\\_sbc\\_3017\\_t1
dataFile=MC06\\_allyears\\_2012-03-03.txt
The data file and EML file have different column names.
ERDDAP™ would like to equate these pairs of names:
2008-10-01T00:00 = timestamp\\_local
2008-10-01T07:00 = timestamp\\_UTC
2.27 = discharge\\_lps
-999.0 = water\\_temperature\\_celsius
-->
Så fejlen kan vises som om GenererDatasets Xml mener, at den første linje med data i filen (f.eks. med 2008-10-01T00:00 osv.) er linjen med kolonnenavne (som om 2008-10-01T00:00 var et kolonnenavn) .
Det ville være rart, hvis EML checker kontrollerede numHeaderLines værdi.
NumHeaderLines = 0
Nogle kildefiler har ikke kolonnenavne.ERDDAP™accepterer, at hvis EML beskriver det samme antal kolonner.
Efter min mening: dette synes meget farligt. Der kan være kolonner i en anden rækkefølge eller med forskellige enheder (se nedenfor) og der er ingen måde at fange disse problemer. Det er meget bedre, hvis alle ASCII-datafiler har en række med kolonnenavne.
DateTime Format strenge
EML har en standard måde at beskrive dato tidsformater. Men der er betydelig variation i dens brug i EML-filer. (Jeg var tidligere forkert om dette. Jeg ser EML-dokumentationen til formatString, som vises for at matcheJavaDateTimeFormatter specifikation, men som mangler de vigtige retningslinjer for dens brug, med det resultat, at formatString ofte bruges forkert.) Der er flere forekomster med forkert sag, og/eller forkert kopiering af et brev, og/eller ikke-standard formatering. Det sætter en urimelig byrde på klienter, især softwareklienter som GenererDatasetsXml. GenererDatasets Xml forsøger at konvertere de forkert definerede formater i EML-filer til dato/time format, derERDDAP™kræver behov, som næsten er identisk med forJava/Joda tidsformat specifikation, men er lidt mere tilgivende.
Det ville være rart, hvis EML checker krævede streng overholdelse til denJava/Joda /ERDDAPtimeenheder specifikation og verificeret, at datotidsværdierne i datatabellen kunne parres korrekt med det angivne format.