Arbejde med arbejdetdatasets.xmlFilen fil
\[Denne webside vil kun være af interesse forERDDAP™Administratorer.\]
Efter du har fulgt denERDDAP™ installationsvejledning, du skal redigeredatasets.xmlfil i Tomcat /content/erddap/ til at beskrive de datasæt, som dine dataERDDAP™installation vil tjene.
Du kan se et eksempeldatasets.xmlpå GitHub.
Introduktion
Nogle konting påkrævet
Opsætning af et datasæt iERDDAP™er ikke bare et spørgsmål om at pege på datasættets mappe eller URL. Du skal skrive en smule XML fordatasets.xmlsom beskriver datasættet.
- For gitterede datasæt, for at gøre datasættet i overensstemmelse medERDDAP's datastruktur for gitterded data, skal du identificere en del af datasættet's variabler, der deler de samme dimensioner. (Hvorfor? Hvordan?)
- Datasættets aktuelle metadata importeres automatisk. Men hvis du vil ændre disse metadata eller tilføje andre metadata, skal du angive det idatasets.xml. Og og ogERDDAP™behov for andre metadata, herunderglobale attributter (f.eks.infoUrl, institution,sourceUrl, oversigt og titel) og og ogvariable egenskaber (f.eks.long\_nameog enheder) . Ligesom de metadata, der er i øjeblikket i datasættet, tilføjer beskrivende oplysninger til datasættet, de metadata, der er anmodet om afERDDAP™tilføjer beskrivende oplysninger til datasættet. Yderligere metadata er en god tilføjelse til dit datasæt og hjælperERDDAP™Gør et bedre job for at præsentere dine data for brugere, der ikke er bekendt med det.
- ERDDAP™behov for at gøre særlige ting medlængde, bredde, højde (eller dybde) , og tidsvariabler.
Hvis du køber i disse idéer og fremskynder indsatsen for at oprette XML fordatasets.xml, du får alle fordelene vedERDDAP™, herunder:
- Fuld tekstsøgning for datasæt
- Søg efter datasæt efter kategori
- Data Access-formularer ( datasetID .html) så du kan anmode om en delsæt af data i mange forskellige filformater
- Forms til at anmode grafer og kort ( datasetID .ografi)
- Web Map Service (WMS) til gitterede datasæt
- RESTfuladgang til dine data
Gøre detdatasets.xmltager stor indsats for de første par datasæt, men det bliver nemmere . Efter de første datasæt, kan du ofte genbruge en masse af dit arbejde for det næste datasæt. Heldigvis,ERDDAP™leveres med toVærktøjsværktøjerfor at hjælpe dig med at oprette XML for hver datasæt idatasets.xml. Hvis du sidder fast, se voressektion om at få ekstra støtte.
Dataudbyder Form Form Form
Når en dataudbyder kommer til dig i håb om at tilføje nogle data til dine dataERDDAP, det kan være svært og tidskrævende at indsamle alle metadata (Oplysninger om datasættet) nødvendig for at tilføje datasættet tilERDDAP. Mange datakilder (for eksempel .csv-filer, Excel-filer, databaser) har ingen interne metadata, såERDDAP™har en Dataudbyder Form, der samler metadata fra dataudbyderen, og giver dataudbyderen en anden vejledning, herunder omfattende vejledning tilData i Databaser. De oplysninger, der indsendes, overføres tildatasets.xmlformat og derefter e-mailet til detERDDAP™Administrator (dig du) og skrevet (tilføjet) til at til bigParentDirectory /logs/dataProviderForm.log . Således danner formularen halvautomatiske processen med at få et datasæt iERDDAP, men denERDDAP™Administratoren skal stadig fuldføredatasets.xmlchunk and deal med at få datafilen (s s s) fra udbyderen eller forbindelsen til databasen.
Indsendelsen af faktiske datafiler fra eksterne kilder er en enorm sikkerhedsrisiko, såERDDAP™beskæftiger ikke med det. Du skal finde ud af en løsning, der fungerer for dig og dataudbyderen, f.eks. e-mail (til små filer) , træk fra skyen (f.eks. DropBox eller Google Drive) , en sftp site (med adgangskoder) , eller sneaker Net Net Net Net (en USB tommelfinger drev eller ekstern harddisk) . Du bør sandsynligvis kun acceptere filer fra folk, du kender. Du bliver nødt til at scanne filerne for virus og tage andre sikkerhedsforanstaltninger.
Der findes ikke et link iERDDAP™til Dataudbyderen Form (f.eks. på bagsidenERDDAP™Forsideside) . I stedet, når nogen fortæller dig, at de vil have deres data serveret af dine dataERDDAP, du kan sende dem en e-mail, der siger noget som: Ja, vi kan få dine data tilERDDAP. For at komme i gang skal du udfylde formularen på https://yourUrl/erddap/dataProviderForm.html (eller eller ellerhttp://hvishttps://er ikke aktiveret) . Når du er færdig, kontakter jeg dig for at arbejde ud af de sidste detaljer. Hvis du bare vil se på formularen (uden at fylde det ud) , du kan se formularen påERD'sERDDAP:Introduktion,Del 1,Del 2,Del 3, ogDel 4. Disse links påERD ERDDAP™sende oplysninger til mig, ikke dig, så send ikke oplysninger med dem, medmindre du rent faktisk ønsker at tilføje data til deERD ERDDAP.
Hvis du vil fjerne dataudbyderens formular fra din kontoERDDAP™, sætte
<dataProviderFormActive>false</dataProviderFormActive>
i din opsætning.xml-fil.
Udvikleren for dette varNOAA's 2014Offentlig adgang til forskningsresultater (PARR) Direktivdirektiv, som kræver, at altNOAAmiljødata, der er finansieret via skatteydere, stilles til rådighed via en datatjeneste (Ikke bare filer) inden for 12 måneder efter skabelse. Så der er øget interesse for brugERDDAP™for at gøre datasets tilgængelige via en service ASAP. Vi havde brug for en mere effektiv måde at håndtere et stort antal dataudbydere.
Feedback/forespørgsler? Denne formular er ny, så send en mailerd dot data at noaa dot govhvis du har feedback eller forslag til forbedring af dette.
Værktøjsværktøjer
ERDDAP™leveres med to kommandolinjeprogrammer, der er værktøjer til at hjælpe dig med at oprette XML for hver datasæt, som du ønsker, at dinERDDAP™at tjene. Når du har oprettetERDDAP™og køre det (mindst én gang) , du kan finde og bruge disse programmer i programmerne Tomcat /webapps/erddap/WEB-INF-mappen. Der er Linux/Unix shell scripts (med udvidelsen .sh) og Windows scripts (med udvidelsen .bat) for hvert program.\[På Linux kører disse værktøjer som den samme bruger (Tomcat?) det vil køre Tomcat.\]Når du kører hvert program, vil det spørge dig spørgsmål. Skriv et svar, og tryk derefter på Enter. Eller tryk på ^C for at afslutte et program til enhver tid.
Program kører ikke?
- Hvis du får et ukendt program (eller lignende) fejlmeddelelse, problemet er sandsynligvis, at operativsystemet ikke kunne findeJava. Du skal finde ud af, hvorJavaer på din computer, og redigere java-referencen i .bat eller .sh-filen, du forsøger at bruge.
- Hvis du får en jarfil ikke fundet eller klasse ikke fandt fejlmeddelelse, såJavakunne ikke finde en af de klasser, der er opført i .bat eller .sh-filen, du forsøger at bruge. Løsningen er at finde ud af, hvor den .jar fil er, og redigere java-referencen til det i .bat eller .sh-filen.
- Hvis du bruger en version afJavadet er for gammel for et program, programmet kører ikke, og du vil se en fejlmeddelelse som
Undtagelse i tråd "main" java.lang.UunderstøttetClassVersion Fejl:
nogle/klasse/navn : Ustøttet større.minor version nogle tal
Løsningen er at opdatere til den seneste version afJavaTjek den .sh eller .bat fil for programmet bruger den.
Værktøjerne udskriver forskellige diagnostiske meddelelser:
- Ordet "ERROR" bruges, når noget gik så galt, at proceduren mislykkedes at fuldføre. Selvom det er irriterende at få en fejl, de fejlkræfter, du kan håndtere problemet.
- Ordet "WARNING" bruges, når noget gik galt, men proceduren var i stand til at blive afsluttet. Disse er temmelig sjældne.
- Alt andet er bare en informativ besked. Du kan tilføje \-verbose til denGenererDatasetsXmleller eller ellerBilleder af DasDdskommandolinje for at få yderligere informative beskeder, som nogle gange hjælper med at løse problemer.
De to værktøjer er en stor hjælp, men du skal stadig læse alle disse instruktioner på denne side omhyggeligt og træffe vigtige beslutninger selv.
GenererDatasetsXml
- GenererDatasetsXml er et kommandolinjeprogram, der kan generere et groft udkast til datasæt XML for næsten enhver type datasæt.
Vi STRONGLY RECOMMEND, som du bruger GenererDatasets Xml i stedet for at skabe chunks afdatasets.xmlhånd, fordi:
- GenererDatasets Xml arbejder på få sekunder. At gøre dette ved hånden er mindst en times arbejde, selv når du ved, hvad du laver.
- GenererDatasets Xml gør et bedre job. At gøre dette ved hånden kræver omfattende viden om, hvordanERDDAP™værker. Det er usandsynligt, at du vil gøre et bedre job ved hånden. (Bob Simons bruger altid GenererDatasets Xml for første udkast, og han skrevERDDAP.)
- GenererDatasets Xml genererer altid en gyldig klump afdatasets.xml. Alle stykker afdatasets.xmlat du skriver vil sandsynligvis have mindst et par fejl, der forhindrerERDDAP™fra at indlæse datasættet. Det tager ofte mennesker timer at diagnosticere disse problemer. Spil ikke din tid. Lad Generer Datasæt Xml gør det hårde arbejde. Så kan du forfine .xml ved hånden, hvis du ønsker det.
Når du bruger GenererDatasets Xml program:
- På Windows, den første gang du kører GenererDatasetsetsXml, skal du redigere GenererDatasetsXml.bat-filen med en tekst editor til at ændre stien til java. exe fil, så Windows kan findeJava.
- GenererDatasets Xml beder dig først angive EDDType (Erd Dap Dataset Type Type Type Type) af datasættet. Se billederneListe over datasættyper (i dette dokument) at finde ud af, hvilken type der er egnet til den datasæt, du arbejder på. Ud over de almindelige EDDTypes er der også et parSpecial/Pseudo Dataset Typer (f.eks., som crawler et THREDDS-katalog for at generere en klump afdatasets.xmlfor hver af datasæt i kataloget) .
- GenererDatasets Xml beder dig derefter en række spørgsmål, der er specifikke for EDDType. Spørgsmålne indsamler de nødvendige oplysningerERDDAP™at få adgang til datasættets kilde. At forstå, hvadERDDAP™spørges om, se dokumentationen for den EDDType, du har angivet ved at klikke på den samme datasæt type i denListe over datasættyper.
Hvis du har brug for at indtaste en streng med specielle tegn (f.eks. hvide rumtegn i begyndelsen eller slutningen, ikke-ASCII tegn) Indtast enJSON-stilstreng (med særlige tegn flygtet med "tegn) . Hvis du f.eks. vil indtaste en fanefigur, skal du indtaste "" (med de omgivende dobbelte citater, som fortællerERDDAP™at dette er en JSON-stil streng.
- Ofte vil en af dine svar ikke være, hvad GenererDatasetsXml har brug for. Du kan derefter prøve igen med reviderede svar på spørgsmålene, indtil GenererDatasets Xml kan med succes finde og forstå kildedata.
- Hvis du besvarer spørgsmålene korrekt (eller tilstrækkeligt korrekt) , GenererDatasets Xml vil forbinde til datasættets kilde og indsamle grundlæggende oplysninger (f.eks. variable navne og metadata) . Til datasæt, der er fra lokaleNetCDF .ncog relaterede filer, GenererDatasets Xml vil ofte udskrive ncdump-lignende struktur af filen, efter at den først læser filen. Dette kan give dig oplysninger til at besvare spørgsmål bedre på en efterfølgende sløjfe gennem GenererDatasetsXml.
- GenererDatasets Xml vil derefter generere et groft udkast til dataset XML for den datasæt.
- Diagnostiske oplysninger og det grove udkast til datasættet XML vil blive skrevet til bigParentDirectory /logs/GenerateDatasetsXml.log .
- Det grove udkast til datasættet XML vil blive skrevet til bigParentDirectory /logs/GenerateDatasetsXml.out .
"0 filer" Fejlmeddelelse
Hvis du kører GenererDatasets Xml ellerBilleder af DasDds, eller hvis du forsøger at indlæse enEDDGridFra...Filer eller EDDTableFra... Filer datasæt iERDDAP™, og du får en "0 filer" fejlmeddelelse, der angiver, atERDDAP™fundet 0 matchende filer i mappen (når du tror, at der er matchende filer i denne mappe) :
-
Tjek, at du har angivet det fulde navn på mappen. Og hvis du angiver prøve filnavnet, skal du sørge for at angive filens fulde navn, herunder det fulde mappenavn.
-
Tjek, at filerne virkelig er i denne mappe.
-
Tjek stavemåden af mappenavnet.
-
Tjek filenNameRegex. Det er virkelig nemt at lave fejl med regexes. Prøv regex .\*, som skal matche alle filnavne. (Se detteIndeks dokumentationog og ogregex tutorial.)
-
Kontroller, at brugeren, der kører programmet (f.eks. bruger=tomcat (?) for Tomcat /ERDDAP) har 'læs' tilladelse til disse filer.
-
I nogle operativsystemer (for eksempel SELinux) Afhængigt af systemindstillinger skal brugeren, der løb programmet, have "læs" tilladelse til hele kæden af mapper, der fører til den mappe, der har filerne.
-
Hvis du har problemer, du ikke kan løse,Anmod om supportmed så mange oplysninger som muligt. På samme måde, hvis det synes som den passende EDDType til et givent datasæt ikke virker med den datasæt, eller hvis der ikke er passende EDDType, skal du indsende enemne på GitHubmed detaljerne (og en prøvefil, hvis relevant) .
Du skal redigere output fra GenererDatasets Xml for at gøre det bedre.
-
Ansættelse: Omfangetdatasets.xmlMADE BE GenererDatasets Xml ISN'T PERFECT. DU SKAL læse og EDIT te XML B, før det amerikanske IT i en PUBLICERDDAP. GenererDatasets Xml RELIES ON A LOT OF RULES-OF-THUMB WHICH AREN'T ALWAYS CORRECT. DIG er RESPONSIBLE FOR ENSURING CORRECTNESS af XML, at du kanERDDAP'S'datasets.xmlFILE.
(Fun Fact: Jeg råber ikke. Af historiske juridiske årsager skal ansvarsfraskrivelserne skrives i alle caps.)
Resultatet af GenererDatasetsXml er et groft udkast. Du bliver næsten altid nødt til at redigere det. Vi har lavet og fortsætter med at gøre en enorm indsats for at gøre output så klar til at gå så muligt, men der er grænser. Ofte er nødvendige oplysninger simpelthen ikke tilgængelige fra kilde metadata.
Et grundlæggende problem er, at vi spørger et computerprogram (GenererDatasetsXml) at gøre en opgave, hvor, hvis du gav den samme opgave til 100 personer, ville du få 100 forskellige resultater. Der er ingen enkelt "højre" svar. Naturligvis, programmet kommer tættest på at læse Bob's sind (ikke dine) , men selv så, er det ikke en all-understående AI-program, bare en masse hæuristiskes flettet sammen for at gøre en AI-lignende opgave. (Denne dag for et all-understående AI program kan komme, men det har endnu ikke. Hvis / når det gør, kan vi mennesker have større problemer. Vær forsigtig, hvad du ønsker.)
-
Til informationsmæssige formål viser outputtet den globale kildeAttributes og variable kildeAttributes som kommentarer.ERDDAP™kombinerer kildetildelinger ogaddAttributes (som har forrang) at gøre den kombinerede Attributter, der vises til brugeren. (Og andre attributter tilføjes automatisk til længde, breddegrad, højde, dybde og tidsvariabler, nårERDDAP™faktisk gør datasættet) .
-
Hvis du ikke kan lide en kildeAttribute, overskrive det ved at tilføje en addAttribute med det samme navn, men en anden værdi (eller ingen værdi, hvis du vil fjerne det) .
-
Alle afaddAttributeser computergenererede forslag. Rediger dem! Hvis du ikke kan lide en addAttribute, skal du ændre det.
-
Hvis du vil tilføje andreaddAttributesTilføj dem.
-
Hvis du vil ændre endestinationName, ændre det. Men ikke ændresourceNames.
-
Du kan ændre rækkefølgen af ordrendataVariables eller fjerne nogen af dem.
- Du kan derefter brugeBilleder af DasDds (se nedenfor) til gentagne gange teste XML for den datasæt for at sikre, at den resulterende datasæt vises, som du ønsker det iERDDAP.
- Du er velkommen til at foretage små ændringer idatasets.xmlchunk, der blev genereret, f.eks. give en bedreinfoUrl, oversigt eller titel.
Tilføj ikkeStandardnavne
Hvis du indeholder \-doNotAddStandardNames som en kommandolinjeparameter, når du kører Datasæt Xml, generere Datasæt Xml vil ikke tilføjestandard\_nameTil højreaddAttributesfor andre variabler end variabler ved navn breddegrad, længde, højde, dybde eller tid (som har indlysendestandard\_names s s) . Dette kan være nyttigt, hvis du bruger output fra generere Datasæt Xml direkte iERDDAP™uden at redigere output, fordi generere Datasæt Xml ofte gætterstandard\_names forkert. (Bemærk, at vi altid anbefaler, at du redigerer output, før du bruger det iERDDAP.) Brug af denne parameter vil have andre mindre relaterede effekter, fordi gættetstandard\_namebruges ofte til andre formål, f.eks. til at oprette en nylong\_name, og for at oprette farveBar indstillinger.
scripts
Som alternativ til at besvare spørgsmål interaktivt på tastaturet og looping for at generere yderligere datasæt, kan du give kommandolinje argumenter for at besvare alle spørgsmål for at generere et datasæt. GenererDatasets Xml vil behandle disse parametre, skrive output til outputfilen, og afslutte programmet.
Hvis du vil konfigurere dette, skal du først bruge programmet i interaktiv tilstand og skrive dine svar. Her er et delvis eksempel: Lad os sige, at du kører scriptet: ./GenerateDatasetsXml.sh Indtast derefter: EDDTableFraAsciiFiles Indtast derefter: /u00/data/ Indtast derefter: .\*".asc Indtast derefter: /u00/data/sampleFile.asc Indtast derefter: ISO-8859-1
Hvis du vil køre dette på en ikke-interaktiv måde, skal du bruge denne kommandolinje: ./GenerateDatasetsXml.sh EDDTableFraAsciiFiles /u00/data/.\*".asc /u00/data/sampleFile.asc ISO-8859-1 Så dybest set, du bare liste alle svarene på kommandolinjen. Dette bør være nyttigt for datasæt, der ændrer sig ofte på en måde, der necessitaterer re-running GenerDatasetsets Xml (mærkbartEDDGridFraThreddsCatalog) .
Detaljer:
- Hvis en parameter indeholder et rum eller nogle særlige tegn, skal du indtaste parameteren som enJSON-stilstrengf.eks. "my parameter med rum og to\nlinjer".
- Hvis du vil angive en tom streng som parameter, skal du bruge: intet
- Hvis du vil angive standardværdien af en parameter, skal du bruge: standard
- GenererDatasets Xml understøtter en -i Datasæt XmlName # # # # Mærkenavn kommandolinje parameter, der indsætter outputet i det angivnedatasets.xmlfilfil (Standarden er Tomcat /indhold / indhold /datasets.xml) . GenererDatasets Xml ser efter to linjer i datasæt XmlName:
<!-- Begin GenerateDatasetsXml #*tagName someDatetime* -->
og og og
<!-- End GenerateDatasetsXml #*tagName someDatetime* -->
og erstatter alt i mellem disse linjer med det nye indhold, og ændrer det tidspunkt.
- -i-kontakten behandles kun (og ændringer idatasets.xmler kun lavet) hvis du kører GenererDatasets Xml med kommandolinje argumenter, der angiver alle svarene på alle spørgsmål for en loop af programmet. (Se 'Scripting' ovenfor.) (Tanken er: Denne parameter er til brug med scripts. Hvis du bruger programmet i interaktiv tilstand (Skriveinfo på tastaturet) , du er tilbøjelige til at generere nogle forkerte bundter af XML, før du genererer den, du ønsker.)
- Hvis start- og slutlinjerne ikke findes, indsættes disse linjer og det nye indhold lige før</erddapDatasets>.
- Der er også en -I (kapital i) skifte til testformål, der fungerer det samme som -i, men skaber en fil kaldetdatasets.xml Datotid og foretager ikke ændringerdatasets.xml.
- Kør ikke GenererDatasets Xml med -i i to processer på én gang. Der er en chance kun et sæt ændringer vil blive holdt. Der kan være alvorlige problemer (for eksempel beskadigede filer) .
Hvis du bruger "GenerateDatasetsXml -verbose", vil det udskrive flere diagnostiske meddelelser end normalt.
Special/Pseudo Dataset Typer
Generelt indstillingerne for EDDType i GenererDatasets Xml match af EDD-typer, der er beskrevet i dette dokument (Se det herListe over datasættyper) og generere endatasets.xmlGnid at oprette et datasæt fra en bestemt datakilde. Der er et par undtagelser og særlige tilfælde:
EDDGridFraErddap
Denne EDDType genererer alledatasets.xmlbidder, der er nødvendige for at gøreEDDGridFraErddapDatasets fra alleEDDGridDatasæt i en fjernERDDAP. Du vil have mulighed for at holde den oprindeligedatasetIDs s s (som kan duplikere nogledatasetIDs allerede i dinERDDAP) eller generere nye navne, der vil være unikke (men normalt ikke som menneskelæsbar) .
EDDTableFraErddap
Denne EDDType genererer alledatasets.xmlbidder, der er nødvendige for at gøreEDDTableFraErddapDatasæt fra alle EDDTable datasæt i en fjernbetjeningERDDAP. Du vil have mulighed for at holde den oprindeligedatasetIDs s s (som kan duplikere nogledatasetIDs allerede i dinERDDAP) eller generere nye navne, der vil være unikke (men normalt ikke som menneskelæsbar) .
EDDGridFraThreddsCatalog
Denne EDDType genererer alledatasets.xmlbidder, der er nødvendige for alleEDDGridFraDapDatasæt, at det kan finde ved at crawle reursivt gennem aEDDS (sub) katalog. Der er mange former for THREDDS katalog URLs. Denne mulighed REQUIRES a THREDDS .xml URL med /catalog/i det f.eks.
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/catalog.xml eller eller eller
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/chla/catalog.xml
(en relateret .html katalog er på
https://oceanwatch.pfeg.noaa.gov/thredds/Satellite/aggregsatMH/chla/catalog.html , som ikke er acceptabel forEDDGridFraThreddsCatalog.
Hvis du har problemer medEDDGridFromThredds Katalog:
- Sørg for, at den webadresse, du bruger, er gyldig, omfatter /catalog/ og slutter med /catalog.xml .
- Hvis det er muligt, skal du bruge en offentlig IP-adresse (for eksempel, https://oceanwatch.pfeg.noaa.gov ) i webadressen, ikke en lokalnumerisk IP-adresse (for eksempel, https://12.34.56.78 ) . Hvis du kun er tilgængelig via den lokale numeriske IP-adresse, kan du bruge [<konvertereToPublicSourceUrl>] (#converttopublicsourceurl) så så sådanERDDAP™Brugere ser den offentlige adresse, selvomERDDAP™Få data fra den lokale numeriske adresse.
- Hvis du har problemer, du ikke kan løse,Tjek fejlfindingstips.
- Den lave niveaukode til dette bruger nuUnidataNetcdf-java katalog crawler kode (Tømmermænd. Katalog klasser) så det kan håndtere alle THREDDS kataloger (som kan være overraskende kompleks) Tak tilUnidatafor denne kode.
EDDGridLonPM180FraErddapCatalog
Denne EDDType generererdatasets.xmlat gøreEDDGridLonPM180Datasets fra alleEDDGridDatasæt i enERDDAPder har alle længdeværdier større end 180.
- Hvis det er muligt, skal du bruge en offentlig IP-adresse (for eksempel, https://oceanwatch.pfeg.noaa.gov ) i webadressen, ikke en lokalnumerisk IP-adresse (for eksempel, https://12.34.56.78 ) . Hvis det er tilfældetERDDAP™er kun tilgængelig via den lokale numeriske IP-adresse, du kan bruge [<konvertereToPublicSourceUrl>] (#converttopublicsourceurl) så så sådanERDDAP™Brugere ser den offentlige adresse, selvomERDDAP™Få data fra den lokale numeriske adresse.
EDDGridLon0360FraErddapCatalog
Denne EDDType generererdatasets.xmlat gøreEDDGridLon0360Datasets fra alleEDDGridDatasæt i enERDDAPder har alle længdeværdier mindre end 0.
- Hvis det er muligt, skal du bruge en offentlig IP-adresse (for eksempel, https://oceanwatch.pfeg.noaa.gov ) i webadressen, ikke en lokalnumerisk IP-adresse (for eksempel, https://12.34.56.78 ) . Hvis det er tilfældetERDDAP™er kun tilgængelig via den lokale numeriske IP-adresse, du kan bruge [<konvertereToPublicSourceUrl>] (#converttopublicsourceurl) så så sådanERDDAP™Brugere ser den offentlige adresse, selvomERDDAP™Få data fra den lokale numeriske adresse.
EDDsFraFiles
I betragtning af en startmappe, denne krydser mappen og alle undermapper og forsøger at oprette et datasæt for hver gruppe af datafiler, som den finder.
- Dette forudsætter, at når et datasæt findes, indeholder datasættet alle undermapper.
- Hvis et datasæt findes, vil lignende søskende mapper blive behandlet som separate datasæt (For eksempel vil mapper til 1990'erne generere separate datasæt) . De skal være nemme at kombinere med hånd - bare ændre de første datasæt's<FileDir> til forældremappen og slette alle de efterfølgende søskende datasæt.
- Dette vil kun forsøge at generere en bid afdatasets.xmlfor den mest almindelige type filudvidelse i en mappe (ikke tælle .md5, som ignoreres) . Så givet en mappe med 10.ncfiler og 5 .txt-filer, vil et datasæt blive genereret til datasættet.ncfiler kun.
- Dette forudsætter, at alle filer i en mappe med samme udvidelse tilhører i samme datasæt. Hvis en mappe har nogle.ncfiler med SST-data og nogle.ncfiler med chlorophyll data, bare en prøve.ncfil vil blive læst (SST? Hvad er klophyll?) og kun én datasæt vil blive skabt til den type fil. At datasæt sandsynligvis undlade at indlæse på grund af komplikationer fra at forsøge at indlæse to typer filer i samme datasæt.
- Hvis der er færre end 4 filer med den mest almindelige udvidelse i en mappe, antager dette, at de ikke er datafiler og bare springe over mappen.
- Hvis der er 4 eller flere filer i en mappe, men det kan ikke med succes generere en klump afdatasets.xmlfor filerne (for eksempel en ikke-understøttet filtype) , dette vil generere enEDDTableFraFileNamesDatasæt til filerne.
- I slutningen af diagnostics, at denne skriver til logfilen, lige før logfilendatasets.xmlDet vil udskrive en tabel med en oversigt over oplysninger indsamlet ved at trække alle undermapper. Tabellen vil liste alle undermapper og angive den mest almindelige type filudvidelse, det samlede antal filer, og hvilken type datasæt blev skabt til disse filer (hvis nogen) . Hvis du står over for en kompleks, dybt indlejret filstruktur, skal du overveje at køre GenererDatasetsets Xml med EDDType=EDDsFraFiles bare for at generere disse oplysninger,
- Denne mulighed kan ikke gøre et stort job med at gætte den bedste EDDType til en given gruppe af datafiler, men det er hurtigt, nemt og værd en prøve. Hvis kildefiler er egnede, fungerer det godt og er et godt første skridt i at generere detdatasets.xmlfor et filsystem med masser af undermapper, hver med datafiler fra forskellige datasæt.
EDDTableFraEML og EDDTableFraEMLBatch
Disse særlige EDDType genererer dendatasets.xmlat lave enEDDTableFraAsciiFilesdatasæt fra hver af de tabeller, der er beskrevet i enEcological Metadata SprogXML-fil. Den "Batch" variant arbejder på alle EML-filer i en lokal eller fjern mappe. Se venligst den separatedokumentation for EDDTableFraEML.
EDDTableFraInPort
Denne særlige EDDType genererer dendatasets.xmlat lave enEDDTableFraAsciiFilesDatasæt fra oplysningerne i etiport-xmlfil. Hvis du kan få adgang til kildedatafilen (inport-xml-filen skal have spor for, hvor man finder den) , du kan lave et arbejdsdatasæt iERDDAP.
Følgende trin beskriver, hvordan du bruger GenererDatasets Xml med en inport-xml-fil for at få et arbejdsdatasæt iERDDAP.
- Når du har adgang til inport-xml-filen (enten som URL eller en lokal fil) : run GenererDatasets Xml, angive EDDType=EDDTableFraInPort, angive inport-xml URL eller fuld filnavn, angive, hvilkeChild=0, og angive de andre ønskede oplysninger (hvis kendt) . (På dette tidspunkt behøver du ikke at have kildedatafilen eller angive dens navn.) Den somChild=0 indstilling fortæller GenererDatasets Xml til at skrive oplysninger om alle af<Virksomhedsoplysninger><enhed>'s i inport-xml-filen (hvis der er nogen) . Det udskriver også en baggrundsinformationsoversigt, herunder alle download-url's opført i inport-xml-filen.
- Kig gennem alle disse oplysninger (herunder baggrundsoplysninger, der GenererDatasets Xml print) og besøg download-url (s s s) for at forsøge at finde kildedatafilen (s s s) . Hvis du kan finde det (dem dem dem) Hent det (dem dem dem) i en mappe, der er tilgængeligERDDAP. (Hvis du ikke kan finde nogen kildedatafiler, er der ingen point i proces.)
- Løber Datasæt Xml igen. Hvis kildedatafilen svarer til en af inport-xml-filens<Virksomhedsoplysninger><enhed>'s, angive, hvilkeChild= Denne enheds taltal (f.eks. 1, 2, 3, ...) .ERDDAP™vil forsøge at matche kolonnenavnene i kildedatafilen til navne i enhedsoplysningerne og bede om at acceptere/reject/fix enhver discrepancies. Eller hvis inport-xml-filen ikke har nogen<Virksomhedsoplysninger><enhed>'s, angive, hvilkeChild=0.
- I bunden afdatasets.xmldet blev lavet af GenererDatasets Xml, revidere [global<addAttributes>] (#global-attributes) efter behov/desired.
- I bunden afdatasets.xmlder blev lavet af GenererDatasetsXml, tilføje / opsyn [<dataVariable>] (#datavariable) Oplysninger efter behov/desired til at beskrive hver af variablerne. Sørg for, at du korrekt identificerer hver variabels [ []<sourceName>] (#sourcenavn) (som det vises i kilden) , [ []<destinationName>] (# destinationnavn) (som har flere begrænsninger på tilladte tegn endsourceName) , [ []<enheder>] (#enheder) (især hvis det er entid eller timetamp variabelhvor enhederne skal angive formatet) , og [ []<missing\_value>] (#missing_værdi) ,
- Når du er tæt på at afslutte, bruger gentagne gange denBilleder af DasDdsværktøj til hurtigt at se, om beskrivelsen af datasæt er gyldig, og hvis datasættet vises iERDDAP™som du ønsker det.
Det ville være fantastisk, hvis grupper ved hjælp af InPort til at dokumentere deres datasæt ville også brugeERDDAP™at gøre de faktiske data tilgængelige:
- ERDDAP™er en løsning, der kan bruges lige nu, så du kan opfyldeNOAA'sOffentlig adgang til forskningsresultater (PARR) kravLige nu, ikke på en vis vryg tid i fremtiden.
- ERDDAP™gør de faktiske data tilgængelige for brugere, ikke blot metadata. (Hvad er metadata uden data?)
- ERDDAP™understøtter metadata (Især enheder af variabler) , i modsætning til nogle andre dataserver software betragtes. (Hvad er data uden metadata?) At bruge software, der ikke understøtter metadata, er at invitere dataene til at blive misforstået og misbrugt.
- ERDDAP™er gratis og open-source software i modsætning til nogle andre software betragtes. Udvikling af udvikling afERDDAP™er allerede betalt for. Support til supportERDDAP™Brugere er gratis.
- ERDDAP's udseende kan nemt tilpasses til at reflektere og fremhæve din gruppe (Ikke ikkeERDeller eller ellerERDDAP) .
- ERDDAP™Tilbyder en konsekvent måde at få adgang til alle datasæt.
- ERDDAP™kan læse data fra mange typer af datafiler og fra relationelle databaser.
- ERDDAP™kan håndtere store datasæt, herunder datasæt, hvor kildedataene er i mange datafiler.
- ERDDAP™kan skrive data til mange typer af datafiler, på brugerens anmodning, herunder videnskabelige data filtyper som netCDF, ESRI .csv, ogODV .txt.
- ERDDAP™kan foretage brugerdefinerede diagrammer og kort over undersæt af dataene, baseret på brugerens specifikationer.
- ERDDAP™kan håndtere ikke-data datasæt såsom samlinger af billede, video eller lydfiler.
- ERDDAP™er blevet installeret og brugt påmere end 60 institutioner over hele verden.
- ERDDAP™er angivet som en af de dataservere, der anbefales til brug inden forNOAAi områdetNOAADatatilpasset direktiv, i modsætning til nogle andre software betragtes som.
- ERDDAP™er et produkt afNMFS/ / / /NOAA, så brug det indenforNMFSog og ogNOAAbør være et punkt af stolthed forNMFSog og ogNOAA.
Angiv venligstERDDAP™et forsøg. Hvis du har brug for hjælp, skal du skrive en besked i meddelelsenERDDAP™Google-gruppe.
addFillValueAttributes
Denne særlige EDDType mulighed er ikke en datasæt type. Det er et værktøj, der kan tilføje \_FillValue attributter til nogle variabler i nogle datasæt. Se endnuaddFillValueAttributes.
FindDuplicate Tidstid
Denne særlige EDDType mulighed er ikke en datasæt type. I stedet fortæller det GenererDatasets Xml at søge gennem en samling af gitterded.nc (og relateret) filer til at finde og udskrive en liste over filer med duplikerede tidsværdier. Når det ser på tidsværdierne, omdanner den dem fra de oprindelige enheder til"seconds since 1970-01-01"I tilfælde af forskellige filer bruger forskellige enheder strenge. Du skal angive startmappen (med eller uden trailing slash) , filnavnet almindeligt udtryk (f.eks. .\*.nc ) , og navnet på den tidsvariable i filerne.
ncdump
Denne særlige EDDType mulighed er ikke en datasæt type. I stedet fortæller det GenererDatasets Xml til at udskrive enncdump\-lignende udskrifter af en.nc,.ncml eller.hdffil. Det bruger faktisk netcdf-java'sNCdump, som er et mere begrænset værktøj end C-versionen af NCdump. Hvis du bruger denne mulighed, vil GenererDatasetsXml bede dig om at bruge en af mulighederne: "-h" (Sidehoved) "-c" (koordinater) , "-vall" (standard) , "-v var1;var2", "-v var1 (0,0:10,0:20) ". Dette er nyttigt, fordi uden ncdump det er svært at vide, hvad der er i en.nc,.ncml eller.hdffil og dermed, hvilken EDDType du skal angive for GenererDatasets Xml. For et.ncml fil, vil dette udskrive ncdump output for resultatet af.ncml filændringer, der anvendes på underliggende.nceller eller eller.hdffil.
Billeder af DasDds
- Billeder af DasDds er et kommandolinjeprogram, som du kan bruge, når du har oprettet et første forsøg på XML for et nyt datasæt idatasets.xml. Med DasDds kan du gentagne gange teste og tilpasse XML. Når du bruger DasDds programmet:
- På Windows, første gang du kører DasDds, skal du redigere DasDds. bat fil med en tekst editor til at ændre stien til java. exe fil, så Windows kan findeJava.
- DasDds spørger dig omdatasetIDfor det datasæt, du arbejder på.
- DasDds forsøger at oprette datasættet med detdatasetID.
- DasDds udskriver altid masser af diagnostiske meddelelser. Hvis du bruger "DasDds -verbose", vil DasDds udskrive flere diagnostiske meddelelser end normalt.
- For sikkerhed sletter DasDds altid alle de cachelagrede datasæt oplysninger (filer filer filer) for datasættet, før du forsøger at oprette datasættet. Dette er den tilsvarende indstilling af enhård flagSå for aggregerede datasæt, vil du muligvis justere filenNameRegex midlertidigt for at begrænse antallet af filer databyggeren finder.
- Hvis datasættet ikke indlæses (uanset årsag) , DasDds vil stoppe og vise dig fejlmeddelelsen for den første fejl, det finder.
Forsøg ikke at gætte, hvad problemet kan være. Læs ERROR-meddelelsen omhyggeligt.
Hvis det er nødvendigt, skal du læse de tidligere diagnostiske meddelelser for at finde flere spor og oplysninger, også. - Foretag en ændring i datasættets XML for at forsøge at løse problemet
og lad DasDds forsøge at oprette datasættet igen. - Hvis du gentagne gange løser hvert problem, vil du i sidste ende løse alle problemerne
og datasættet vil indlæse.
- Alle DasDds output (Diagnostik og resultater) skrives til skærmen og til bigParentDirectory /logs/DasDds.log .
- Hvis DasDds kan oprette datasættet, vil DasDds derefter vise dig de.das (Datasæt Attribute Structure) ,.dds (Datasæt Descriptor Strukturstruktur) , og.timeGaps (Tidsforskelle) Oplysninger om datasættet på skærmen og skrive dem til bigParentDirectory /logs/DasDds.out.
- Ofte vil du gerne foretage nogle små ændringer til datasættets XML for at rense datasættets metadata og rerun DasDds.
Bonus Bonus Bonus Bonus Brugervejledning:ERDDAP-lint
ERDDAP-lint er et program fra Rob Fuller og Adam Leadbetter of te Irish Marine Institute, som du kan bruge til at forbedre metadata på dinERDDAP™Datasets.ERDDAP-lint "fordele regler og en simpel statisk web ansøgning for at køre nogle verifikationstest mod dinERDDAP™server. Alle testne kører i webbrowseren." LigesomUnix/Linux lint værktøj, kan du redigere de eksisterende regler eller tilføje nye regler. Se endnuERDDAP-lintfor mere information.
Dette værktøj er især nyttigt for datasæt, som du har oprettet for lidt tid siden, og nu ønsker at bringe op til dato med dine aktuelle metadata præferencer. For eksempel tidlige versioner af GenererDatasets Xml gjorde ikke nogen indsats for at skabe globalcreator\_name,creator\_email, skaber\_type ellercreator\_urlmetadata. Du kan brugeERDDAP-lint til at identificere de datasæt, der mangler disse metadata attributter.
Tak til Rob og Adam for at skabe dette værktøj og gøre det tilgængeligt for denERDDAP™fællesskab.
Den grundlæggende struktur afdatasets.xmlFilen fil
De krævede og valgfrie tags tilladt i etdatasets.xmlfilfil (og antallet af gange, de kan vises) vises nedenfor. I praksis, dindatasets.xmlvil have masser af<Dataset>s tags og kun bruge de andre tags inden for<erddapDatasets> efter behov.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<erddapDatasets>
<angularDegreeUnits>...</angularDegreeUnits> <!-- 0 or 1 -->
<angularDegreeTrueUnits>...</angularDegreeTrueUnits> <!-- 0 or 1 -->
<cacheMinutes>...</cacheMinutes> <!-- 0 or 1 -->
<commonStandardNames>...</commonStandardNames> <!-- 0 or 1 -->
<convertInterpolateRequestCSVExample /> <!-- 0 or more -->
<convertInterpolateDatasetIDVariableList /> <!-- 0 or more -->
<convertToPublicSourceUrl /> <!-- 0 or more -->
<decompressedCacheMaxGB>...</decompressedCacheMaxGB> <!-- 0 or 1 -->
<decompressedCacheMaxMinutesOld>...</decompressedCacheMaxMinutesOld> <!-- 0 or 1 -->
<drawLandMask>...</drawLandMask> <!-- 0 or 1 -->
<emailDiagnosticsToErdData>...</emailDiagnosticsToErdData> <!-- 0 or 1 -->
<graphBackgroundColor>...</graphBackgroundColor> <!-- 0 or 1 -->
<ipAddressMaxRequests>...</ipAddressMaxRequests> <!-- 0 or 1 -->
<ipAddressMaxRequestsActive>...<ipAddressMaxRequestsActive> <!-- 0 or 1 -->
<ipAddressUnlimited>...<ipAddressUnlimited> <!-- 0 or 1 -->
<loadDatasetsMinMinutes>...</loadDatasetsMinMinutes> <!-- 0 or 1 -->
<loadDatasetsMaxMinutes>...</loadDatasetsMaxMinutes> <!-- 0 or 1 -->
<logLevel>...</logLevel> <!-- 0 or 1 -->
<nGridThreads>...</nGridThreads> <!-- 0 or 1 -->
<nTableThreads>...</nTableThreads> <!-- 0 or 1 -->
<palettes>...</palettes> <!-- 0 or 1 -->
<partialRequestMaxBytes>...</partialRequestMaxBytes> <!-- 0 or 1 -->
<partialRequestMaxCells>...</partialRequestMaxCells> <!-- 0 or 1 -->
<requestBlacklist>...</requestBlacklist> <!-- 0 or 1 -->
<slowDownTroubleMillis>...</slowDownTroubleMillis> <!-- 0 or 1 -->
<subscriptionEmailBlacklist>...</subscriptionEmailBlacklist> <!-- 0 or 1 -->
<unusualActivity>...</unusualActivity> <!-- 0 or 1 -->
<updateMaxEvents>...</updateMaxEvents> <!-- 0 or 1 --><standardLicense>...</standardLicense> <!-- 0 or 1 -->
<standardContact>...</standardContact> <!-- 0 or 1 -->
<standardDataLicenses>...</standardDataLicenses> <!-- 0 or 1 -->
<standardDisclaimerOfEndorsement>...</standardDisclaimerOfEndorsement> <!-- 0 or 1 -->
<standardDisclaimerOfExternalLinks>...</standardDisclaimerOfExternalLinks> <!-- 0 or 1 -->
<standardGeneralDisclaimer>...</standardGeneralDisclaimer> <!-- 0 or 1 -->
<standardPrivacyPolicy>...</standardPrivacyPolicy> <!-- 0 or 1 -->
<startHeadHtml5>...</startHeadHtml5> <!-- 0 or 1 -->
<startBodyHtml5>...</startBodyHtml5> <!-- 0 or 1 -->
<theShortDescriptionHtml>...</theShortDescriptionHtml> <!-- 0 or 1 -->
<endBodyHtml5>...</endBodyHtml5> <!-- 0 or 1 --><user username="..." password="..." roles="..." /> <!-- 0 or more -->
<dataset>...</dataset> <!-- 1 or more -->
</erddapDatasets>
Det er muligt, at andre kodninger vil blive tilladt i fremtiden, men for nu anbefales kun ISO-8859-1.
XInclude
Ny i version 2.25 er understøttelse af XInclude. Dette kræver, at du bruger SAX-parser<BrugSaxParser>true</useSaxParser> i din opsætning.xml. Dette kan give dig mulighed for at skrive hver datasæt i sin egen fil, og derefter inkludere dem alle i den vigtigstedatasets.xml, genbrug dele af datasæt definitioner eller begge. Hvis du vil se et eksempel,EDDTestDataset.Opsæt XInclude for at genbruge variable definitioner.
Noter
Arbejde med arbejdetdatasets.xmlfil er et ikke-trivial projekt. Læs alle disse noter omhyggeligt. Når du har valgt enDatasæt type, læs venligst den detaljerede beskrivelse af det omhyggeligt.
Valg af datasæt Type
I de fleste tilfælde er der bare énERDDAP™datasæt type, der er egnet til en given datakilde. I et par tilfælde (fx,.ncfiler filer filer) , der er et par muligheder, men normalt en af dem er absolut bedste. Den første og største beslutning, du skal træffe, er det hensigtsmæssigt at behandle datasættet som en gruppe multidimensionelle arrays (hvis det er tilfældetEDDGridDatasæt typer) eller som en databaselignende tabel af data (hvis det er tilfældetEDDTable datasæt typer) .
Servicerer data som er
Normalt er der ingen grund til at ændre datakilden (f.eks. konvertere filer til en anden filtype) så detERDDAP™kan tjene det. En af antagelserne afERDDAP™er, at datakilden vil blive brugt som er. Normalt fungerer dette fint. Nogle undtagelser er:
- Relational Databaser og Cassandra --ERDDAP™kan tjene data direkte fra relationelle databaser og Cassandra. Men for sikkerhed, belastning balance og præstationsproblemer, kan du vælge at oprette en anden database med de samme data eller gemme dataene tilNetCDFv3.ncfiler og harERDDAP™tjene data fra den nye datakilde. Se endnuEDDTableFraDatabaseog og ogEDDTableFraCassandra.
- Understøttede datakilder --ERDDAP™kan støtte et stort antal datakilder, men verden er fyldt med 1000's (millioner?) af forskellige datakilder (navnlig datafilstrukturer) . HvisERDDAP™understøtter ikke din datakilde:
- Hvis datakilden erNetCDF .ncfiler, du kan brugeNcMLtil at ændre datafiler på farten, eller brugNCOtil permanent at ændre datafiler.
- Du kan skrive oplysningerne til en datakildestype, somERDDAP™understøtter.NetCDF-3.ncfiler er en god, generel anbefaling, fordi de er binære filer, derERDDAP™kan læse meget hurtigt. For tabulære data, overveje at gemme dataene i en samling af.ncfiler, der bruger deCF Diskret Sampling Geometries (DSG) Contiguous Ragged Array datastrukturer og så kan håndteres medERDDAP'sEDDTableFraNcCFFiles). Hvis de er logisk organiseret (hver med data til en smule plads og tid) ,ERDDAP™kan udtrække data fra dem meget hurtigt.
- Du kan anmode om, at support til denne datakilde føjes tilERDDAP™via e-mailing Chris. John på noaa.gov.
- Du kan tilføje support til den datakilde ved at skrive koden til at håndtere den selv. Se endnute te te teERDDAP™Programmeringsguide
- Hastighed --ERDDAP™kan læse data fra nogle datakilder meget hurtigere end andre. For eksempel læsningNetCDFv3.ncfiler er hurtigt og læsning ASCII filer er langsommere. Og hvis der er en stor (>1000) eller kæmpe (>0.000) antal kildedatafiler,ERDDAP™vil reagere på nogle data anmodninger langsomt. Normalt er forskellen ikke mærkbar på mennesker. Men hvis du trorERDDAP™Du kan vælge at løse problemet ved at skrive oplysningerne til en mere effektiv opsætning. (normalt: et par, velstruktureret,NetCDFv3.ncfiler filer filer) . For tabulære data, sedenne rådgivning.
Hint
Det er ofte nemmere at generere XML til et datasæt ved at lave en kopi af en arbejdsdatasæt beskrivelse i dataset.xml og derefter ændre den.
Særlige tegn
Sidendatasets.xmler en XML-fil, du SKAL være& kode"&", "<", og ↓" på ethvert indhold som "&", "<" og ">". Forkert:<titel> Tid og Tider</titel> Ret:<titel> Tid ogamp; Tider</titel>
XML tolererer ikke synsfejl
Når du redigerer dataset.xml-filen, er det en god ide at bekræfte, at resultatet erveldannet XMLved at indsætte XML-teksten i en XML-tjeker somxmlvalidation.
Fejlfinding af tips
- Andre måder at diagnosticere problemer med datasets
Ud over de to vigtigsteVærktøjsværktøjer, - log.txter en logfil med alleERDDAP's diagnostiske meddelelser.
- The The The The The The TheDaglig rapporthar mere information end statussiden, herunder en liste over datasæt, der ikke indlæses, og undtagelserne (fejl fejl fejl) de genererede.
- The The The The The The TheStatus sideer en hurtig måde at tjekkeERDDAP's status fra enhver webbrowser. Det omfatter en liste over datasæt, der ikke indlæsede (selvom ikke de relaterede undtagelser) og opgaveThread statistik (at vise fremskridtene forEDDGridKopiere Kopierog og ogEDDTableCopyDatasæt og alleEDDGridFraFileseller eller ellerEDDTableFraFilesDatasæt, der brugercacheFraUrl (men ikke cache Størrelse GB) ) .
- Hvis du sidder fast, se voressektion om at få ekstra støtte.
Særlige variabler
- Længden, breddegrad, højde (eller dybde) , og tid (LLAT) variabel variabel variabel variabel destinationNames er specielle.
- Generelt:
- LLAT variabler er kendt forERDDAP™hvis aksens variable (for for forEDDGridDatasæt) eller datavariables (for EDDTable datasæt) destinationNameer "langitude", "latitude", "altitude", "dybde", eller"time".
- Vi opfordrer dig til at bruge disse standardnavne til disse variabler, når det er muligt. Ingen af dem er påkrævet. Hvis du ikke bruger disse særlige variable navne,ERDDAP™genkender ikke deres betydning. For eksempel behandles LLAT-variabler specielt ved Make A Graph ( datasetID .ografi) : hvis X Axis variablen er "langitude" og Y Axis variablen er "latitude", vil du få et kort (ved hjælp af en standard projektion og med en jordmaske, politiske grænser osv.) i stedet for en graf.
- ERDDAP™vil automatisk tilføje masser af metadata til LLAT variabler (for eksempel "ioos\_category", "enheder", og flere standarder-relaterede attributter som "\_CoordinateAxisType") .
- ERDDAP™vil automatisk tilføje masser af globale metadata i forbindelse med de valgte dataundersæt (for eksempel "geospatial\_lon\_min") .
- Klienter, der understøtter disse metadata standarder, vil kunne drage fordel af de tilføjede metadata for at positionere dataene i tid og rum.
- Klienter vil finde det nemmere at generere forespørgsler, der omfatter LLAT-variabler, fordi variablens navne er den samme i alle relevante datasæt.
- For "langitude" variabel og "latitude" variabel:
- Brug afdestinationNames "longitude" og "latitude" kun hvis denenhederer grader\_east og grader\_north, henholdsvis. Hvis dine data ikke passer til disse krav, skal du bruge forskellige variable navne (for eksempel x, y, lonRadians, latRadians) .
- Hvis du har længde- og breddegradsdata udtrykt i forskellige enheder og dermed med forskelligedestinationNames, for eksempel lonRadians og latRadians, Make A Graph ( datasetID .ografi) vil lave grafer (for eksempel time serier) i stedet for kort.
- For "altitude" variabel og "dybde" variabel:
- Brug afdestinationName"altitude" for at identificere data afstanden over havet niveau (positivt arbejde" værdier) . Valgfrit kan du bruge "altitude" til afstande under havet, hvis værdierne er negativ under havet (eller hvis du bruger, f.eks. [ []<Navnligscale\_factor"type: 1 1 1 1</att>] (#skala_faktor) til at konvertere dybdeværdier til højdeværdier.
- Brug afdestinationName"dybde" for at identificere data afstanden under havet niveau (positive værdier) .
- Et datasæt kan ikke have både "altitude" og "dybde" variabler.
- Til disse variable navne,enhederskal være "m", "meter", eller "metre". Hvis enhederne er forskellige (for eksempel fedthoms) , du kan bruge [ []<Navnligscale\_factor↓ nogle af nogle Værdiværdi </att>] (#skala_faktor) og [<ont navn</att>] (#enheder) at konvertere enheder til meter.
- Hvis dine data ikke passer til disse krav, skal du bruge en andendestinationName (for eksempel, overGround, afstand Tolvtom) .
- Hvis du kender de lodrette CRS, bedes du angive det i metadata, f.eks. "EPSG:5829" (øjeblikkelig højde over havets overflade) , "EPSG:5831" (øjeblikkelig dybde under havoverfladen) , eller "EPSG:5703" (NAVD88 højde) .
- For te"time"variabel:
- Brug afdestinationName "time"kun for variabler, der omfatter hele dato+tid (eller dato, hvis det er alt der er) . Hvis der f.eks. er separate kolonner til dato og tidspunktOfDay, ikke bruger det variable navn"time".
- Se endnuenhederfor flere oplysninger om attributten for tid og tidStamp variabler.
- Tidsvariable og relateredetidstid Frimærkevariablerer unikke i, at de altid konverterer dataværdier fra kildens tidsformat (uanset hvad det er) i en numeriske værdi (sekunder siden 1970-01T00:00:00Z) eller en streng værdi (ISO 8601:2004 (E) formatformat) , afhængigt af situationen.
- Når en bruger anmoder om tidsdata, kan de anmode den ved at angive tiden som en numeriske værdi (sekunder siden 1970-01T00:00:00Z) eller en streng værdi (ISO 8601:2004 (E) formatformat) .
- ERDDAP™har et værktøj tilKonverter en Numeric Tid til/fra en streng tid.
- Se endnuSådan kan duERDDAPTilbud med Time.
Hvorfor kun to grundlæggende datastrukturer?
- Da det er svært for menneskelige klienter og computer klienter at håndtere et komplekst sæt af mulige datasæt strukturer,ERDDAP™bruger kun to grundlæggende datastrukturer:
- a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a agitteret datastruktur (for eksempel for satellitdata og modeldata) og og og
- a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a aÆndret datastruktur (for eksempel til in-situ buoy, station og trajectory data) .
- Bestemt, ikke alle data kan udtrykkes i disse strukturer, men meget af det kan. Tabel, især, er meget fleksible datastrukturer (se på succesen af relationelle databaseprogrammer) .
- Dette gør dataforespørgsler lettere at konstruere.
- Dette gør datareaktioner en enkel struktur, hvilket gør det nemmere at betjene dataene i en bredere vifte af standard filtyper (som ofte bare understøtter enkle datastrukturer) . Dette er den vigtigste grund, at vi opsætterERDDAP™denne måde.
- Dette gør det meget nemt for os (eller nogen) at skrive klient software, der arbejder med alleERDDAP™Datasets.
- Det gør det nemmere at sammenligne data fra forskellige kilder.
- Vi er meget opmærksomme på, at hvis du bruges til at arbejde med data i andre datastrukturer, kan du i første omgang tro, at denne tilgang er forenklet eller utilstrækkelig. Men alle datastrukturer har tradeoffs. Ingen er perfekt. Selv de do-it-all strukturer har deres ulemper: arbejde med dem er komplekse, og filerne kan kun skrives eller læses med særlige softwarebiblioteker. Hvis du acceptererERDDAP's tilgang nok til at forsøge at arbejde med det, kan du finde, at det har sine fordele (Især støtte til flere filtyper, der kan holde dataenes svar) . The The The The The The TheERDDAP™lysbilledshow (særligtdatastrukturer glide) taler meget om disse problemer.
- Og selvom denne tilgang lyder mærkeligt for dig, mestERDDAP™Kunderne vil aldrig bemærke -- de vil blot se, at alle datasæt har en dejlig enkel struktur, og de vil være taknemmelige, at de kan få data fra en bred vifte af kilder returneret i en bred vifte af filformater.
Dimensioner Dimensioner Dimensioner
- Hvad hvis gittervariablerne i kildedatasættet DON'T deler de samme aksevariabler?
I nærheden af In In In In In In In In In In In In In InEDDGridDatasæt, alle datavariabler skal bruge (Del dele) alle aksevariabler. Så hvis en kildedatasæt har nogle variabler med et sæt dimensioner, og andre variabler med et andet sæt dimensioner, skal du lave to datasæt iERDDAP. For eksempel kan du lave enERDDAP™Datasæt med titlen "Noe Title (på overfladen) " at holde variabler, der bare bruger\[tidstid\]\[breddegrad\]\[Længde\]dimensioner og gøre en andenERDDAP™Datasæt med titlen "Noe Title (ved dybder) " for at holde de variable, der bruger\[tidstid\]\[højdehøjde\]\[breddegrad\]\[Længde\]. Eller måske kan du ændre datakilden til at tilføje en dimension med en enkelt værdi (for eksempel højde=0) at gøre variablerne konsekvent.
ERDDAP™håndterer ikke mere komplicerede datasæt (for eksempel modeller, der bruger et mesh af trekanter) godt. Du kan tjene disse datasæt iERDDAP™ved at oprette to eller flere datasæt iERDDAP™ (så alle datavariabler i hvert nyt datasæt deler det samme sæt af aksevariabler) , men det er ikke, hvad brugerne ønsker. For nogle datasæt, kan du overveje at gøre en almindelig gitteret version af datasættet og tilbyde den i tillæg til de oprindelige data. Nogle klient software kan kun håndtere et almindeligt gitter, så ved at gøre dette, du når flere klienter.
Projekterede Gridded Data
Nogle gitterdata har en kompleks struktur. For eksempel, satellit niveau 2 ("lang track") Data bruger ikke en simpel projektion. Modelers (og andre) arbejder ofte med gitterded data på forskellige ikke-cylindriske projektioner (for eksempel konisk, polar stereografik, tripolar) eller i ustrukturerede gitter (en mere kompleks datastruktur) . Nogle slutbrugere ønsker disse data som er, så der er ingen tab af oplysninger. Til disse klienter,ERDDAP™kan tjene dataene, som er, kun hvis dataeneERDDAP™Administrator bryder de originale datasæt i et par datasæt, med hver del herunder variabler, der deler de samme aksevariabler. Ja, det synes mærkeligt for folk involveret, og det er forskelligt fra de flesteOPeNDAPservere. Men men men men menERDDAP™understreger, at de data, der findes i mange formater. Det er muligt, fordiERDDAP™bruger/kræver en mere ensartet datastruktur. Selv om det er lidt akavet (dvs., anderledes end forventet) ,ERDDAP™kan distribuere projekterede data.
\[Ja,ERDDAP™kunne have løst krav til datastrukturen, men holde kravene til outputformaterne. Men det ville føre til forvirring blandt mange brugere, især nybegyndere, da mange tilsyneladende gyldige anmodninger om data med forskellige strukturer ville være ugyldige, fordi dataene ikke ville passe ind i filtypen. Vi vender tilbage til det nuværende systems design.\]
Nogle slutbrugere ønsker data i en lat lon cylindrisk projektion som Equirectangular / plade carrée eller Mercator) for nem brug i forskellige situationer. I disse situationer opfordrer vi os tilERDDAP™administrator til at bruge nogle andre software (NCO?Matlab? R?? IDV? ...???) til at omdøbe dataene på et geografisk område (Equirectangulær projektion / plade bilrée) eller anden cylindrisk projektion og tjene den form for data iERDDAP™som et andet datasæt. Dette svarer til, hvad folk gør, når de konverterer satellitniveau 2 data i niveau 3 data. Et sådant værktøj erNCOsom tilbyder udvidelsesmuligheder til regridding data.
GIS og Reprojektering Data
Da GIS-verdenen ofte er kortorienterede, tilbyder GIS-programmer som regel support til omprojektering af data, dvs. at plotte dataene på et kort med en anden projektion.
I øjeblikket,ERDDAP™behøver ikke værktøjer til at omdøbe data. I stedet anbefaler vi, at du bruger et eksternt værktøj til at lave en variant af datasættet, hvor data er blevet omarbejdet fra sin oprindelige form på en rektangulær (breddegrad længde) array, der passer tilERDDAP.
Efter vores mening, CF/DAPVerden er lidt anderledes end GIS-verdenen og arbejder på et lidt lavere niveau.ERDDAP™afspejler det. Generelt,ERDDAP™er designet til at arbejde primært med data (Ikke kort) og ønsker ikke at ændre (f.eks. omprojekter) disse data. For For For For ForERDDAP™, gitterded data er ofte / sædvanligvis / især forbundet med lat lon værdier og en cylindrisk projektion, og ikke nogle projektions x,y værdier. I alle tilfælde,ERDDAP™gør ikke noget med datas projektion; det passerer bare data gennem, som det er, med sin nuværende projektion, på den teori, at en omprojektering er en betydelig ændring af data ogERDDAP™ønsker ikke at være involveret i væsentlige ændringer. Derudover kan efterfølgende brugere naivt omarbejde dataene igen, som ikke ville være så godt som bare at gøre en omprojektering. (Så hvis det er tilfældetERDDAP™administrator ønsker at tilbyde data i en anden projektion, fint; bare omprojekt dataene offline og tilbyde, at som et andet datasæt iERDDAP. Masser af satellitbaserede datasæt tilbydes, da NASA kalder niveau 2 (Strækning) og som niveau 3 (Equirectangulær projektion) versioner.) Hvornår Hvornår skal man HvornårERDDAP™gør kort (direkte eller viaWMSeller KML) ,ERDDAP™i øjeblikket kun tilbyder at lave kort med Equirectangular / plade bilrée projektion, som er heldigvis accepteret af de fleste kortprogrammer.
Vi opfordrer os tilERDDAP™Administratorer til at bruge nogle andre software (NCO?Matlab? R?? IDV? ...???) til at omdøbe dataene på et geografisk område (Equirectangulær projektion / plade bilrée) eller anden cylindrisk projektion og tjene den form for data iERDDAP™som et andet datasæt. Dette svarer til, hvad folk gør, når de konverterer satellitniveau 2 data i niveau 3 data. Et sådant værktøj erNCOsom tilbyder udvidelsesmuligheder til regridding data.
Vi håber, atERDDAP™vil have indbyggede værktøjer til at tilbyde kort med andre projektioner i fremtiden. Vi håber også at have bedre forbindelser til GIS-verdenen i fremtiden (andre end den nuværendeWMSServiceservice) . Det er forfærdeligt, at i denne "moderne" verden, forbindelserne mellem CF /DAPVerden og GIS-verdenen er stadig så svag. Begge af disse ting er på listen To Do. (Hvis du ønsker at hjælpe, især med tilslutningERDDAP™Send en e-mail til MapServer. John på noaa.gov .)
Datatyper
ERDDAP™understøtter følgende datatyper (navnene er tilfælde følsomme;'u'præfiks står for "usigned"; antallet af navne i andre systemer er antallet af bits) :
byte
- byte har underskrevet talværdier med en række -128 til 127. I andre systemer kaldes dette undertiden int8. Dette kaldes "tinyint" af SQL og Cassandra. ERDDAP™Konverteringerbooleanfra nogle kilder (f.eks. SQL og Cassandra) ind i bytesERDDAP™med en værdi på 0=false, rå og 127=missing\_value.
ubyte
- ubyte har ikke-signede værdier med en række 0 til 255. I andre systemer kaldes dette undertiden uint8.
Kort kort kort kort
- Kort kort kort kort har underskrevet talværdier med en række -32768 til 32767. I andre systemer kaldes dette undertiden int16. Dette kaldes "lilleint" af SQL og Cassandra.
Ukort
- Ukort har ikke-signede værdier med en række 0 til 65535. I andre systemer kaldes dette undertiden uint16.
int
- int har underskrevet talværdier med en række -2147483648 til 2147483647. I andre systemer kaldes dette undertiden int32. Dette kaldes "integer|numerisk (?) " af SQL og "int" af Cassandra.
uint
- uint har ikke-signede værdier med en række 0 til 4294967295. I andre systemer kaldes dette nogle gange uint32.
længe
- længe har underskrevet mindsteværdier med en række -9223372036854775808 til 9223372036854775807. I andre systemer kaldes dette undertiden int64. Dette kaldes "bigint|numerisk (?) " af SQL og "bigint" af Cassandra. Fordi mange filtyper ikke understøtter lange data, er deres brug diskotek. Brug dobbelt i stedet (se nedenfor) .
Ulong
- Ulong har ikke-signede værdier med en række 0 til 18446744073709551615 I andre systemer kaldes dette undertiden uint64. Fordi mange filtyper ikke understøtter ulong data, deres brug er discouraged. Brug dobbelt i stedet (se nedenfor) .
flyder
- flyder er en IEEE 754 flyt med en række ca +/- 3.402823466e+38. I andre systemer kaldes dette undertiden fly32. Dette kaldes "realistisk|flyder (?) |decimal decimal decimal (?) |numerisk (?) " af SQL og "float" af Cassandra. Den særlige værdi NaN betyder ikke-a-tal. ERDDAP™Konverterer positive og negative uendelighedsværdier til NaN.
Dobbelt dobbelt
- Dobbelt dobbelt er en IEEE 754 dobbelt med en række ca. +/- 1.7931348623157E+308. I andre systemer kaldes dette undertiden fly64. Dette kaldes "dobbelt præcision|flyder (?) |decimal decimal decimal (?) |numerisk (?) " af SQL og "double" af Cassandra. Den særlige værdi NaN betyder ikke-a-tal. ERDDAP™Konverterer positive og negative uendelighedsværdier til NaN.
Billeder af char
- Billeder af char er en enkelt, 2-byte (16-bit) Unicode UCS-2 tegnspænder fra\u0000 (#0) gennem gennem gennem\uffff (#65535) . \uffff's definition er ikke-a-Character, analogt til en dobbelt værdi af NaN. Brugen af char er discouraged, fordi mange filtyper enten ikke understøtter chars eller kun støtte 1-byte chars (se nedenfor) . Overvej at bruge String i stedet. Brugere kan bruge char variabler til at lave grafer.ERDDAP™vil konvertere tegn til deres Unicode-kodepunktnummer, som kan bruges som numeriske data.
streng streng streng
- streng streng streng er en sekvens på 0 eller mere, 2-byte (16-bit) Unicode UCS-2 tegn. ERDDAP™Brug/fortolker en 0-længde streng som en manglende værdi.ERDDAP™understøtter ikke en ægte null streng. Den teoretiske maksimale streng længde er 2147483647 tegn, men der er sandsynligvis forskellige problemer på forskellige steder selv med lidt kortere strenge. BrugERDDAP's String for SQL's karakter, varchar, figur varierende, binær, var binær, interval, array, multiset, xml, og enhver anden database data type, der ikke passer rent med andre andreERDDAP™datatype. BrugERDDAP's String for Cassandra's "tekst" og enhver anden Cassandra data type, der ikke passer rent med nogen andenERDDAP™datatype.
Før før førERDDAP™v2.10,ERDDAP™støttede ikke usignede integer typer internt og tilbød begrænset støtte i sine datalæsere og forfattere.
Datatypebegrænsninger
Du kan tænke påERDDAP™som et system, der har virtuelle datasæt, og som arbejder ved at læse data fra en datasæts kilde til en intern datamodel og skrive data til forskellige tjenester (f.eks.(OPeN)DAP,WMS) og filtyper som svar på brugeranmodninger.
- Hver inputlæser understøtter et undersæt af de datatyper, somERDDAP™understøtter. Så læsning af data tilERDDAP's interne datastrukturer er ikke et problem.
- Hver output forfatter understøtter også et undersæt af datatyper. Det er et problem, fordiERDDAPskal f.eks. trykke lange data i filtyper, der ikke understøtter lange data.
Nedenfor er forklaringer på begrænsningerne (eller ingen) af forskellige output forfattere og hvordanERDDAP™beskæftiger sig med problemerne. Sådanne komplikationer er en del afERDDAP's mål at gøre deparate systemer interoperable.
ASCII
- ASCII (.csv,.tsv, osv.) tekstfiler -
- Alle numeriske data er skrevet via sin strenge repræsentation (med manglende dataværdier som 0-længde strenge) .
- Selv om selvomERDDAP™skriver lange og ulange værdier korrekt til ASCII tekstfiler, mange læsere (f.eks. regnearksprogrammer) kan ikke håndtere lange og ulange værdier og i stedet konvertere dem til dobbeltværdier (med tab af præcision i nogle tilfælde) .
- Char- og strengdata er skrevet via JSON Strings, som håndterer alle Unicode-tegn (Især "uusuelle" tegn ud over ASCII #127, f.eks. Euro-karakteren vises som "u20ac") .
JSON
- JSON (.json,.jsonlCSV, osv.) tekstfiler -
- Alle numeriske data er skrevet via sin strenge repræsentation.
- Char- og strengdata er skrevet som JSON Strings, som håndterer alle Unicode tegn (Især "uusuelle" tegn ud over ASCII #127, f.eks. Euro-karakteren vises som "u20ac") .
- Manglende værdier for alle numeriske datatyper vises som null.
.nc3 filer
- .nc3 filer understøtter ikke nogen usignede iteger datatyper. Før CF v1.9 støttede CF ikke usignede iteger typer. At håndtere dette,ERDDAP™2.10+ følger NUG-standarden og tilføjer altid en "\_Unsigned" egenskab med en værdi af "true" eller "false" for at angive, om dataene er fra en usigned eller underskrevet variabel. Alle ital attributter er skrevet som signerede attributter (f.eks. byte) med underskrevet værdier (f.eks. en ubyteactual\_rangeattribut med værdier 0 til 255, vises som en afte attribut med værdier 0 til -1 (inderst af de tos komplementære værdi af den udestående værdi). Der er ingen nem måde at vide, hvilke (signed) integer attributter skal læses som usignede attributter.ERDDAP™understøtter attributten "\_Unsigned", når den læser.nc3 filer.
- .nc3 filer understøtter ikke de lange eller ulange datatyper.ERDDAP™tilbud med dette ved midlertidigt at konvertere dem til at være dobbelt variabler. Doubler kan nøjagtigt repræsentere alle værdier op til +/- 9.007,199,254,740,992 som er 2^53. Dette er en ufuldkommelig løsning.Unidatanægter at foretage en mindre opgradering til.nc3 for at håndtere dette og relaterede problemer, citere.nc4 4 (en større ændring) som løsningen.
- CF-specifikationerne (før v1.9) sagde det understøtter en char data type, men det er uklart, hvis char kun er beregnet som byggesten af char arrays, som er effektivt strenge. Spørgsmål til deres postliste gav kun forvirrende svar. På grund af disse komplikationer, er det bedst at undgå char variabler iERDDAP™og brug strenge variabler når det er muligt.
- Traditionelt,.nc3 filer kun understøttede strenge med ASCII-enkode (7-bit, #0 - 127) tegn. NUG (og og ogERDDAP) forlænge det (start ~2017) ved at inkludere attributten "\_Encoding" med en værdi af "ISO-8859-1" (en udvidelse af ASCII, som definerer alle 256 værdier af hver 8-bit tegn) eller "UTF-8" for at angive, hvordan strenge data er kodet. Andre kodninger kan være lovlige, men er diskotek.
.nc4 filer
- .nc4 filer understøtter alleERDDAP's datatyper.
NCCSV filer
NCCSV 1.0 filer understøtter ikke nogen usignede iteger data typer. NCCSV 1.1+ filerStøtte alle usignede datatyper.
DAP
- (OPeN)DAP (.das, .dds, .asc ASCII filer og .dods binære filer) - - - -
- (OPeN)DAPhåndterer kort, ukort, int, uint, flyde og dobbelt værdier korrekt.
- (OPeN)DAPhar en "byte" datatype, som den definerer som usigned, mens historisk set, THREDDS ogERDDAP™har behandlet "byte" som underskrevet i deres(OPeN)DAPtjenester. At håndtere dette bedre,ERDDAP™2.10+ følger NUG-standarden og tilføjer altid en "\_Unsigned" egenskab med en værdi af "true" eller "false" for at angive, om dataene er, hvad der erERDDAP™opkald af eller ubyte. Alle byte og ubyte attributter skrives som "byte" attributter med underskrevet værdier (f.eks. en ubyteactual\_rangeattribut med værdier 0 til 255, vises som en afte attribut med værdier 0 til -1 (inderst af de tos komplementære værdi af den udestående værdi). Der er ingen nem måde at vide, hvilke "byte" attributter skal læses som ubyte attributter.
- (OPeN)DAPunderstøtter ikke signerede eller usignede lange.ERDDAP™Tilbyder dette ved midlertidigt at konvertere dem til at være dobbelt variabler og attributter. Doubler kan nøjagtigt repræsentere alle værdier op til 9.007,199,254,740,992 som er 2^53. Dette er en ufuldkommelig løsning.OPeNDAP (organisationen) nægter at foretage en mindre opgradering tilDAP2.0 for at håndtere dette og relaterede problemer, citereDAP4 4 (en større ændring) som løsningen.
- Fordi fordi(OPeN)DAPhar ingen separat char data type og teknisk kun understøtter 1-byte ASCII tegn (#0 - 127) i Strings, char datavariabler vises som 1-karakterer lange strenge i(OPeN)DAP.das, .dds og .dods svar.
- Teknisk set,(OPeN)DAPspecifikation understøtter kun strenge med ASCII-enkodede tegn (#0 - 127) . NUG (og og ogERDDAP) forlænge det (start ~2017) ved at inkludere attributten "\_Encoding" med en værdi af "ISO-8859-1" (en udvidelse af ASCII, som definerer alle 256 værdier af hver 8-bit tegn) eller "UTF-8" for at angive, hvordan strenge data er kodet. Andre kodninger kan være lovlige, men er diskotek.
Data type Kommentarer
- På grund af den dårlige støtte i lang tid, ulong og char data i mange filtyper, vi diskourage brugen af disse data typer iERDDAP. Når det er muligt, skal du bruge dobbelt i stedet for lang og ulong og bruge String i stedet for char.
- Metadata - Fordi(OPeN)DAP's .das og .dds reaktioner understøtter ikke lange eller ulange attributter eller datatyper (og i stedet vise dem som fordobler) , du måske i stedet ønsker at brugeERDDAP's tabulær repræsentation af metadata som set i denhttp.../erddap/ info info / / / / datasetID .html side (for eksempel, https://coastwatch.pfeg.noaa.gov/erddap/info/cwwcNDBCMet/index.html ) (som du også kan få i andre filtyper, f.eks. .csv,.htmlTable,.itx,.json,.jsonlCSV1,.jsonlCSV,.jsonlKVP,.mat,.nc,.nccsv,.tsv,.xhtml) eller.nccsvMetadata (for eksempel, https://coastwatch.pfeg.noaa.gov/erddap/tabledap/cwwcNDBCMet.nccsvMetadata selvom.nccsvMetadata er kun tilgængelig for tabulære datasæt) , begge af hvilke understøtter alle datatyper (Især lang, ulong og char) .
Mediefiler
Ikke alle data er arrays af tal eller tekst. Nogle datasæt består af eller omfatter mediefiler, såsom billede, lyd og videofiler.ERDDAP™har nogle særlige funktioner til at gøre det nemmere for brugerne at få adgang til mediefiler. Det er en to trin proces:
- Gør hver fil tilgængelig via sin egen URL, via et system, der understøtter byte område anmodninger. Den nemmeste måde at gøre dette er at sætte filerne i en mappe, derERDDAP™har adgang til. (Hvis de er i en beholder som en.zipfil, uzip dem, selvom du ønsker at tilbyde den.zipfil til brugere også.) Så skal du lave enEDDTableFraFileNamesDatasæt til at gøre disse filer tilgængelige viaERDDAP™, især viaERDDAP's"files"systemsystem.
Alle filer gjort tilgængelige via EDDTableFraFileNames ogERDDAP's"files"systemsupportanmodninger om rækkevidde. Normalt, når en klient (f.eks. en browser) gør en anmodning til en URL, det får hele filen som svar. Men med en anmodning om rækkevidde angiver anmodningen en række bytes fra filen, og serveren returnerer kun disse bytes. Dette er relevant her, fordi lyd- og videoafspillere i browsere kun fungerer, hvis filen kan tilgås via byte-forespørgsel.
Valgfrit: Hvis du har mere end én datasæt med tilknyttede mediefiler, kan du lave en EDDTableFraFileNames, der har en undermappe til hver gruppe filer. Fordelen er, at når du vil tilføje nye mediefiler til et nyt datasæt, alt hvad du skal gøre er at oprette en ny mappe og sætte filerne i mappen. mappen og filer vil automatisk blive tilføjet til EDDTableFraFileNames datasæt.
- Valgfrit: Hvis du har et datasæt, der indeholder henvisninger til mediefiler, skal du tilføje det tilERDDAP. Du kan f.eks. have en .csv-fil med en række for hver gang nogen så en hval og en kolonne, der indeholder navnet på en billedfil relateret til den syning. Hvis navnet på billedfilen er blot filnavnet, f.eks. Img20141024T192403Z, ikke en fuld URL, skal du tilføjeFileAccessBase Url og/eller filAccessSuffixattributter til metadata for detdataVariablesom angiver baseURL og suffik til disse filnavne. Hvis du har gjort filerne tilgængelige via EDDTableFraFileNames, vil URL'en være i form baseUrl /erddap / filer / datasetID / / / / For eksempel,
<att name="fileAccessBaseUrl">*someBaseURL*</a>
<att name="fileAccessSuffix">.png</a>
Hvis der er en.zipeller anden beholder fil med alle mediefiler relateret til en datavariabel, anbefaler vi, at du også gør den fil, der er tilgængelig for brugere (se trin 1 ovenfor) og derefter identificere det med enFileAccessArchive Urlattribut.
\[Begyndende iERDDAP™v1.82\]Hvis du gør det første trin ovenfor (eller begge trin) , så når en bruger ser udERDDAP™ "files"system til det datasæt (eller anmoder om at se en del af datasættet via en.htmlTableanmodning, hvis du gjorde det andet trin) ,ERDDAP™vil vise et '?' ikon til venstre for filnavnet. Hvis brugeren svæver over det ikon, vil de se en popup, der viser billedet, eller en lydafspiller eller en videoafspiller. Browserer understøtter kun et begrænset antal typer af
- billedbillede (normalt .gif, .jpg og .png) ,
- lydlyd (normalt .mp3, .ogg, og .wav) , og
- videofiler (normalt .mp4, .ogv, og . Webm) .
Support varierer med forskellige versioner af forskellige browsere på forskellige operativsystemer. Så hvis du har et valg af hvilken filtype at tilbyde, giver det mening at tilbyde disse typer.
Eller hvis en bruger klikker på filnavnet vist på enERDDAP™Websiden, deres browser vil vise billedet, lyd eller video fil som en separat webside. Dette er for det meste nyttigt at se et meget stort billede eller videoskala til fuld skærm, i stedet for i en popup.
AWS S3 filer
Amazon Web Service (AWS) er en sælger afcloud computingtjenester.S3er et objekt opbevaringssystem, der tilbydes af AWS. I stedet for det hierarkiske system af mapper og filer af et traditionelt filsystem (som en harddisk i din pc) , S3 tilbyder kun "buckets", som holder "objects" (Vi kalder dem"files") .
Til ASCII-filer (f.eks. .csv) ,ERDDAP™kan arbejde med filerne i skovlne direkte. Det eneste, du skal gøre, er at angive den<fileDir> til datasættet ved hjælp af et bestemt format til AWS-spanden, f.eks. https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ . Du bør ikke bruge<cacheFraUrl> . Se nedenfor for detaljer.
Men for binære filer (fx,.nc, .grib, .bufr, og.hdffiler filer filer) , du behøver at bruge den<cacheFraUrl> system beskrevet nedenfor.ERDDAP, netcdf-java (somERDDAP™bruger til at læse data fra disse filer) , og andre videnskabelige data software er designet til at arbejde med filer i et traditionelt filsystem, der tilbyderblokniveauadgang til filer (som tillader læsning af bidder af en fil) , men S3 tilbyder kunfilniveau (objektobjekt) adgang til filer (som kun tillader at læse hele filen) . AWS tilbyder et alternativ til S3,Elastisk blok butik (EBS) ), der understøtter blokniveau adgang til filer, men det er dyrere end S3, så det sjældent bruges til bulk opbevaring af store mængder af datafiler. (Så når folk siger at lagre data i skyen (S3) er billig, det er normalt en æbler til orange sammenligning.)
S3 Skove
Indholdsfortegnelsen af en spand. Nøgler. Objekter. De limiters.
Teknisk set organiseres S3 skovle ikke i en hierarkisk filstruktur som et filsystem på en computer. I stedet indeholder skovle kun "objekter" (filer filer filer) , hver af dem har en "nøgle" (Et navn) . Et eksempel på en nøgle i den noaa-goes17 spand er
ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc
Den tilsvarende URl til dette objekt er
AWS understøtter en lille variation i, hvordan URL er konstrueret, menERDDAP™kræver dette specifikke format:
https://bucketName.s3.region.amazonaws.com/key
Det er fælles praksis, som med dette eksempel for at gøre nøglenavne ser ud som en hierarkisk sti plus et filnavn, men teknisk er de ikke. Da det er almindeligt og nyttigt,ERDDAP™Behandl nøgler med /'s som om de er en hierarkisk sti plus filnavn, og denne dokumentation vil henvise til dem som sådan. Hvis en spands nøgler ikke bruger /'s (f.eks. en nøgle som
ABI-Lib.2018.052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_s20180522247575), derefterERDDAP™vil bare behandle hele nøglen som et langt filnavn.
Privat vs Offentlige Skove -- Administratoren for S3 skovlen kan gøre skovlen og dens indhold offentligt eller privat. Hvis det offentlige, kan enhver fil i skovlen downloades af nogen ved hjælp af URL til filen. Amazon har enÅbne dataprogram, der er vært for offentlige datasets (herunder data fraNOAA, NASA og USGS) gratis og oplader ikke for nogen at downloade filerne fra disse skovle. Hvis en spand er privat, er filer i spanden kun tilgængelige for autoriserede brugere og AWS opkræver et gebyr (normalt betalt af spandens ejer) for at downloade filer til en ikke-AWS S3 computer.ERDDAP™kan arbejde med data i offentlige og private skovle.
AWS legitimationsoplysninger
At gøre det såERDDAP™kan læse indholdet af private skovle, du har brug for AWS legitimationsoplysninger, og du skal gemme en legitimationsfil på standardstedet, såERDDAP™kan finde oplysninger. Se AWS SDK forJava2.x dokumentation:Angiv standardoplysninger. (Mulighed for at gemme værdierne somJavakommandolinjeparametre i\[Tomcat\]/bin/setenv.sh kan være en god mulighed.)
AWS / filer /
- / filer / system -- The The The The The The TheERDDAP™ / filer / systemTillad brugere at downloade kildefiler til et datasæt. Vi anbefaler, at du tænder dette for alle datasæt med kildefiler, fordi mange brugere ønsker at downloade de oprindelige kildefiler.
- Hvis filerne er i en privat S3 spand, vil brugerens anmodning om at downloade en fil blive håndteret afERDDAP™, som vil læse dataene fra filen og derefter overføre dem til brugeren og dermed øge belastningen på dinERDDAP™, ved hjælp af indgående og udgående båndbredde og gør dig (te te te teERDDAP™Administrator) Betaling af data til AWS.
- Hvis filerne er i en offentlig S3 spand, vil brugerens anmodning om at downloade en fil blive omdirigeret til AWS S3 URL for den fil, så dataene ikke flyder gennemERDDAP™og dermed reducere belastningen påERDDAP. Og hvis filerne er i en Amazon Open Data (Gratis gratis) offentlig spand, så du (te te te teERDDAP™Administrator) Du behøver ikke at betale dataeksploser gebyr til AWS. Der er således en stor fordel, der betjener data fra offentligheden (ikke privat) S3 skovle og en enorm fordel til at betjene data fra Amazon Open Data (Gratis gratis) skovle.
ERDDAP™og AWS S3 Skove
ERDDAP™og AWS S3 Skove
Heldigvis, efter meget indsats,ERDDAP™har en række funktioner, der gør det muligt at håndtere de iboende problemer med at arbejde med S3's blokniveau adgang til filer på en rimelig effektiv måde:
- \[Ansvarsfraskrivelse: Arbejde med AWS S3 skovle er en masse ekstra arbejde. AWS er et stort økosystem af tjenester og funktioner. Der er meget at lære. Det tager tid og indsats, men det er muligt. Vær tålmodig og du får tingene til at arbejde. Kig/ask til hjælp
(()AWS dokumentation, hjemmesider somStack Overflow, og regelmæssig
ERDDAP™Hjælpemuligheder) hvis/ når du sidder fast.\]
- Det kan være svært at finde ud af mappestrukturen og filnavnene på filerne i en S3 spand.ERDDAP™har en løsning på dette problem: EDDTableFraFileNames har en speciel\\\* fraOnTheFlymulighed, som lader dig gøre en EDDTableFraFileNames datasæt, som giver brugerne mulighed for at gennemse indholdet af en S3 spand (og download filer) via datasættets"files"mulighed. Der er eneksempel på dette nedenfor.
- ERDDAP™kan læse data fraeksternt komprimerede datafiler, så det er fint, hvis filerne på S3 gemmes som.gz,.gzip,.bz2, .Z eller andre typer af eksterne komprimerede datafiler, som kan dramatisk (2 - 20X) Skær ned på fillagringsomkostninger. Der er ofte ingen tid straf for brug af eksterne komprimerede filer, da det tidspunkt, der er gemt ved at overføre en mindre fil fra S3 tilERDDAPMere om balancer den ekstra tid, der er nødvendig forERDDAP™at dekomprimere filen. Hvis du vil bruge denne funktion, skal du bare sørge for, at datasættets<FilenNameRegex> Giver mulighed for komprimeret filtype (f.eks. ved at tilføje (|.gz) til slutningen af regex) .
- For det mest almindelige tilfælde, hvor du har enERDDAP™installeret på din pc til test/udvikling, og hvor datasættet har binære datafiler, der er gemt som objekter i en S3 spand, en tilgang til at få datasættet iERDDAP™er:
-
Opret en mappe på din PC for at holde et par testdata filer.
-
Hent to datafiler fra kilden til den mappe, du lige har oprettet.
-
BrugGenererDatasetsXmlat generere klumpen afdatasets.xmlfor datasættet baseret på de to lokale datafiler.
-
Kontroller, at datasæt fungerer som ønsket medBilleder af DasDdsog/eller din lokaleERDDAP.
Følgende trin gør en kopi af disse datasæt (som vil få data fra S3 spand) på offentlige områderERDDAP.
-
Kopier klumpen afdatasets.xmlfor datasættet til datasættetdatasets.xmlfor offentlighedenERDDAP™det vil tjene dataene.
-
Opret en mappe på offentlighedenERDDAP's lokale harddisk til at holde en cache af midlertidige filer. mappen vil ikke bruge en masse diskplads (Se cachestørrelseGB nedenfor) .
-
Ændre værdien af datasættets<filDir> tag, så det peger på den mappe, du lige har oprettet (selvom mappen er tomt) .
-
Tilføj encacheFraUrltag, der angiver datasættets spandnavn og valgfri præfiks (i.e., mappe) i det specifikkeSådan vises S3 URL-formatetERDDAP™kræver behov.
-
Tilføj en [<cachestørrelseGB>] (#cachefraurl) tag til datasættets xml (f.eks. 10 er en god værdi for de fleste datasæt) at fortælleERDDAP™for at begrænse størrelsen af den lokale cache (f.eks., prøv ikke at cache alle fjernfiler) .
-
Se om det virker i offentlighedenERDDAP. Bemærk, at første gangERDDAP™indlæser datasættet, vil det tage lang tid at indlæse, fordiERDDAP™skal downloade og læse alle datafiler.
-
Hvis datasættet er en enorm samling af store gitterded datafiler, vil dette tage en meget lang tid og være upraktisk. I nogle tilfælde for gitterded datafiler,ERDDAP™kan udtrække de nødvendige oplysninger (f.eks. tidspunktet for dataene i en netded datafil) fra filnavnet og undgå dette problem. Se endnuAggregation via Filnavne.
- Valgfrit (men især for EDDTableFraFiles datasets) , du kan tilføje ennThreadstag til datasættet for at fortælleERDDAPat bruge mere end 1 tråd, når du reagerer på en brugers anmodning om data. Dette minimerer virkningerne af den forsinkelse, der opstår, nårERDDAP™Læser datafiler fra (fjernbetjening) AWS S3 skovle ind i den lokale cache og (måske måske måske måske) undertrykke dem.
AWS S3 Åbn data
Som en del afNOAA'sBig Data Program,NOAAhar partnerskaber med fem organisationer, herunder AWS, "at udforske de potentielle fordele ved at lagre kopier af vigtige observationer og modeludgange i skyen for at tillade computer direkte på dataene uden at kræve yderligere distribution". AWS indeholder de datasæt, den får fraNOAAsom en del af programmet til at tilbyde offentlig adgang til en stor samling afÅbne data på AWS S3fra enhver computer, uanset om det er en Amazon-regneinstans (en lejet computer) på AWS-netværket eller din egen pc på ethvert netværk. Eksempelet nedenfor antager, at du arbejder med et offentligt tilgængeligt datasæt.
Adgang af filer i en AWS S3 spand
Til en privat S3 data spand skal skovlens ejer give dig adgang til spanden. (Se AWS-dokumentationen.)
I alle tilfælde skal du bruge en AWS-konto, fordi AWS SDK forJava (somERDDAP™Brug til at hente oplysninger om indholdet af en spand) kræver AWS-konto legitimationsoplysninger. (mere på dette nedenfor)
ERDDAP™kan kun få adgang til AWS S3 skovle, hvis du angiver [<cacheFraUrl>] (#cachefraurl) (eller<i et bestemt format:
https://bucketName.s3.aws-region.amazonaws.com/prefix/
hvor
- Skoven er den korte form for spandnavnet, f.eks. noaa-goes17 .
- Aws-region, f.eks. us-øst-1, er fra kolonnen "Region" i en af tabellerne iAWS Service Endpointshvor spanden rent faktisk er placeret.
- Præfikset er valgfri. Hvis det er til stede, skal det ende med'/'.
For eksempel, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
Dette URL-format er en af AWS S3 anbefalinger: seAdgang til en spandog og ogdenne beskrivelse af præfikser.ERDDAP™kræver, at du kombinerer skovlens URL og den valgfrie præfiks i én webadresse for at angive<cacheFraUrl> (eller<fileDir>), hvor filerne er placeret.
Test Offentlige AWS S3 Skove
For offentlige skovle, kan du og skal teste skovlens URL i AWS S3-mappen i din browser, f.eks. https://noaa-goes17.s3.us-east-1.amazonaws.com Hvis skovlens URL er korrekt og egnet tilERDDAP, det vil returnere et XML-dokument, der har (delvis delvis delvis delvis) opslag af indholdet af denne spand. Desværre, den fulde URL (f.eks. spand URL plus præfiks) den, derERDDAP™ønsker for en given datasæt virker ikke i en browser. AWS tilbyder ikke et system til at gennemse hierarkiet af en spand nemt i din browser. (Hvis det er forkert, bedes du kontakte Chris. John på noaa.gov. Ellers, Amazon, skal du tilføje støtte til dette!)
Se Indholdsfortegnelsen af en spand
S3 skovle indeholder ofte et par kategorier af filer, i et par pseudo subdirectories, som kunne blive et par afERDDAP™Datasets. Sådan laver duERDDAP™Datasets, du skal vide startmappen for<cacheFraUrl> (eller<fileDir>) og formatet af de filnavne, der identificerer, at undersæt af filer. Hvis du forsøger at se hele indholdet af en spand i en browser, vil S3 kun vise dig de første 1000 filer, som er utilstrækkelig. I øjeblikket, den bedste måde for dig at se alt indholdet af en spand er at gøre enEDDTableFraFileNamesDatasæt (på din pc'sERDDAP™og/eller på din offentligeERDDAP) , som også giver dig en nem måde at gennemse mappestrukturen og downloade filer. The The The The The The The<fileDir> for det vil være den webadresse, du har foretaget ovenfor, f.eks. https://noaa-goes17.s3.us-east-1.amazonaws.com .\[Hvorfor tilbyder AWS S3 en hurtig og nem måde at gøre dette uden en AWS-konto?\]Bemærk, at når jeg gør dette på min pc på et ikke-Amazon-netværk, vises det, at Amazon bremser svaret på et trickle (omkring 100 (?) filer pr. chunk) efter de første par bidder (af 1000 af filer pr. klump) downloades. Da skovle kan have et stort antal filer (noaa-goes17 har 26 millioner) , at få alt indholdet af en spand kan tage EDDTableFraFileNames flere timer (f.eks. 12!) at afslutte.\[Amazon, er det rigtige?!\]
At gøre en EDDTabel FraFileNames Dataset med en AWS S3 spand
Hvis du har et spandnavn, men ikke allerede har en liste over filer i S3 spanden eller det præfiks, der identificerer placeringen af de relevante filer i spanden, skal du bruge instruktionerne herunder for at gøre en EDDTableFraFileNames dataset, så du kan gennemse katalog hierarkiet af S3 spand viaERDDAP's"files"system.
- Åbn en AWS-konto ERDDAP™Brug af cookiesAWS SDK forJavaat få spand information fra AWS, så du skal brugeOprette og aktivere en AWS-konto. Det er et ret stort job, med masser af ting at lære.
- Sæt dine AWS Credentials, hvorERDDAP™kan finde dem. Følg instruktionerne påOpsæt AWS Credentials og Region for Udviklingså så sådanERDDAP™ (specifikt, AWS SDK forJava) vil kunne finde og bruge dine AWS-oplysninger. HvisERDDAP™kan ikke finde legitimationsoplysningerne, vil du se en java.lang. IllegalArgumentException: profilfilen kan ikke vises fejl iERDDAP's log.txt-fil.
Hint for Linux og Mac OS: legitimationsfilen skal være i hjemmemappen af brugeren, der kører Tomcat (og og ogERDDAP) (for dette afsnit, vil vi antage bruger=tomcat) i en fil kaldet ~ /.save / credentials . Må ikke antage, at ~ er /home/tomcat -- faktisk bruger cd ~ at finde ud af, hvor operativsystemet mener ~ for bruger=tomcat er. Opret mappen, hvis den ikke findes. Når du har lagt legitimationsfilen på plads, skal du sørge for, at brugeren og gruppen til filen er tomcat og derefter bruge lmmod 400 legitimationsoplysninger til at sikre, at filen er read-only for bruger=tomcat.
- Opret skovl URL i skovlenformat, derERDDAP™kræver behovf.eks. https://noaa-goes17.s3.us-east-1.amazonaws.com , og (til offentlige skovle) Test det i en browser for at sikre, at det returnerer et XML-dokument, som har en delvis liste indholdet af denne spand.
- BrugGenererDatasetsXmlat oprette enEDDTableFraFileNamesDatasæt:
-
For startmappen skal du bruge denne syntaks: \\\ fraOnTheFly, Hoteller i nærheden af YourBucketUrl* for eksempel, \\\* fraOnTheFly, https://noaa-goes17.s3.us-east-1.amazonaws.com/
-
filnavn regex? .\*
-
Reklamation? sande sande sande sande
-
reload Hvad er der? 10080
-
institution?NOAA
-
oversigt? Intet (ERDDAP™vil oprette en anstændig oversigt automatisk.)
-
titel? Intet (ERDDAP™vil oprette en anstændig titel automatisk.) Som sædvanlig bør du redigere den resulterende XML til at bekræfte korrekthed og foretage forbedringer, før mængden af datasæt bruger det idatasets.xml.
-
- Hvis du følger instruktionerne ovenfor og indlæse datasættet iERDDAP, du har oprettet en EDDTableFraFiles dataset. Som et eksempel, og for at gøre det nemmere for alle at gennemse og downloade filer fra AWS Open Data skovle, har vi skabt EDDTableFraFileNames datasets (se listen på listen på
https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) for næsten alle afAWS S3 Åbne dataskovler.
\[De få skovle, som vi ikke indeholder, enten har et stort antal filer i rodmappen (mere end kan downloades i en rimelig mængde tid) eller ikke tillade offentlig adgang (er ikke de alle skulle være offentlige?) , eller er Anmodninger Pays skovle (f.eks. Sentinel) .\]
Hvis du klikker på"files"link til et af disse datasæt, kan du gennemse mappetræet og filer i denne S3 spand. På grund af vejen\\\*fraOnTheFly EDDTableFraFiles virker, disse mappelister er altid perfekt opdateret, fordiERDDAP™får dem på farten. Hvis du klikker ned på mappetræet til et egentligt filnavn og klikker på filnavnet,ERDDAP™vil omdirigere din anmodning til AWS S3, så du kan downloade filen direkte fra AWS. Du kan derefter inspicere den fil.
Har du lyst? Hvis dine EDDTableFraFiles ikke indlæses iERDDAP™ (eller DasDds) , se i log.txt-filen for en fejlmeddelelse. Hvis du ser en java.lang. IllegalArgumentException: profilfilen kan ikke være null fejl, problemet er, at AWS SDK forJava (brugt afERDDAP) Finder ikke legitimationsfilen. Se anvisningerne ovenfor.
Det er uheldigt, at AWS ikke blot tillader folk at bruge en browser til at se indholdet af en offentlig spand.
Så kan du laveERDDAP™Datasets, der giver brugerne adgang til dataene i filerne.
Se anvisningerne iERDDAP™og S3 Skove (ovenfor) .
Til prøven EDDTableFraFileNames datasæt, som du har lavet ovenfor, hvis du gør en lille pust rundt med mappen og filnavne i mappetræet, bliver det klart, at topniveaumappen navne (fx ABI-L1b-RadC) svarer til hvadERDDAP™ville kalde separate datasæt. Den spand, du arbejder med, kan være lignende. Du kan derefter forfølge at oprette separate datasæt iERDDAP™for hver af disse datasæt, ved hjælp af f.eks.
https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
som det<cacheFraUrl>. Desværre synes datasætene i spanden alle at være niveau 1 eller niveau 2 datasæt, som alle synes at være niveau 1 eller niveau 2 datasæt.ERDDAP™ er ikke særlig god til, fordi datasættet er en mere kompliceret samling af variabler, der bruger forskellige dimensioner.
NcML filer
NcML-filer giver dig mulighed for at angive ændringer på en eller flere oprindelige kildeNetCDF (v3 eller v4) .nc, .grib, .bufr eller.hdf (v4 eller v5) filer, og derefter harERDDAP™Behandling af.ncml filer som kildefiler.ERDDAP™Datasets vil acceptere.ncml filer når.ncfiler forventes. NcML-filer SKAL have udvidelsen.ncml. Se billederneUnidataNcML dokumentation. NcML er nyttig, fordi du kan gøre nogle ting med det (for eksempel at foretage forskellige ændringer i forskellige filer i en samling, herunder tilføje en dimension med en bestemt værdi til en fil) , at du ikke kan gøre medERDDAP'sdatasets.xml.
- Ændringer til en.ncml fils sidsteModified tid vil forårsage, at filen skal indlæses, når datasættet er indlæst, men ændringer i den underliggende.ncDatafiler vil ikke være direkte bemærket.
- Hint: NcML er\*meget meget meget\*følsom over for ordren af nogle elementer i NcML-filen. Tænk på NcML som specificerer en række instruktioner i den angivne rækkefølge, med intentionen om at ændre kildefiler (staten på start/top af NcML-filen) i destinationsfiler (staten i slutningen/bottom of te NcML-filen) .
Et alternativ til NcML erNetCDFOperatører (NCO) . Den store forskel er, at NcML er et system til at foretage ændringer på farten (så kildefiler ikke ændres) , mensNCOkan bruges til at foretage ændringer (eller nye versioner af) filerne. BeggeNCOog NcML er meget, meget fleksibel og giver dig mulighed for at lave næsten enhver ændring, du kan tænke på filerne. For begge kan det være svært at finde ud af præcis, hvordan man gør det, du ønsker at gøre - kontrollere nettet for lignende eksempler. Begge er nyttige værktøjer til at forberede netCDF ogHDFfiler til brug medERDDAP, navnlig for at foretage ændringer ud over, hvadERDDAP's manipulation system kan gøre.
Eksempel #1: Tilføjelse af en Time Dimension med en enkelt værdi Her er en del.ncml fil, der skaber en ny ydre dimension (tid, med 1 værdi: 1041379200) og tilføjer denne dimension til billedvariablen i filen ved navn A2003001.L3m\_DAY\_PIC\_pic\_4km.nc:
<netcdf xmlns='https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'>
<variable name='time' type='int' shape='time' />
<aggregation dimName='time' type='joinNew'>
<variableAgg name='pic'/>
<netcdf location='A2003001.L3m\\_DAY\\_PIC\\_pic\\_4km.nc' coordValue='1041379200'/>
</aggregation>
</netcdf>
Eksempel #2: Ændring af en eksisterende tidsværdi Nogle gange kilden.ncfil har allerede en tidsdimension og tidsværdi, men værdien er forkert (til dine formål) . Dette.ncml fil siger: for datafilen ved navn ""19810825230030-NCEI...", for dimensionen variabel"time", sæt enheds attributten til at være "andre siden 1970-01T00:00:00Z" og sæt den tid værdi, der skal være 367588800.
<netcdf xmlns='https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'
location="19810825230030-NCEI-L3C\\_GHRSST-SSTskin-AVHRR\\_Pathfinder-PFV5.3\\_NOAA07\\_G\\_1981237\\_day-v02.0-fv01.0.nc">
<variable name="time">
<attribute name='units' value='seconds since 1970-01-01T00:00:00Z' />
<values>367588800</values>
</variable>
</netcdf>
NetCDFOperatører (NCO)
"The netCDF Operators (NCO) består af et dusin singler, kommandolinjeprogrammer, der tager netCDF\[v3 eller v4\],HDF \[v4 eller v5\],\[.grib,.bufr,\]og/ellerDAPfiler som input, og derefter betjene (f.eks. derivat nye data, beregningsstatistik, udskrivning, hyperslab, manipulere metadata) og output resultaterne til skærm eller filer i tekst, binære eller netCDF formater.NCOhjælpemidler til analyse af gitterded videnskabelige data. Den shell-command stil afNCOgør det muligt for brugerne at manipulere og analysere filer interaktivt, eller med udtryksfulde scripts, der undgår nogle kontraster på højere niveauer programmeringsmiljøer." (fra fraNCOhjemmeside hjemmeside hjemmeside) .
Et alternativ tilNCOer det erNcML. Den store forskel er, at NcML er et system til at foretage ændringer på farten (så kildefiler ikke ændres) , mensNCOkan bruges til at foretage ændringer (eller nye versioner af) filerne. BeggeNCOog NcML er meget, meget fleksibel og giver dig mulighed for at lave næsten enhver ændring, du kan tænke på filerne. For begge kan det være svært at finde ud af præcis, hvordan man gør det, du ønsker at gøre - kontrollere nettet for lignende eksempler. Begge er nyttige værktøjer til at forberede netCDF ogHDFfiler til brug medERDDAP, navnlig for at foretage ændringer ud over, hvadERDDAP's manipulation system kan gøre.
Du kan f.eks. brugeNCOfor at gøre enhederne i den tidsvariable konsistent i en gruppe filer, hvor de ikke var konsekvent oprindeligt. Eller du kan brugeNCOFor at ansøgescale\_factorog og ogadd\_offseti en gruppe filer, hvorscale\_factorog og ogadd\_offsethar forskellige værdier i forskellige kildefiler. (Eller kan du nu håndtere disse problemer iERDDAP™viaEDDGridFraNcFilesUnpakke, som er en variant afEDDGridFraNcFiles som pakker pakket data og standardiserer tidsværdier på et lavt niveau for at håndtere en samling filer, der har forskelligescale\_factors og sadd\_offset, eller forskellige tidsenheder.)
NCOer gratis og open source software, der bruger denGPL 3.0licens.
Eksempel #1: Gør enheder konsekvent
EDDGridFraFiles og EDDTable Fra filer insisterer på, at enhederne til en given variabel er identisk i alle filer. Hvis nogle af filerne er trivially (ikke funktionelt) forskellige fra andre (f.eks. tid enheder af
"sekikkere siden 1970-01-07-2017 UTC" versus
"seconds since 1970-01-01T00:00:00Z", du kunne brugeNCO'sncatted. for at ændre enhederne i alle de filer, der skal være identisk med
nco/ncatted -a enheder, tid,o,c,'s sekunder siden 1970-01T00:00:00Z.nc
\[For mange problemer som dette i EDDTableFra... Filer datasæt, du kan nu brugestandardiser Hvadat fortælleERDDAPat standardisere kildefiler, da de læses indERDDAP.\]
Begrænsninger til størrelsen af et datasæt
Du vil se mange referencer til "2 milliarder" nedenfor. Mere præcist, det er en reference til 2,147,483,647 (2. verdenskrig) , som er den maksimale værdi af en 32-bit underskrevet iteger. På nogle computersprog, f.eks.Java (somERDDAP™er skrevet i) , der er den største datatype, der kan bruges til mange datastrukturer (f.eks. størrelsen på en array) .
Til strenge værdier (for eksempel for variable navne, attributnavne, String attributværdier og String dataværdier) , det maksimale antal tegn pr streng iERDDAP™er ~2 milliarder. Men i næsten alle tilfælde vil der være små eller store problemer, hvis en streng overstiger en rimelig størrelse (f.eks. 80 tegn til variable navne og attributnavne, og 255 tegn for de fleste streng attributværdier og dataværdier) . F.eks. vil websider, der viser lange variable navne, være akavet bredt og lange variable navne, blive afkortet, hvis de overskrider grænsen for svarfilen type.
Til gitterede datasæt:
- Det maksimale antalaxisVariables er ~2 milliarder. Det maksimale antaldataVariables er ~2 milliarder. Men hvis et datasæt har >100 variabler, vil det være besværligt for brugerne at bruge. Og hvis et datasæt har >1 millioner variabler, vil din server bruge en masse fysisk hukommelse, og der vil være andre problemer.
- Den maksimale størrelse af hver dimension (axisVariable) er ~2 milliarder værdier.
- Jeg tror det maksimale samlede antal celler (Produktet af alle dimensionstørrelser) er ubegrænset, men det kan være ~9e18.
Til tabulære datasæt:
- Det maksimale antaldataVariables er ~2 milliarder. Men hvis et datasæt har >100 variabler, vil det være besværligt for brugerne at bruge. Og hvis et datasæt har >1 millioner variabler, vil din server bruge en masse fysisk hukommelse, og der vil være andre problemer.
- Det maksimale antal kilder (f.eks. filer) der kan aggregeres er ~2 milliarder.
- I nogle tilfælde, det maksimale antal rækker fra en individuel kilde (for eksempel en fil, men ikke en database) er ~2 milliarder rækker.
- Jeg tror ikke der er andre grænser.
For både gitterede og tabulære datasæt, er der nogle interne grænser på størrelsen af undersættet, der kan anmodes af en bruger i en enkelt anmodning (ofte relateret til >2 milliarder af noget eller ~9e18 af noget) , men det er langt mere sandsynligt, at en bruger vil ramme de filtypespecifikke begrænsninger.
- NetCDFversion 3.ncfiler er begrænset til 2 GB bytes. (Hvis dette er virkelig et problem for nogen, lad mig vide: Jeg kunne tilføje støtte til denNetCDFversion 3.nc64-bit udvidelse ellerNetCDFVersion 4, som ville øge grænsen betydeligt, men ikke uendelig.)
- Browserer nedbrud efter kun ~500 MB data, såERDDAP™begrænser reaktionen.htmlTableanmodninger om ~ 400 MB af data.
- Mange dataanalyseprogrammer har lignende grænser (For eksempel er den maksimale størrelse af en dimension ofte ~2 milliarder værdier) , så der er ingen grund til at arbejde hårdt for at komme rundt i de filtypespecifikke grænser.
- Filtypespecifikke grænser er nyttige i, at de forhindrer naive anmodninger om virkelig store mængder data (for eksempel "give mig alle disse datasæt", når datasættet har 20 TB data) , som ville tage uger eller måneder at downloade. Jo længere downloaden, desto mere sandsynligt vil det undlade en række grunde.
- De filtypespecifikke begrænsninger er nyttige i, at de tvinge brugeren til at beskæftige sig med rimelig størrelse subsets (f.eks. at håndtere et stort gitterded datasæt via filer med data fra én gang peger hver enkelt gang) .
Skift til ACDD-1.3
Vi vi vi vi (mærkbartGenererDatasetsXml) I øjeblikket anbefalerACDD version 1.3, som blev ratificeret i begyndelsen af 2015, og som henvises til som "ACDD-1.3" i den globale konventions attribut. Inden forERDDAP™version 1.62 (udgivet i juni 2015) ,ERDDAP™brugt/anbefalet den oprindelige version 1.0, af denNetCDFIntributekonventionen for Dataset Discoverysom blev omtalt som "UnidataDataset Discovery v1.0" i de globale konventioner ogMetadata\_Conventionsattributter.
Hvis dine datasæt bruger tidligere versioner af ACDD, anbefaler vi, at du skifter til ACDD-1.3. Det er ikke svært. ACDD-1.3 er meget bagud kompatibel med version 1.0. For at skifte, for alle datasæt (undtagenEDDGridFra Erddap og EDDTable FraErddap datasæt) :
- Fjern den nyopførte globaleMetadata\_Conventionsattribut ved at tilføje (eller ved at ændre de eksisterendeMetadata\_Conventionsattribut)
<att name="Metadata\\_Conventions">null</att>
til datasættets globale globale<addAttributes>. 2. Hvis datasættet har en konventions attribut i den globale<addAttributes>, ændre alle "UnidataDataset Discovery v1.0" referencer til "ACDD-1.3". Hvis datasættet ikke har en konventions attribut i den globale verden<addAttributes>, derefter tilføje en, der henviser til ACDD-1.3. For eksempel,
<att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>
3. Hvis datasættet har en globalstandard\_name\_vocabularyattribut, skal du ændre formatet af værdien for eksempel,
<att name="standard\\_name\\_vocabulary">CF Standard Name Table v65</att>
Hvis referencen er til en ældre version af referencenCF standard navnebord. Det er sandsynligvis en god ide at skifte til den aktuelle version (65, som vi skriver dette) , da nye standardnavne tilføjes til tabellen med efterfølgende versioner, men gamle standardnavne er sjældent afgrænset og aldrig fjernet. 4. Selvom ACDD-1.0 omfattede globale attributter forcreator\_name,creator\_email,creator\_url,GenererDatasetsXmlikke automatisk tilføje dem, indtil nogle gange omkringERDDAP™v1.50. Dette er vigtige oplysninger:
- creator\_namelader brugerne vide/cite skaberen af datasættet.
- creator\_emailfortæller brugerne den foretrukne e-mailadresse til at kontakte skaberen af datasættet, f.eks. hvis de har spørgsmål om datasættet.
- creator\_urlgiver brugerne en måde at finde ud af mere om skaberen.
- ERDDAP™Brug alle disse oplysninger, når du genererer FGDC og ISO 19115-2/19139 metadata dokumenter for hvert datasæt. Disse dokumenter bruges ofte af eksterne søgetjenester.
Tilføj disse attributter til datasættets globale globale<addAttributes>.
<att name="creator\\_name">NOAA NMFS SWFSC ERD</att>
<att name="creator\\_email">erd.data@noaa.gov</att>
<att name="creator\\_url">https://www.pfeg.noaa.gov</att>
Det er det. Jeg håber, at det ikke var for hårdt.
Zarrr
Som version 2.25ERDDAP™kan læse lokale Zarrr filer ved hjælp afEDDTableFraNcFilesog og ogEDDGridFraNcFiles.
(Af august 2019) Vi kunne nemt være forkert, men vi er endnu ikke overbevist om, atZarrr, eller lignende systemer, der bryder datafiler op i mindre stykker, er gode løsninger på problemet medERDDAP™læsning af data gemt i cloud-tjenester som Amazon AWS S3. Zarrr er en stor teknologi, der har vist sin nytte i en række situationer, vi er bare ikke sikre på, atERDDAP+S3 vil være en af disse situationer. Oftest siger vi: før vi skynder os at gøre indsatsen for at gemme alle vores data i Zarrr, lad os gøre nogle tests for at se, om det faktisk er en bedre løsning.
Problemer med at få adgang til data i skyen er laten (forsinkelsen til først at få data) og filniveau adgang (snarere end adgang til blokniveau) . Zarrr løser fil-niveau adgang problem, men gør intet ved latency. Sammenlignet med blot at downloade filen (så det kan læses som en lokal fil med blokereniveau adgang) , Zarrr kan endda forværre lat problemet, fordi med Zarrr, læsning af en fil nu involverer en række flere opkald til at læse forskellige dele af filen (hver med sin egen forsinkelse) . Fejlproblemet kan løses ved at parallelle anmodningerne, men det er en højere opløsning, ikke afhængig af Zarrr.
Og med Zarrr (som med relationsdatabaser) , vi mister bekvemmeligheden af at have en datafil er en simpel, enkelt fil, som du nemt kan bekræfte integriteten af eller downloade en kopi af.
ERDDAP™ (af v2) har et system til at opretholde en lokal cache af filer fra en URL-kilde (fx S3) (se []<cacheFraUrl> og<cacheMaxGB>] (#cachefraurl) ). Og den nye<nThreads>] (#læssere) bør minimere latency problem ved at parallelle datahentning på et højt niveau.<cacheFraUrl> synes at arbejde meget godt for mange scenarier. (Vi er ikke sikker på, hvor gavnligt<nThreads> er uden yderligere test.) Vi indrømmer, at vi ikke har gennemført timing tests på en AWS-instans med en god netværksforbindelse, men vi har med succes testet med forskellige eksterne URL-kilder af filer. Og og ogERDDAP's<cacheFraUrl> arbejder med enhver type datafil (fx,.nc,.hdf.csv,.jsonlCSV) , selvom ekstern komprimeret (fx,.gz) , uden ændringer i filerne (f.eks. omskrive dem som Zarrr samlinger) .
Det er sandsynligt, at forskellige scenarier vil gavne forskellige løsninger, f.eks. kun nødt til at læse en del af en fil én gang (Zarrr vil vinde) , vs. skal læse alle en fil én gang, vs. skal læse del eller alle en fil gentagne gange (<cacheFraUrl> vil vinde).
Oftest siger vi: før vi skynder os at gøre indsatsen for at gemme alle vores data i Zarrr, lad os gøre nogle tests for at se, om det faktisk er en bedre løsning.
Liste over typer datasæt
Hvis du har brug for hjælp til at vælge den rigtige datasæt type, seValg af datasæt Type.
Typerne af datasæt falder i to kategorier. (Hvorfor?)
EDDGrid
- EDDGrid Datasets håndterer gitterded data.
- I nærheden af In In In In In In In In In In In In In InEDDGridDatasæt, datavariabler er flerdimensionelle matrixer af data.
- Der skal være en akse variabel for hver dimension. Axis variabler skal specificeres i den rækkefølge, at datavariablerne bruger dem.
- I nærheden af In In In In In In In In In In In In In InEDDGridDatasæt, alle datavariabler skal bruge (Del dele) alle aksevariabler. (Hvorfor? Hvad hvis de ikke er?)
- Sorteret Dimension Værdier - I alleEDDGriddatasæt, hver dimension skal være i sorteret rækkefølge (stigende eller faldende) . Hver kan være uregelmæssigt rum. Der kan ikke være nogen bånd. Dette er et krav om kravetCF metadata standard. Hvis nogen dimensions værdier ikke er i sorteret rækkefølge, vil datasættet ikke blive indlæst ogERDDAP™vil identificere den første usorteret værdi i logfilen, bigParentDirectory /logs/log.txt .
Et par underklasser har yderligere restriktioner (især,EDDGridAggregateExistingDimension kræver, at den yderste (venstreste, første) dimension stiger.
Uspecificerede dimensionværdier angiver næsten altid et problem med kildedatasættet. Dette forekommer oftest, når en forkert eller upassende fil er inkluderet i aggregationen, som fører til en usorteret tidsdimension. Hvis du vil løse dette problem, skal du se fejlmeddelelsen i meddelelsenERDDAP™log.txt-filen for at finde den fornærmende tidsværdi. Så se i kildefiler for at finde den tilsvarende fil (eller en før eller en efter) det tilhører ikke i sammenlægningen.
- Se den mere fuldstændige beskrivelse afEDDGriddatamodel.
- The The The The The The TheEDDGridDatasættyper er:
- EDDGridFraAudioFilesaggregerer data fra en gruppe af lokale lydfiler.
- EDDGridFraDaphåndterer gitterdata fraDAPservere.
- EDDGridFraEDDTablelader dig konvertere en faneformet datasæt til et gitteret datasæt.
- EDDGridFraErddaphåndterer netded data fra en fjernERDDAP.
- EDDGridFraEtopoBare håndterer de indbyggede ETOPO topografidata.
- EDDGridFraFileser superklassen af alleEDDGridFra...Filer klasser.
- EDDGridFraMergeIRFilesaggregerer data fra en gruppe af lokale FleIR.gzfiler.
- EDDGridFraNcFilesaggregerer data fra en gruppe af lokaleNetCDF (v3 eller v4) .ncog relaterede filer.
- EDDGridFraNcFilesUnpakkeer en variant, hvisEDDGridFraNcFiles som også aggregerer data fra en gruppe lokaleNetCDF (v3 eller v4) .ncog relaterede filer, somERDDAP™Pakker på et lavt niveau.
- EDDGridLonPM180ændrer de længdeværdier af et barnEDDGridså de er i sortimentet -180 til 180.
- EDDGridLon0360ændrer de længdeværdier af et barnEDDGridså de er i området 0 til 360.
- EDDGridSideforsideSamler to eller flereEDDGridDatasets side af side.
- EDDGridAggregateExistingDimensionSamler to eller flereEDDGridDatasets, som hver især har en række værdier for den første dimension, men identiske værdier for de andre dimensioner.
- EDDGridKopiere Kopierkan lave en lokal kopi af en andenEDDGrid's data og tjener data fra den lokale kopi.
- AlleEDDGridDatasets understøtter en nThreads indstilling, som fortællerERDDAP™hvor mange tråde skal bruge, når de reagerer på en anmodning. Se billedernenThreadsdokumentation for detaljer.
EDDTabel
- EDDTabel Datasets håndterer tabulære data.
- Tabulære data kan repræsenteres som en databaselignende tabel med rækker og kolonner. Hver kolonne (en datavariabel) har et navn, et sæt attributter, og gemmer kun en type data. Hver række har en observation (eller gruppe af relaterede værdier) . Datakilden kan have data i en anden datastruktur, en mere kompliceret datastruktur og/eller flere datafiler, menERDDAP™skal kunne fladisere kildedataene i en databaselignende tabel for at præsentere dataene som et tabulært datasæt til brugerne afERDDAP.
- Se den mere fuldstændige beskrivelse afSikkerhedsdatamodel.
- De EDDTable datasæt typer er:
- EDDTableFraAllDatasetser et datasæt, der har oplysninger om alle de andre datasæt i dine dataERDDAP.
- EDDTableFraAsciiFilesaggregerer data fra komma-, fane-, semikolonin- eller rum-separatede tabulære ASCII-datafiler.
- EDDTableFraAsciiServiceer den superklasse af alle EDDTableFraAsciiService... klasser.
- EDDTableFraAsciiServiceNOShåndterer data fra nogle afNOAANOS webtjenester.
- EDDTableFraAudioFilesaggregerer data fra en gruppe af lokale lydfiler.
- EDDTableFra Billeder af AwsXmlFilesaggregerer data fra et sæt Automatisk Vejrstation (AWS) XML-filer.
- EDDTableFraCassandrahåndterer tabulære data fra en Cassandra tabel.
- EDDTableFra kolonnearAsciiFilesaggregerer data fra tabular ASCII datafiler med fast bredde data kolonner.
- EDDTableFraDapSequencehåndterer tabulære data fraDAPsekvensservere.
- EDDTableFraDatabasehåndterer tabulære data fra en databasetabel.
- EDDTableFraEDDGridlader dig oprette en EDDTable datasæt fra enEDDGridDatasæt.
- EDDTableFraErddaphåndterer tabulære data fra en fjernERDDAP.
- EDDTableFraFileNamesoprette et datasæt fra oplysninger om en gruppe filer i serverens filsystem, men det tjener ikke data fra filerne.
- EDDTableFraFileser den superklasse af alle EDDTableFra...Files klasser.
- EDDTableFraHttpGeter det erERDDAP's eneste system til dataimport samt dataeksport.
- EDDTableFraHyraxFiler (DEPRECATED) aggregerer data fra filer med flere variabler med delte dimensioner serveret af enHyrax OPeNDAPserver.
- EDDTableFraInvalidCRAFilesaggregerede data fraNetCDF (v3 eller v4) .ncfiler, der bruger en bestemt, ugyldig variant af CF DSG Contiguous Ragged Array (CRA) filer. Selv om selvomERDDAP™understøtter denne filtype, er det en ugyldig filtype, der ingen skal begynde at bruge. Grupper, der bruger denne filtype, opfordres til at brugeERDDAP™at generere gyldige CF DSG CRA-filer og stoppe med at bruge disse filer.
- EDDTableFraJsonlCSVFilesaggregerede data fraJSON Linje CSV-filer.
- EDDTableFraMultidimNcFilesaggregerede data fraNetCDF (v3 eller v4) .ncfiler med flere variabler med delte dimensioner.
- EDDTableFraNcFilesaggregerede data fraNetCDF (v3 eller v4) .ncfiler med flere variabler med delte dimensioner. Det er fint at fortsætte med at bruge denne datasæt type til eksisterende datasæt, men for nye data anbefaler vi at bruge EDDTableFraMultidimNcFiles i stedet.
- EDDTableFraNcCFFilesaggregerede data fraNetCDF (v3 eller v4) .ncfiler, der bruger en af de filformater, der er angivet af deCF Diskret Sampling Geometries (DSG) konventioner. Men til filer ved hjælp af en af de multidimensionelle CFG-varianter, brugEDDTableFraMultidimNcFilesI stedet.
- EDDTableFraNccsvFilesaggregerede data fraNCCSVASCII .csv filer.
- EDDTableFraNOS (DEPRECATED) håndterer tabulære data fra NOS XML-servere.
- EDDTableFraOBIShåndterer tabulære data fra OBIS servere.
- EDDTableFra parkFileshåndterer data fraUdsigt fra værelset.
- EDDTableFraSOShåndterer tabulære data fraSOSservere.
- EDDTableFraThreddsFiles (DEPRECATED) aggregerer data fra filer med flere variabler med delte dimensioner serveret af enI nærheden afTHOPeNDAPserver.
- EDDTableFraWFSFiler (DEPRECATED) gør en lokal kopi af alle data fra enArcGISMapServerWFSserver, så dataene kan igen betjenes hurtigt tilERDDAP™Brugere.
- EDDTableAggregateRowskan gøre en EDDTable datasæt fra en gruppe EDDTable datasæt.
- EDDTableCopykan foretage en lokal kopi af mange typer EDDTable datasæt og derefter genbevar dataene hurtigt fra den lokale kopi.
Detaljerede beskrivelse af Dataset Typer
EDDGridFraDap
EDDGridFraDap håndtag gittervariabler fraDAPservere.
- Vi anbefaler stærkt at brugeGenererDatasets Xml programat lave et groft udkast tildatasets.xmlBeskåret for denne datasæt. Du kan indsamle de oplysninger, du har brug for til at justere, eller oprette din egen XML til enEDDGridFraDap datasæt ved at se på kildedatasættets DDS og DAS-filer i din browser (ved at tilføje .das og .dds tilsourceUrlf.eks. https://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day.dds ) .
- EDDGridFraDap kan få data fra enhver flerdimensionel variabel fra enDAPdataserver. (Tidligere,EDDGridFraDap var begrænset til variabler udpeget som "grid"'s, men det er ikke længere et krav.)
- Sorteret Dimension Værdier - Værdierne for hver dimension skal være i sorteret rækkefølge (stigende eller faldende) . Værdierne kan være uregelmæssigt mellemrum. Der kan ikke være nogen bånd. Dette er et krav om kravetCF metadata standard. Hvis nogen dimensions værdier ikke er i sorteret rækkefølge, vil datasættet ikke blive indlæst ogERDDAP™vil identificere den første usorteret værdi i logfilen, bigParentDirectory /logs/log.txt .
Uspecificerede dimensionværdier angiver næsten altid et problem med kildedatasættet. Dette forekommer oftest, når en forkert eller upassende fil er inkluderet i aggregationen, som fører til en usorteret tidsdimension. Hvis du vil løse dette problem, skal du se fejlmeddelelsen i meddelelsenERDDAP™log.txt-filen for at finde den fornærmende tidsværdi. Så se i kildefiler for at finde den tilsvarende fil (eller en før eller en efter) det tilhører ikke i sammenlægningen.
EDDGridFra Dap skelet XML XML
<dataset type="EDDGridFromDap" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromDap, this gets the remote .dds and then gets the new
leftmost (first) dimension values. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
</dataset>
EDDGridFraEDDTable
EDDGridFraEDDTable lader dig konvertere en EDDTable tabular datasæt til etEDDGridgitteret datasæt. Husk, atERDDAP™Behandle datasæt som entengitterede datasæt (subklasser afEDDGrid) eller tabulære datasæt (subclasses af EDDTable) .
- Normalt, hvis du har gitterded data, skal du bare oprette enEDDGridDatasæt direkte. Nogle gange er dette ikke muligt, f.eks. når du har de data, der er gemt i en relational database, der er gemtERDDAP™kan kun få adgang via EDDTableFraDatabase.EDDGridFraEDDTable klasse lader dig afhjælpe denne situation.
- Naturligvis skal data i det underliggende EDDTable datasæt være (dybest set) gitterede data, men i en faneformet form. For eksempel kan EDDTable datasæt have CTD-data: målinger af øst og nordvendt strøm, på flere dybder, på flere gange. Da dybderne er de samme på hvert tidspunkt,EDDGridFraEDDTable kan oprette et gitteret datasæt med en tid og en dybdedimension, der åbner dataene via det underliggende EDDTable datasæt.
- GenererDatasets Xml -- Vi anbefaler stærkt at brugeGenererDatasets Xml programat lave et groft udkast tildatasets.xmlBeskåret for denne datasæt. Du kan indsamle de oplysninger, du har brug for til at forbedre det grove udkast.
- Kilder -- Som med alle andre typer datasæt,EDDGridFraTable har ideen om, at der er global kildeAttributes ogglobalt globalt globalt globaltaddAttributes (angivet idatasets.xml) , som kombineres for at gøre den globale kombineret Attributter, som er, hvad brugerne ser. Til global kildeAttributes,EDDGridFraEDDTable bruger den globale kombination Intributter af den underliggende EDDTable datasæt. (Hvis du tænker på det i et minut, det giver mening.)
Ligeledes for hveraxisVariable's og'dataVariable'saddAttributes,EDDGridFraEDDTable bruger variablens kombinerede Bidrager fra den underliggende EDDTable datasæt som denEDDGridFraEDDTable variables kildeAttributes. (Hvis du tænker på det i et minut, det giver mening.)
Som konsekvens, hvis EDDTable har gode metadata, har EDDTablenEDDGridFraEDDTable ofte behøver meget lidtaddAttributesmetadata - bare et par tweaks her og der.
-
dataVariables versusaxisVariables -- Den underliggende EDDTable har kundataVariables. An An An An AnEDDGridFraEDDTable datasæt vil have nogleaxisVariables s s (skabt af nogle af EDDTabledataVariables s s) og nogledataVariables s s (skabt af den resterende EDDTabledataVariables s s) .GenererDatasetsXmlvil gøre et gæt, som EDDTabledataVariables skal bliveEDDGridFraEDDTableaxisVariables, men det er bare et gætte. Du skal ændre output af GenererDatasetsXml for at angive, hvilkedataVariables vil bliveaxisVariables, og i hvilken rækkefølge.
-
-- Der er intet om den underliggende EDDTable at fortælleEDDGridFraEDDTable de mulige værdier afaxisVariables i den gitterede version af datasættet, så du SKAL give disse oplysninger for hveraxisVariablevia en af disse attributter:
- axisValues -- lader dig angive en liste over værdier. For eksempel, <ont navneneSkrivning af dobbeltList"3, 3.5, 4</att> Bemærk brug af enDatatypeplus ordlisten. Også, typen af liste (f.eks. dobbelt) , SKAL matche dataene Type af variablen i EDDTable ogEDDGridFraEDDTable datasæt.
- axisValuesStartStrideStop -- lader dig angive en sekvens af regelmæssigt mellemrumsværdier ved at angive start, skridt og stoppe værdier. Her er et eksempel, der svarer til aksenValues eksempel ovenfor: <ont navn SergeyValuesStartStrideStop"Skrivning af dobbeltList"\NDER, 0,5, 4</att> Bemærk venligst brug af en listedatatype. Også, typen af liste (f.eks. dobbelt) , SKAL matche dataene Type af variablen i EDDTable ogEDDGridFraEDDTable datasæt.
Opdateringer -- Lige som der er ingen måde forEDDGridFraEDDTable til at bestemme akser fra EDDTable oprindeligt, er der også ingen pålidelig måde forEDDGridFraEDDTable til at afgøre fra EDDTable, når akserne har ændret sig (Især når der er nye værdier for tidsvariablen) . I øjeblikket, den eneste løsning er at ændre aksenValues attribut idatasets.xmlog opload datasættet. Du kan f.eks. skrive et script til
- Søg Søg Søgdatasets.xmlfor for for datasetIDSupplerende oplysninger om DatasetID " " " " så du arbejder med det korrekte datasæt.
- Søg Søg Søgdatasets.xmlfor den næste forekomst af
Hoteller i nærheden af teVariablesSourceName
så du arbejder med den korrekte variabel. - Søg Søg Søgdatasets.xmlfor den næste forekomst af
<att name="axisValuesStartStrideStop" type="doubleList">
så du kender startpositionen af mærket. 4. Søg Søg Søgdatasets.xmlfor den næste forekomst af
</att>
Så du kender slutpositionen af akseværdierne. 5. Udskift den gamle start, skridte, stop værdier med de nye værdier. 6. Kontakt osflag URLfor datasættet til at fortælleERDDAP™at indlæse datasættet.
Dette er ikke ideelt, men det virker.
- præcision -- Hvornår Hvornår skal man HvornårEDDGridFraEDDTable reagerer på en brugers anmodning om data, det flytter en række data fra EDDTable svartabellen tilEDDGridrespons gitter. For at gøre dette, skal det finde ud af, om "akse" værdier på en given række i tabellen matcher nogle kombination af akseværdier i gitteret. For ikkeals datatyper er det nemt at afgøre, om to værdier er lig. Men for fly og fordobler, dette bringer det forfærdelige problem med flydende punktnumreikke matchende nøjagtigt. (for eksempel 0,2 versus 0,199999999996) . Sådan skal du til (Prøv at forsøge at) deal med dette,EDDGridFraTable lader dig angive en præcisionsattribut til nogen af deaxisVariables, som angiver det samlede antal decimalcifre, der skal være identisk.
- For eksempel,<ont navnene</att>
- For forskellige typer af datavariabler, er der forskellige standard præcisionsværdier. Standarderne er normalt passende. Hvis de ikke er, skal du angive forskellige værdier.
- For For For For ForaxisVariables, der ertid eller tid Frimærkevariabler, standarden er fuld præcision (en præcis match) .
- For For For For ForaxisVariables, der flyder, standardpræcisionen er 5.
- For For For For ForaxisVariables, der er dobbelt, standardpræcisionen er 9.
- For For For For ForaxisVariables, der har uærlige datatyper,EDDGridFraEDDTable ignorerer præcisions attributten og bruger altid fuld præcision (en præcis match) .
- ADVARSEL! Når du foretager konvertering af en del af tabulerede data i en flok gitterded data, hvisEDDGridFraEDDTable kan ikke matche en EDDTable "akse" værdi til en af de forventedeEDDGridFraEDDTable akseværdier,EDDGridFraEDDTabel tavs (Ingen fejl) smider data fra den række af tabellen. For eksempel kan der være andre data (ikke på nettet) i EDDTable datasæt. (Og hvis du bevæger dig > 1, det er ikke indlysende forEDDGridFraTable, hvilke akseværdier der er ønskede værdier, og hvilke dem er den, der skal springes over på grund af skridtet.) Så hvis præcisionsværdierne er for høje, vil brugeren se manglende værdier i dataresponsen, når gyldige dataværdier rent faktisk eksisterer.
Omvendt, hvis præcisionsværdierne er sat for lave, EDDTable "akse" værdier, der ikke bør matcheEDDGridFraEDDTable akseværdier vil (fejlagtigt) match.
Disse potentielle problemer er forfærdelige, fordi brugeren får de forkerte data (eller manglende værdier) når de skal få de rigtige data (eller mindst en fejlmeddelelse) . Dette er ikke en fejl iEDDGridFra Table.EDDGridFraTable kan ikke løse dette problem. Problemet er i forbindelse med konvertering af tabulære data i gitterded-data (med mindre andre antagelser kan gøres, men de kan ikke gøres her) . Det er op til dig, denERDDAP™administrator, til Test din testEDDGridFraEDDTable grundigt for at sikre, at præcisionsværdierne er indstillet for at undgå disse potentielle problemer.
Forhold
- Forhold-- Dette er en meget usædvanlig type datasæt. Da de typer forespørgsler, der kan gøres til (håndteret af) En antydningEDDGridDatasæt (relateret til sortimenterne og skridtene iaxisVariables s s) er meget forskellige fra de typer forespørgsler, der kan gøres til (håndteret af) Et EDDTable datasæt (lige relateret til intervaller af nogle variabler) , præstationen afEDDGridFraEDDTable datasæt varierer meget afhængigt af den nøjagtige anmodning, der er lavet og hastigheden af det underliggende EDDTable datasæt. For anmodninger, der har en trinvis værdi > 1,EDDGridFraEDDTable kan spørge den underliggende EDDTable for en relativt stor mængde data (som om skridt =) og derefter sigte gennem resultaterne, holde dataene fra nogle rækker og smide dataene fra andre. Hvis det skal undersøges gennem en masse data for at få de data, den har brug for, vil anmodningen tage længere tid til at udfylde.
HvisEDDGridFraEDDTable kan fortælle, at der vil være store huller (med rækker af uønskede data) mellem rækker med ønskede data,EDDGridFraEDDTable kan vælge at foretage flere underrequests til den underliggende EDDTable i stedet for en stor anmodning, og dermed springe de uønskede rækker af data i de store huller. følsomheden for denne beslutning styres af mellemrumsværdien som angivet i<hulThreshold> tag (standard=1000 rækker af kildedata) . Indstilling af mellemrum til et mindre nummer vil føre til datasættet, der gør (generelt generelt generelt) mere subrequest. Indstilling af mellemrum til et større tal vil føre til datasættet, der gør (generelt generelt generelt) færre underspørgsmål.
Hvis mellemrum er indstillet for lille,EDDGridFraEDDTable vil fungere mere langsomt, fordi overtagelsen af flere anmodninger vil være større end den tid, der er gemt ved at få nogle overskydende data. Hvis mellemrum er indstillet for stort,EDDGridFraEDDTable vil fungere mere langsomt, fordi så meget overskydende data bliver hentet fra EDDTable, kun at blive kasseret. (Da Goldilocks opdagede, er midten "kun højre".) Hovedet for forskellige typer af EDDTable datasetser varierer meget, så den eneste måde at vide den faktiske bedste indstilling for dit datasæt er via eksperimentering. Men du vil ikke gå for langt forkert sticking til standarden.
Et simpelt eksempel er: Forestil dig etEDDGridFraTabel med bare énaxisVariable (tid, med en størrelse på 100000) , endataVariable (temperaturtemperatur) , og standardgabet af 1000.
- Hvis en bruger ønsker temperatur\[0💯5000\], skridtet er 100, så hulstørrelsen er 99, som er mindre end kløften. SåEDDGridFraTable vil gøre blot én anmodning til EDDTable for alle de nødvendige data til anmodning (svarende til temperatur\[0:5000\]) og smide alle de rækker af data, det ikke behøver.
- Hvis en bruger ønsker temperatur\[0:2500:5000\], at skridtet er 2500, så hulstørrelsen er 2499, som er større end kløften. SåEDDGridFraTable vil foretage separate anmodninger til EDDTable, som svarer til temperatur\[0\], temperatur\[2500 EUR\], temperatur\[5000 5000\].
Beregning af hulstørrelsen er mere kompliceret, når der er flere akser.
For hver brugerforespørgsel,EDDGridFraEDDTable print diagnostiske meddelelser relateret til dette ilog.txtfil.
- Hvis [<LogLevel>] (#logniveau) i in in in indatasets.xmler indstillet til info, dette udskriver en meddelelse som \* nOuterAxes = af 4 nOuterRequests=22 Hvis nOuterAxes=0, blev hulThreshold ikke overskredet, og kun én anmodning vil blive lavet til EDDTable. Hvis nOuterAxes>0, bliver hulThreshold overskredet, og nOuterRequests vil blive lavet til EDDTable, svarende til hver ønsket kombination af de venstreste nOuterAxes. Hvis datasættet f.eks. har 4axisVariables og sdataVariables ligesom østward\[tidstid\]\[breddegrad\]\[Længde\]\[dybdedybde\], den yderste (først først) akse variabel er tid.
- Hvis<LogLevel> i in in in indatasets.xmler indstillet til alle, yderligere oplysninger er skrevet til log.txt-filen.
EDDGridFraEDDTable skelet XML XML
<dataset type="EDDGridFromEDDTable" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromEDDTable, this only works if the underlying EDDTable
supports updateEveryNMillis. -->
<gapThreshold>...</gapThreshold> <!-- 0 or 1. The default is 1000. >
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
<dataset>...</dataset> <!-- The underlying source EDDTable dataset. -->
</dataset>
EDD*ERDDAP
EDDGridFraErddap håndterer netded data fra en fjernERDDAP™server. EDDTableFraErddap håndterer tabulære data fra en fjernERDDAP™server.
- EDDGridFraErddap og EDDTableFraErddap opfører sig forskelligt fra alle andre typer datasæt iERDDAP.
- Ligesom andre typer datasæt får disse datasæt oplysninger om datasættet fra kilden og holder den i hukommelsen.
- Ligesom andre typer af datasæt, nårERDDAP™søgninger efter datasæt, viser Data Access Form ( datasetID .html) , eller viser Make A Graph form ( datasetID .ografi) ,ERDDAP™Brug oplysningerne om det datasæt, der er i hukommelsen.
- EDDGridFra Erddap og EDDTable FraErddap er grundlaget forGitter/polster/trapperafERDDAPs, som effektivt distribuere CPU-forbruget (Oftest til at lave kort) , hukommelsesforbrug, datasæt opbevaring og båndbredde brug af et stort datacenter.
Ombytning
- I modsætning til andre typer datasæt, nårERDDAP™modtager en anmodning om data eller billeder fra disse datasæt,ERDDAP omdirigeringeranmodningen til fjernbetjeningenERDDAP™server. Resultatet er:
- Dette er meget effektivt (CPU, hukommelse og båndbredde) , fordi ellers
- SammensætningenERDDAP™skal sende anmodningen til den andenERDDAP™ (som tager tid) .
- Den andenERDDAP™skal få dataene, omformatere dem og overføre dataene til komposittenERDDAP.
- SammensætningenERDDAP™skal modtage oplysningerne (ved hjælp af båndbredde) , omformatere det (Brug af CPU og hukommelse) , og transmittere data til brugeren (ved hjælp af båndbredde) . Ved at omdirigere anmodningen og tillade den andenERDDAP™at sende svaret direkte til brugeren, komposittenERDDAP™Bruger stort set ingen CPU tid, hukommelse eller båndbredde på anmodning.
- omdirigeringen er gennemsigtig til brugeren uanset klientsoftwaren (en browser eller enhver anden software eller kommandolinjeværktøj) .
- Dette er meget effektivt (CPU, hukommelse og båndbredde) , fordi ellers
- Du kan fortælleERDDAP™ikke at omdirigere brugeranmodninger ved at indstille<omdirigering>false</redirect>, men denne negates mest af fordelene ved...FraErddap datasæt type (Betydeligt, dispersere belastningen på frontenERDDAP™til fjernbetjeningen/backendERDDAP) .