Lucrul cudatasets.xmlFișier
\[Această pagină web va fi doar de interesERDDAP™Administratori.\]
După ce aţi urmatERDDAP™ instrucțiuni de instalare, trebuie să editațidatasets.xmlfișier în Tomcat /content/erddap/ pentru a descrie seturile de date pe care leERDDAP™instalarea va servi.
Puteți vedea un exempludatasets.xmlprivind GitHub.
Introducere
Unele adunări sunt necesare
Crearea unui set de date înERDDAP™nu este doar o chestiune de a indica la directorul setului de date sau URL. Trebuie să scrii o bucată de XML pentrudatasets.xmlcare descrie setul de date.
- Pentru seturile de date grupate, pentru a face setul de date conform cuERDDAP"Structura de date pentru datele în rețea, trebuie să identifice un subset de variabile ale setului de date care au aceleași dimensiuni. (De ce? Cum?)
- Metadatele curente ale setului de date sunt importate automat. Dar dacă doriți să modificați metadatele sau să adăugați alte metadate, trebuie să-l specificați îndatasets.xml. Şi...ERDDAP™necesită alte metadate, inclusivatribute globale (cum ar fiinfoUrl, instituţie,sourceUrl, rezumat și titlu) şiatribute variabile (cum ar filong\_nameși unități) . La fel cum metadatele care se află în prezent în setul de date adaugă informații descriptive setului de date, metadatele solicitate deERDDAP™adaugă informații descriptive setului de date. Metadate suplimentare este o completare bună la setul de date și ajutăERDDAP™face o treabă mai bună de a prezenta datele dumneavoastră utilizatorilor care nu sunt familiarizați cu ea.
- ERDDAP™trebuie să faci lucruri speciale culongitudine, latitudine, altitudine (sau adâncime) , și variabile de timp.
Dacă cumpărați în aceste idei și cheltui efortul de a crea XML pentrudatasets.xml, ai toate avantajele deERDDAP™, inclusiv:
- Căutare text complet pentru seturi de date
- Caută seturi de date pe categorii
- Formulare de acces la date ( datasetID .html) astfel încât să puteți solicita un subset de date în multe formate de fișiere diferite
- Formulare pentru solicitarea graficelor și hărților ( datasetID .graph)
- Serviciul harta web (WMS) pentru seturi de date în rețea
- RESTfulacces la datele dumneavoastră
Realizareadatasets.xmlnecesită eforturi considerabile pentru primele seturi de date, dar Devine mai uşor. . După primul set de date, puteți folosi adesea o mulțime de muncă pentru următorul set de date. Din fericire,ERDDAP™vine cu douăUneltepentru a vă ajuta să creați XML pentru fiecare set de date îndatasets.xml. Dacă te blochezi, ne vezisecțiunea privind obținerea de sprijin suplimentar.
Furnizor de date Forma
Când un furnizor de date vine la tine în speranța de a adăuga unele date la dvs.ERDDAP, poate fi dificil și consumatoare de timp pentru a colecta toate metadatele (informații privind setul de date) necesar pentru adăugarea setului de date înERDDAP. Multe surse de date (de exemplu, fișiere .csv; Fișiere Excel, baze de date) nu au metadate interne, deciERDDAP™are un formular de furnizor de date care colectează metadate de la furnizorul de date și oferă furnizorului de date alte orientări, inclusiv orientări extinse pentruDate în baze de date. Informațiile transmise se convertesc îndatasets.xmlformat și apoi e-mailat laERDDAP™administrator (Tu) şi scris (anexată) la Big ParentDirectory /loguri/dateProviderForm.log . Astfel, forma semi-automate procesul de a obține un set de date înERDDAPDarERDDAP™administratorul încă trebuie să completezedatasets.xmlbucată și se ocupă cu obținerea fișierului de date (s) de la furnizor sau conectarea la baza de date.
Prezentarea de fișiere de date reale din surse externe este un risc imens de securitate, astfel încâtERDDAP™nu se ocupă cu asta. Trebuie să găsiți o soluție care funcționează pentru dvs. și furnizorul de date, de exemplu, e-mail (pentru fișiere mici) , trage din nor (de exemplu, DropBox sau Google Drive) , un site sftp (cu parole) , sau adidași Net (un hard disk USB sau un hard disk extern) . Probabil că ar trebui să accepţi doar dosarele celor pe care îi cunoşti. Va trebui să scanați fișierele pentru viruși și să luați alte măsuri de precauție de securitate.
Nu există nicio legătură.ERDDAP™la forma furnizorului de date (de exemplu, peERDDAP™pagina de start) . În schimb, atunci când cineva vă spune că doresc să aibă datele lor deservite de dvs.ERDDAP, le puteți trimite un e-mail spunând ceva de genul: Da, putem obține datele dumneavoastră înERDDAP. Pentru a începe, vă rugăm să completați formularul la https://yourUrl/erddap/dataProviderForm.html (sauhttp://dacăhttps://nu este activat) . După ce termini, te voi contacta pentru a stabili detaliile finale. Dacă vrei doar să te uiţi la formular (fără a completa) , puteți vedea formularul peERD'sERDDAP:Introducere,Partea 1,Partea 2,Partea 3, șiPartea 4. Aceste link-uri peERD ERDDAP™trimite-mi informaţii, nu tu, aşa că nu trimite informaţii cu ei decât dacă vrei să adaugi dateERD ERDDAP.
Dacă doriți să eliminați formularul de furnizor de date dinERDDAP™, pune
<dataProviderFormActive>false</dataProviderFormActive>
în fișierul setup.xml.
Impulsul pentru acest lucru a fostNOAA's 2014Accesul public la rezultatele cercetării (PARR) Directiva, care necesită că toateNOAAdatele de mediu finanțate prin dolari contribuabili să fie puse la dispoziție prin intermediul unui serviciu de date (nu doar fișiere) în termen de 12 luni de la creare. Deci există un interes crescut în utilizareaERDDAP™punerea la dispoziție a seturilor de date prin intermediul unui serviciu ASAP. Aveam nevoie de un mod mai eficient de a trata un număr mare de furnizori de date.
Feedback/Sugestii? Acest formular este nou, așa că vă rugăm să e-mailerd dot data at noaa dot govdacă aveți orice feedback sau sugestii pentru îmbunătățirea acestui lucru.
Unelte
ERDDAP™vine cu două programe de linie de comandă care sunt instrumente pentru a vă ajuta să creați XML pentru fiecare set de date pe care doriți dvs.ERDDAP™pentru a servi. Odată ce ați înființatERDDAP™si sa-l ruleze (cel puțin o dată) , puteți găsi și utiliza aceste programe în Tomcat /webapps/erddap/WEB-INF director. Există Linux / Unix scripturi shell (cu extensia .sh) și Windows scripturi (cu extensia .bat) pentru fiecare program.\[Pe Linux, executați aceste instrumente ca același utilizator (Tomcat?) care va rula Tomcat.\]Când executați fiecare program, vă va pune întrebări. Pentru fiecare întrebare, tastaţi un răspuns, apoi apăsaţi Enter. Sau apăsați ^C pentru a ieși dintr-un program în orice moment.
Programul nu va rula?
- Dacă aveţi un program necunoscut (sau similare) mesaj de eroare, problema este, probabil, că sistemul de operare nu a putut găsiJava. Trebuie să-ţi dai seama undeJavaeste pe computerul dvs., apoi editați referința java în .bat sau .sh fișier pe care încercați să utilizați.
- Dacă obțineți un fișier borcan care nu a fost găsit sau o clasă de mesaje de eroare găsite, atunciJavanu a putut găsi una dintre clasele enumerate în .bat sau .sh fișier încercați să utilizați. Soluţia este să ne dăm seama unde este acel fişier .jar şi să edităm referinţa java la acesta în fişierul .bat sau .sh.
- Dacă utilizaţi o versiune deJavacare este prea vechi pentru un program, programul nu va rula și veți vedea un mesaj de eroare ca
Excepție în fir "main" java.lang.Clasă nesuportatăVersiuneError:
unele/clasă/nume : versiune majoră nesusţinută.minor un număr
Soluţia este de a actualiza la cea mai recentă versiune aJavași asigurați-vă că fișierul .sh sau .bat pentru programul este folosind.
Instrumentele tipăresc diferite mesaje de diagnosticare:
- Cuvântul "ERROR" este folosit atunci când ceva a mers atât de greșit încât procedura nu a reușit să se finalizeze. Deși este enervant pentru a obține o eroare, eroarea te forțează să se ocupe de problema.
- Cuvântul "WORGING" este folosit atunci când ceva a mers prost, dar procedura a fost în măsură să fie finalizată. Acestea sunt destul de rare.
- Orice altceva este doar un mesaj informativ. Puteți adăuga \-verbose laGenereazăSeturi de dateXmlsauDasDdslinie de comandă pentru a obține mesaje suplimentare informative, care ajută uneori rezolva probleme.
Cele două instrumente sunt un mare ajutor, dar tot trebuie să citiţi cu atenţie toate aceste instrucţiuni de pe această pagină şi să luaţi singuri decizii importante.
GenereazăSeturi de dateXml
- GenereazăSeturi de dateXml este un program de linie de comandă care poate genera un proiect dur al XML-ului setului de date pentru aproape orice tip de set de date.
RECOMANDĂM STRÂNGEL că folosiţi Seturi de Date Generate Xml în loc de a crea bucăți dedatasets.xmlde mână deoarece:
- Generează dateName Xml funcționează în câteva secunde. Să faci asta manual e cel puţin o oră de muncă, chiar şi când ştii ce faci.
- Generează dateName Xml face o treabă mai bună. Faptul de a face acest lucru cu mâna necesită cunoştinţe ample despre cumERDDAP™funcţionează. Este puţin probabil să faceţi o treabă mai bună manual. (Bob Simons folosește întotdeauna GenerateDatasets Xml pentru prima schiță, și el a scrisERDDAP.)
- Generează dateName Xml generează întotdeauna o bucată validă dedatasets.xml. Orice bucată dedatasets.xmlcă scrie va avea, probabil, cel puțin câteva erori care previnERDDAP™din încărcarea setului de date. Adesea le ia ore întregi oamenilor să diagnosticheze aceste probleme. Nu-ţi pierde timpul. Să generăm Setări de date Xml face munca grea. Apoi puteți rafina .xml de mână, dacă doriți.
Când utilizați GenerateDateSets Program Xml:
- Pe Windows, prima dată când executați GenerateDatesetsXml, aveți nevoie pentru a edita fișierul GenerateDatesetsXml.bat cu un editor de text pentru a schimba calea către Java. exe fişier astfel încât Windows poate găsiJava.
- Generează dateName Xml vă cere mai întâi să specificați EDDType (Erd Dap Dataset Tip) a setului de date. VeziLista tipurilor de seturi de date (în prezentul document) să își dea seama care este tipul adecvat pentru setul de date la care lucrați. Pe lângă EDDTypes regulate, există, de asemenea, câtevaTipuri speciale de date/Pseudo (de exemplu, unul care se târăște un catalog THREDS pentru a genera o bucată dedatasets.xmlpentru fiecare set de date din catalog) .
- Generează dateName Xml vă pune apoi o serie de întrebări specifice acestui EDDType. Întrebările adună informaţiile necesareERDDAP™pentru a accesa sursa setului de date. Pentru a înțelege ceERDDAP™cere, a se vedea documentația pentru EDDType pe care ați specificat-o făcând clic pe același tip de set de date înLista tipurilor de seturi de date.
Dacă aveți nevoie pentru a introduce un șir de caractere speciale (de exemplu, caractere whitespace la început sau la sfârșit, caractere non-ASCII) , introduceţi oSfoara JSON (cu caractere speciale scăpat cu caractere \) . De exemplu, pentru a introduce doar un personaj tab, introduceți "\t" (cu ghilimele duble din jur, care spunERDDAP™că aceasta este o coardă stil JSON.
- De multe ori, unul dintre raspunsurile tale nu va fi ceea ce GenerateDatasetsXml are nevoie. Puteți încerca din nou, cu răspunsuri revizuite la întrebări, până la GenerateDatesets Xml poate găsi și înțelege cu succes datele sursă.
- Dacă răspundeţi corect la întrebări (sau suficient de corect) , Generează date Xml se va conecta la sursa setului de date și va colecta informații de bază (de exemplu, nume și metadate variabile) . Pentru seturile de date de la nivel localNetCDF .ncși fișiere conexe, GenerateDatasets Xml va imprima adesea structura ncdump-ca a fișierului după ce citește mai întâi fișierul. Acest lucru vă poate oferi informații pentru a răspunde mai bine la întrebări pe o buclă ulterioară prin GenerateDateSetsXml.
- Generează dateName Xml va genera apoi un proiect dur al XML-ului setului de date pentru acel set de date.
- Informații de diagnosticare și proiectul dur al setului de date XML vor fi scrise la Big ParentDirectory /logs/GenerateDatasetsXml.log .
- Proiectul brut al setului de date XML va fi scris la Big ParentDirectory /logs/GenerateDatasetsXml.out.
"0 fișiere" Mesaj eroare
Dacă executați GenerateDatasets Xml sauDasDds, sau dacă încercați să încărcați unEDDGridDin... Dosare sau EDD Table From... Set de fișiere înERDDAP™, și veți obține un mesaj de eroare "0 fișiere" indicând faptul căERDDAP™găsit 0 fișiere de potrivire în dosar (atunci când crezi că există fișiere de potrivire în acel director) :
-
Verificați dacă ați specificat numele complet al dosarului. Și dacă ați specificat numele de fișier al eșantionului, asigurați-vă că ați specificat numele complet al fișierului, inclusiv numele dosarului complet.
-
Verificați dacă fișierele sunt într-adevăr în acel director.
-
Verifică ortografia numelui directorului.
-
Verificați fișierulNameRegex. E foarte uşor să faci greşeli cu regexurile. Pentru teste, încercați regex .\* care ar trebui să se potrivească cu toate numele de fișiere. (Vezi asta?documentația regexşitutorial regex.)
-
Verificați dacă utilizatorul care rulează programul (de exemplu, utilizator=tomcat (?) pentru Tomcat/ERDDAP) are permisiunea "citeste" pentru acele fisiere.
-
În unele sisteme de operare (de exemplu, SELinux) și în funcție de setările de sistem, utilizatorul care a rulat programul trebuie să aibă permisiune "citește" pentru întregul lanț de directoare care duce la directorul care are fișierele.
-
Dacă ai probleme pe care nu le poţi rezolva,solicitarea de sprijincu cât mai multe informaţii posibil. În mod similar, în cazul în care se pare că EDDType adecvat pentru un anumit set de date nu funcționează cu acel set de date sau în cazul în care nu există un EDDType adecvat, vă rugăm să completați un dosarproblema GitHubcu detaliile (și un fișier de eșantionare, dacă este cazul) .
Aveți nevoie pentru a edita ieșire de la GenerateDatasets Xml pentru a face mai bine.
-
Disclamer: CHUNKdatasets.xmlMADE BE GenerateDateName Xml nu e perfect. Trebuie să citiți și să editați XML-ul înainte de a-l utiliza într-un publicERDDAP. Generează dateName Releele Xml pe o mulțime de reguli-of-thumb care nu sunt întotdeauna corecte. Sunteți responsabil pentru asigurarea corectitudinii XML pe care le adăugațiERDDAP'Sdatasets.xmlDosarul.
(Nu ţip. Din motive juridice istorice, disclamaţii trebuie să fie scrise în toate capacele.)
Producția de GenerateDatasetsXml este un proiect dur. Aproape întotdeauna va trebui să-l editați. Am făcut și continuăm să facem un efort imens pentru a face producția cât mai gata de plecare posibil, dar există limite. Adesea, informațiile necesare nu sunt pur și simplu disponibile din metadatele sursă.
O problemă fundamentală este că cerem un program de calculator (GenereazăSeturi de dateXml) Pentru a face o sarcină în cazul în care, dacă ați dat aceeași sarcină la 100 de persoane, v-ar obține 100 de rezultate diferite. Nu există un singur răspuns corect. Evident, programul vine cel mai aproape de citirea minții lui Bob (Nu a ta.) , dar chiar și așa, nu este un program all-înțelegere AI, doar o grămadă de euristics cobbled împreună pentru a face o sarcină AI-ca. (Acea zi a unui program All-înțelegere AI poate veni, dar nu a încă. Dacă da, noi oamenii putem avea probleme mai mari. Ai grijă ce-ţi doreşti.)
-
În scopuri informaţionale, rezultatele arată sursa globalăAttributes şi sursa variabilăAttributes ca comentarii.ERDDAP™combină sursaAttributes șiaddAttributes (care au prioritate) pentru a face combinat Atribute care sunt afișate utilizatorului. (Și alte atribute sunt adăugate automat la longitudine, latitudine, altitudine, adâncime și variabile de timp atunci cândERDDAP™face de fapt setul de date) .
-
Dacă nu vă place o sursăAttribute, suprascrieți-l prin adăugarea unui addAttribute cu același nume, dar o valoare diferită (sau nici o valoare, dacă doriți să-l eliminați) .
-
ToateaddAttributessunt sugestii generate de calculator. Editează-le! Dacă nu-ţi place un addAttribute, schimbă-l.
-
Dacă doriți să adăugați alteleaddAttributes, adăugați-le.
-
Dacă vrei să schimbidestinationNameSchimbă-l. Dar nu te schimba.sourceNamec.
-
Puteți schimba ordineadataVariables sau eliminaţi oricare dintre acestea.
- Puteți folosi apoiDasDds (vezi mai jos) pentru a testa în mod repetat XML-ul pentru acel set de date pentru a se asigura că setul de date rezultat apare așa cum doriți să apară înERDDAP.
- Simțiți-vă liber pentru a face mici modificări ladatasets.xmlbucată care a fost generată, de exemplu, furnizarea unei mai buneinfoUrl, rezumat, sau titlu.
nu adăugați denumiri standard
Dacă includeți \-doNotAdd StandardNames ca parametru de linie de comandă atunci când executați generați Setări de date Xml, genera Setări de date Xml nu va adăugastandard\_namelaaddAttributespentru orice variabile, altele decât variabilele numite latitudine, longitudine, altitudine, adâncime sau timp (care au evidentstandard\_names) . Acest lucru poate fi util dacă utilizați ieșirea de la generarea Setări de date Xml direct înERDDAP™fără editarea ieșirii, deoarece generează Setări de date Xml ghicește adeseastandard\_namenu este corect. (Rețineți că vă recomandăm întotdeauna să editați ieșirea înainte de a o utiliza înERDDAP.) Folosind acest parametru va avea alte efecte minore legate de deoarece ghicitstandard\_nameeste adesea utilizat în alte scopuri, de exemplu pentru a crea un noulong\_name, și pentru a crea setările colorBar .
Scriptare
Ca alternativă la răspunsul interactiv la întrebări la tastatură și la buclarea pentru a genera seturi de date suplimentare, puteți oferi argumente linia de comandă pentru a răspunde la toate întrebările pentru a genera un set de date. Generează dateName Xml va procesa acei parametri, scrie ieșire la fișierul de ieșire, și ieși din program.
Pentru a configura acest lucru, utilizați mai întâi programul în modul interactiv și scrieți răspunsurile. Iată un exemplu parțial: Să spunem că rulați script-ul: ./GenerateDatasetsXml.sh Apoi introduceți: EDD Tabel FromAsciiFiles Apoi introduceți: /u00/data/ Apoi introduceți: .\\ . Asc Apoi introduceți: /u00/data/probaFile.asc Apoi introduceți: ISO-8859-1
Pentru a rula acest lucru într-un mod inactiv, utilizați această linie de comandă: ./GenerateDatesetsXml.sh EDDTabel FromAsciiFiles /u00/data/.\.asc /u00/data/probaFile.asc ISO-8859-1 Deci, în principiu, trebuie doar lista toate răspunsurile pe linia de comandă. Acest lucru ar trebui să fie util pentru seturile de date care se modifică frecvent într-un mod care necesită refuncționarea datelor generate Xml (în specialEDDGridDe la ThreddsCatalog) .
Detalii:
- Dacă un parametru conține un spațiu sau un caracter special, atunci codați parametrul ca oSfoara JSON, de exemplu, "parametrul meu cu spații și două\nlinii."
- Dacă doriți să specificați un șir gol ca parametru, utilizați: nimic
- Dacă doriți să specificați valoarea implicită a unui parametru, utilizați: implicit
- Generează dateName Xml suportă a -i Seturi de date XmlName # Nume etichetă parametrul liniei de comandă care introduce ieșirea în specificatdatasets.xmlfișier (implicit este Tomcat /content/erddap/datasets.xml) . Generează dateName Xml caută două linii în seturi de date XmlName:
<!-- Begin GenerateDatasetsXml #*tagName someDatetime* -->
şi
<!-- End GenerateDatasetsXml #*tagName someDatetime* -->
şi înlocuieşte totul între aceste linii cu noul conţinut, şi schimbă cevaDatetime.
- Comutatorul-i este doar procesat (și modificări aledatasets.xmlsunt făcute doar) dacă executați GenerateDatasets Xml cu argumente linia de comandă care specifică toate răspunsurile la toate întrebările pentru o buclă a programului. (A se vedea "Scripting" de mai sus.) (Gândirea este: Acest parametru este utilizat cu scripturi. Dacă utilizați programul în modul interactiv (tastarea informațiilor de pe tastatură) , sunt susceptibile de a genera unele bucăți incorecte de XML înainte de a genera cel pe care doriți.)
- Dacă liniile de început și de sfârșit nu sunt găsite, atunci aceste linii și noul conținut sunt introduse chiar înainte de</erddapDatasets>.
- Există, de asemenea, un -I (Capitalul i) comutator în scopuri de testare care funcționează la fel ca -i, dar creează un fișier numitdatasets.xml Data și nu face modificări ladatasets.xml.
- Nu rulați GenerateDatesets Xml cu -i în două procese simultan. Există o şansă ca un singur set de schimbări să fie păstrat. S-ar putea să fie probleme serioase. (de exemplu, fișiere corupte) .
Dacă utilizați "GenerateDatesetsXml -verbose," acesta va imprima mai multe mesaje de diagnosticare decât de obicei.
Tipuri speciale de date/Pseudo
În general, opțiunile EDDType în GenerateDatasets Potrivire Xml a tipurilor de EDD descrise în acest document (veziLista tipurilor de seturi de date) și să genereze unuldatasets.xmlbucată pentru a crea un set de date dintr-o sursă de date specifică. Există câteva excepţii şi cazuri speciale:
EDDGridFromErddap
Acest Tip EDD generează toatedatasets.xmlbucăți necesare pentru a faceEDDGridFromErddapseturi de date din toateEDDGridSeturi de date la distanțăERDDAP. Veți avea opțiunea de a păstra originaluldatasetIDs (care poate duplica uneledatasetIDe deja în dumneavoastrăERDDAP) sau generarea de nume noi care vor fi unice (dar de obicei nu sunt atât de uşor de citit.) .
Tabel EDD FromErddap
Acest Tip EDD generează toatedatasets.xmlbucăți necesare pentru a faceTabel EDD FromErddapSeturi de date din toate seturile de date ale tabelului EDD într-o telecomandăERDDAP. Veți avea opțiunea de a păstra originaluldatasetIDs (care poate duplica uneledatasetIDe deja în dumneavoastrăERDDAP) sau generarea de nume noi care vor fi unice (dar de obicei nu sunt atât de uşor de citit.) .
EDDGridDe la ThreddsCatalog
Acest Tip EDD generează toatedatasets.xmlbucăți necesare pentru toateEDDGridFromDapseturi de date pe care le poate găsi târându-se recursiv printr-un THREDS (sub) catalog. Există multe forme de URL-uri catalog THREDS. Această opțiune REquires a THREDS .xml URL cu /catalog / în ea, de exemplu,
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/catalog.xml sau
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/chla/catalog.xml
(un catalog legat de .html este la
https://oceanwatch.pfeg.noaa.gov/thredds/Satellite/aggregsatMH/chla/catalog.html , care nu este acceptabil pentruEDDGridFromThreddsCatalog).
Dacă aveţi probleme cuEDDGridDin trei mii Catalog:
- Asigurați-vă că URL-ul pe care îl utilizați este valid, include /catalog/, și se termină cu /catalog.xml .
- Dacă este posibil, utilizați o adresă IP publică (de exemplu, https://oceanwatch.pfeg.noaa.gov ) în URL, nu o adresă locală numerică IP (de exemplu, https://12.34.56.78 ) . Dacă THREDDS este accesibil numai prin intermediul adresei IP numerice locale, puteți utiliza [<Traducerea şi adaptarea: (#convertto publicsourceurl) Deci...ERDDAP™utilizatorii văd adresa publică, chiar dacăERDDAP™Obţine date de la adresa numerică locală.
- Dacă ai probleme pe care nu le poţi rezolva,Verificați vârfurile de depanare.
- Codul de nivel scăzut pentru acest lucru folosește acumUnidatacod netcdf-java catalog crawler (Trei. clase de catalog) astfel încât să se poată ocupa de toate cataloagele TREDDS (care poate fi surprinzător de complex) MulţumităUnidatapentru acel cod.
EDDGridLonPM180FromErddapCatalog
Acest Tip EDD genereazădatasets.xmlpentru a faceEDDGridLonPM180seturi de date din toateEDDGridSeturi de date într-unERDDAPcare au valori de longitudine mai mari de 180.
- Dacă este posibil, utilizați o adresă IP publică (de exemplu, https://oceanwatch.pfeg.noaa.gov ) în URL, nu o adresă locală numerică IP (de exemplu, https://12.34.56.78 ) . DacăERDDAP™este accesibil numai prin intermediul adresei IP numerice locale, puteți utiliza [<Traducerea şi adaptarea: (#convertto publicsourceurl) Deci...ERDDAP™utilizatorii văd adresa publică, chiar dacăERDDAP™Obţine date de la adresa numerică locală.
EDDGridLon0360FromErddapCatalog
Acest Tip EDD genereazădatasets.xmlpentru a faceEDDGridLon0360seturi de date din toateEDDGridSeturi de date într-unERDDAPcare au valori de longitudine mai mici de 0.
- Dacă este posibil, utilizați o adresă IP publică (de exemplu, https://oceanwatch.pfeg.noaa.gov ) în URL, nu o adresă locală numerică IP (de exemplu, https://12.34.56.78 ) . DacăERDDAP™este accesibil numai prin intermediul adresei IP numerice locale, puteți utiliza [<Traducerea şi adaptarea: (#convertto publicsourceurl) Deci...ERDDAP™utilizatorii văd adresa publică, chiar dacăERDDAP™Obţine date de la adresa numerică locală.
EDD din dosare
Având în vedere un director de pornire, acest lucru traversează directorul și toate subdirectoarele și încearcă să creeze un set de date pentru fiecare grup de fișiere de date pe care le găsește.
- Acest lucru presupune că, atunci când se găsește un set de date, setul include toate subdirecțiile.
- În cazul în care se găsește un set de date, directoarele similare vor fi tratate ca seturi de date separate (De exemplu, directoarele pentru anii 1990, 2000, 2010 vor genera seturi de date separate) . Acestea ar trebui să fie ușor de combinat manual -- doar modificați primul set de date<fileDir> la directorul-mamă și ștergeți toate setările de date pentru frați ulterioare.
- Acest lucru va încerca doar să genereze o bucată dedatasets.xmlpentru cel mai comun tip de extensie a fișierului într-un director (fără numărarea .md5, care este ignorat) . Deci, dat un director cu 10.ncfișiere și 5 fișiere .txt, va fi generat un set de date pentru.ncDoar dosare.
- Aceasta presupune că toate fișierele dintr-un director cu aceeași extensie aparțin aceluiași set de date. Dacă un director are ceva.ncfișiere cu date SST și unele.ncfișiere cu date clorofila, doar un eșantion.ncfișierul va fi citit (SST? clorofilă?) și doar un set de date va fi creat pentru acest tip de fișier. Acest set de date nu va fi probabil încărcat din cauza complicațiilor de la încercarea de a încărca două tipuri de fișiere în același set de date.
- Dacă există mai puțin de 4 fișiere cu cea mai comună extensie într-un director, acest lucru presupune că acestea nu sunt fișiere de date și pur și simplu sare peste director.
- Dacă există 4 sau mai multe fișiere într-un director, dar acest lucru nu poate genera cu succes o bucată dedatasets.xmlpentru fișiere (de exemplu, un tip de fișier nesuportat) , acest lucru va genera unTabel EDDFromFileNamesSet de date pentru fișiere.
- La sfârșitul diagnosticului că acest lucru scrie la fișierul jurnal, chiar înainte dedatasets.xmlBucăţi, asta va imprima o masă cu un rezumat al informaţiilor adunate traversând toate subdirectoarele. Tabelul va lista fiecare subdosar și va indica cel mai comun tip de extensie a fișierului, numărul total de fișiere și ce tip de set de date a fost creat pentru aceste fișiere (dacă este cazul) . Dacă vă confruntaţi cu o structură complexă, adânc cuibărită de fişiere, luaţi în considerare funcţionarea GenerateDatesets Xml cu EDDType=EDDsFromFiles doar pentru a genera aceste informații,
- Această opțiune nu poate face o treabă bună de ghicit cel mai bun EDDType pentru un anumit grup de fișiere de date, dar este rapid, ușor, și merită o încercare. Dacă fișierele sursă sunt potrivite, funcționează bine și este un bun prim pas în generareadatasets.xmlpentru un sistem de fișiere cu multe subdirectoare, fiecare cu fișiere de date din seturi de date diferite.
Tabel EDDFromEML și tabel EDDFromEMLBatch
Aceste tipuri speciale de EDD genereazădatasets.xmlpentru a face oTabel EDD din AsciiFilesSet de date din fiecare tabel descris într-unLimbajul metadatelor ecologiceFișier XML. Varianta "Batch" funcționează pe toate fișierele EML într-un director local sau la distanță. Vă rugăm să vedeți separatdocumentaţie pentru tabelul EDDFromEML.
Tabel EDD dinspre interior
Acest tip special de EDD genereazădatasets.xmlpentru a face oTabel EDD din AsciiFilesSetul de date din informațiile dintr-oinport- xmlDosar. Dacă puteți obține acces la fișierul sursă de date (fișierul inport-xml ar trebui să aibă indicii pentru unde să-l găsească) , puteți face un set de date de lucru înERDDAP.
Următoarele etape prezintă modul de utilizare GenerateDatasets Xml cu un fișier inport-xml pentru a obține un set de date de lucru înERDDAP.
- Odată ce aveți acces la fișierul inport-xml (fie ca URL sau ca fișier local) : run GenerateDatesets Xml, specificați EDDType=EDDtableFromInPort, specificați URL-ul în port-xml sau numele întreg al fișierului, specificați care Child=0 și specificați celelalte informații solicitate (dacă este cunoscut) . (În acest moment, nu trebuie să aveți fișierul sursă de date sau să specificați numele acesteia.) @ info: whatsthis Xml pentru a scrie informațiile pentru toate al<informații privind atributul entității ><entitate > este în fișierul inport-xml (dacă există) . De asemenea, imprima un rezumat de fundal, inclusiv toate de descărcare-url enumerate în fișierul inport-xml.
- Uită-te prin toate aceste informații (inclusiv informațiile de fond care generează date Amprente Xml) și vizitați descărcarea-url (s) pentru a încerca să găsească fișierul sursă de date (s) . Dacă o poţi găsi (Ei...) , descarca-l (Ei...) într-un director accesibilERDDAP. (Dacă nu găsiţi nici un fişier sursă de date, nu are rost să continuaţi.)
- Generează rulează Setări de date Din nou Xml. Dacă fișierul de date sursă corespunde cu unul dintre fișierele inport-xml<informații privind atributul entității ><entity>'s, specifica whichChild= că numărul lui Entity (De exemplu, 1, 2, 3, ...) .ERDDAP™va încerca să se potrivească numele coloanei din fișierul de date sursă cu numele din informațiile entității și va încerca să accepte/rejecteze/remedieze orice discrepanțe. Sau, în cazul în care fișierul inport-xml nu are nici<informații privind atributul entității ><entity>'s, specifica care Child=0.
- În bucata dedatasets.xmlcare a fost făcută de GenerateDatasets Xml, revizuiește [global<addAttributes>] (#atribute globale) după cum este necesar/dorit.
- În bucata dedatasets.xmlcare a fost făcută de GenerateDatasetsXml, adăugați/revizuiți [<dataVariable>] (#date variabile) informații necesare/dorite pentru a descrie fiecare dintre variabile. Asiguraţi-vă că identificaţi corect fiecare variabilă [<sourceName>] (#sourcename) (așa cum apare în sursă) , [<destinationName>] (#destinationname) (care are mai multe limitări asupra caracterelor permise decâtsourceName) , [<unități >] (# Unităţi) (mai ales dacă esteVariabila timpului sau a momentuluiunde unitățile trebuie să specifice formatul) , și [<missing\_value>] (Valoarea_missing) ,
- Când sunteţi aproape de a termina, utilizaţi în mod repetatDasDdsinstrument pentru a vedea rapid dacă descrierea setului de date este valabilă și dacă setul de date va apărea înERDDAP™Cum vrei tu.
Ar fi minunat dacă grupurile care utilizează InPort pentru a documenta seturile lor de date ar folosi, de asemenea,ERDDAP™să pună la dispoziție datele reale:
- ERDDAP™este o solutie care poate fi folosita chiar acum astfel incat sa puteti indepliniNOAA'sAccesul public la rezultatele cercetării (PARR) CerințeChiar acum, nu într-un moment vag în viitor.
- ERDDAP™pune datele reale la dispoziția utilizatorilor, nu doar a metadatelor. (La ce bun metadatele fără date?)
- ERDDAP™acceptă metadatele (în special, unitățile variabilelor) , spre deosebire de alte software server de date fiind luate în considerare. (La ce sunt bune datele fără metadate?) Pentru a utiliza software-ul care nu suportă metadatele este de a invita datele să fie înțelese greșit și utilizate în mod abuziv.
- ERDDAP™este software liber și open-source, spre deosebire de alte software-uri luate în considerare. Dezvoltarea continuă aERDDAP™este deja plătit. Suport pentruERDDAP™utilizatorii sunt liberi.
- ERDDAPAparența lui poate fi ușor personalizat pentru a reflecta și evidenția grupul dumneavoastră (nuERDsauERDDAP) .
- ERDDAP™oferă o modalitate coerentă de acces la toate setările de date.
- ERDDAP™poate citi date din mai multe tipuri de fișiere de date și din bazele de date relaționale.
- ERDDAP™pot face față unor seturi mari de date, inclusiv seturilor de date în care datele sursă se află în numeroase fi șiere de date.
- ERDDAP™poate scrie date la mai multe tipuri de fișiere de date, la cererea utilizatorului, inclusiv tipuri de fișiere de date științifice, cum ar fi netCDF, ESRI .csv, șiODV .txt.
- ERDDAP™poate face grafice personalizate și hărți ale subseturilor de date, pe baza specificațiilor utilizatorului.
- ERDDAP™se pot ocupa de seturile de date nedate, cum ar fi colectarea de imagini, video sau fișiere audio.
- ERDDAP™a fost instalat și utilizat lapeste 60 de instituții din întreaga lume.
- ERDDAP™este listat ca unul dintre serverele de date recomandate pentru utilizare înNOAAînNOAADirectiva privind procedura de acces la dateSpre deosebire de alte programe luate în considerare.
- ERDDAP™este un produs alNMFS/NOAA, deci folosindu-l înNMFSşiNOAAAr trebui să fie un punct de mândrie pentruNMFSşiNOAA.
Te rog daERDDAP™o încercare. Dacă aveţi nevoie de ajutor, vă rugăm să postaţi un mesaj înERDDAP™Grupul Google.
addFillValueAttributes
Această opțiune specială EDDType nu este un tip de set de date. Este un instrument care poate adăuga atribute \_FillValue la unele variabile din anumite seturi de date. Vezi?addFillValueAttributes.
gindesteDuplicat Timp
Această opțiune specială EDDType nu este un tip de set de date. În schimb, spune GenerateDatasets Xml pentru a căuta printr-o colecție de gridded.nc (și legate) fișiere pentru a găsi și imprima o listă de fișiere cu valori ale timpului duplicat. Când se uită la valorile de timp, le transformă din unitățile originale în"seconds since 1970-01-01"în cazul în care diferite fișiere folosesc diferite unități siruri de caractere. Trebuie să furnizeze directorul de pornire (cu sau fără tăietura de cale) , expresia regulată a numelui fișierului (De exemplu, .\*\.nc ) , și numele variabilei de timp în fișiere.
ncdump
Această opțiune specială EDDType nu este un tip de set de date. În schimb, spune GenerateDatasets Xml pentru a imprima unncdump\-ca imprimarea unui.nc,.ncml sau.hdfDosar. Foloseşte netcdf-java.NCdump, care este un instrument mai limitat decât versiunea C a NCdump. Dacă utilizați această opțiune, GenerateDatasetsXml vă va cere să utilizați una dintre opțiunile: "-h" (antet) , "-C" (coordonate vars) , "-vall" (implicit) , "-v var1;var2," "-v var1 (0,0:10,0:20) ". Acest lucru este util pentru că, fără ncdump este greu să știi ce este într-o.nc,.ncml sau.hdffișier și astfel care EDDType ar trebui să specifice pentru GenerateDatasets Xml. Pentru.ncml fișier, acest lucru va imprima ieșire ncdump pentru rezultatul.ncmodificări de fișier ml aplicate suportului.ncsau.hdfDosar.
DasDds
- DasDds este un program de linie de comandă pe care îl puteți utiliza după ce ați creat o primă încercare la XML pentru un nou set de date îndatasets.xml. Cu DasDds, puteți testa și rafina în mod repetat XML. Când utilizați programul DasDds:
- Pe Windows, prima dată când executați DasDds, aveți nevoie pentru a edita DasDds. fișier liliac cu un editor de text pentru a schimba calea către java. exe fişier astfel încât Windows poate găsiJava.
- DasDds vă cere pentrudatasetIDpentru setul de date la care lucraţi.
- DasDds încearcă să creeze setul de date cu caredatasetID.
- DasDds imprima întotdeauna o mulțime de mesaje de diagnosticare. Dacă utilizați "DasDds -verbose," DasDds va imprima mai multe mesaje de diagnosticare decât de obicei.
- Pentru siguranță, DasDds șterge întotdeauna toate informațiile privind setul de date cache (fișiere) pentru setul de date înainte de a încerca să creeze setul de date. Acesta este echivalentul stabiliriisteag tareDeci, pentru seturi de date agregate, ați putea dori să ajustați temporar fișierulNameRegex pentru a limita numărul de fișiere găsite de constructorul de date.
- Dacă setul de date nu se încarcă (Pentru orice motiv) , DasDds se va opri și vă va arăta mesajul de eroare pentru prima eroare pe care o găsește.
Nu încerca să ghiceşti care ar putea fi problema. Citiţi cu atenţie mesajul ERROR.
Dacă este necesar, citiți mesajele de diagnosticare precedente pentru a găsi mai multe indicii și informații, de asemenea. - Face o schimbare la XML-ul setului de date pentru a încerca să rezolve această problemă
și să DasDds încerca să creeze din nou setul de date. - Dacă rezolvați în mod repetat fiecare problemă, veți rezolva în cele din urmă toate problemele
iar setul de date se va încărca.
- Toate rezultatele DASDd (diagnostice și rezultate) sunt scrise pe ecran și la Big ParentDirectory /logs/DasDds.log .
- Dacă DasDds poate crea setul de date, DasDds vă va arăta apoi.das (Structura de atribuire a datelor) ,.dds (Descriptor de date Structura) , și.time Gaps (intervale de timp) informații pentru setul de date de pe ecran și scrieți-le Big ParentDirectory /logs/DasDds.out.
- Adesea, veți dori să faceți unele mici modificări la XML-ul setului de date pentru a curăța metadatele setului de date și a rerula DasDds.
Bonus Instrumentul pentru partea a treia:ERDDAP- Lint.
ERDDAP-Lint este un program de la Rob Fuller și Adam Leadbetter al Institutului Irish Marine pe care îl puteți folosi pentru a îmbunătăți metadatele de dvs.ERDDAP™Seturi de date.ERDDAP-Lint "conţine reguli şi o aplicaţie web statică simplă pentru efectuarea unor teste de verificare împotriva dumneavoastrăERDDAP™server. Toate testele sunt efectuate în browserul web." CaUnix/Linux scame instrument, puteți edita normele existente sau adăuga noi reguli. Vezi?ERDDAP- Lint.pentru mai multe informații.
Acest instrument este deosebit de util pentru seturile de date pe care le-ați creat cu ceva timp în urmă și acum doriți să aduceți la zi preferințele dumneavoastră actuale de metadate. De exemplu, versiunile timpurii ale Seturilor de Date Generate Xml nu a depus niciun efort în crearea globalăcreator\_name,creator\_email, creator\_type; saucreator\_urlmetadate. Ai putea folosiERDDAP-intru in identificarea seturilor de date care lipsesc acele atribute de metadate.
Datorită Rob și Adam pentru crearea acestui instrument și punerea la dispozițiaERDDAP™comunitate.
Structura de bază adatasets.xmlFișier
Etichetele obligatorii și opționale permise în adatasets.xmlfișier (și numărul de ori acestea pot apărea) sunt prezentate mai jos. În practică, dumneavoastrădatasets.xmlva avea o mulțime de<Etichetele setului de date > și se utilizează numai celelalte etichete din cadrul<erddapDatasets > dacă este necesar.
<?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>
Este posibil ca alte codări să fie permise în viitor, dar pentru moment, se recomandă doar ISO-8859-1.
XIclude
Nou în versiunea 2.25 este suport pentru XIInclude. Acest lucru necesită utilizarea parserului SAX<UtilizareSaxParser>true</useSaxParser> in your setup.xml. Acest lucru vă poate permite să scrieți fiecare set de date în propriul său fișier, apoi să le includă pe toate în principaldatasets.xml, refolosirea părților din definițiile setului de date sau ambele. Dacă doriți să vedeți un exemplu,EDDTestDataset.javastabilește XIinclusiv pentru reutilizarea definițiilor variabile.
Note
Lucrul cudatasets.xmlDosarul este un proiect non-trivial. Vă rugăm să citiţi cu atenţie toate aceste note. După ce alegeți unTipul setului de dateVă rugăm să citiţi cu atenţie descrierea detaliată a acesteia.
Alegerea tipului de set de date
În cele mai multe cazuri, există doar unulERDDAP™tipul setului de date care este adecvat pentru o anumită sursă de date. În câteva cazuri (de exemplu,.ncfișiere) Sunt câteva posibilităţi, dar de obicei una dintre ele e cea mai bună. Prima şi cea mai mare decizie pe care trebuie să o luaţi este: este potrivit să trataţi setul de date ca pe un grup de matrice multidimensionale (dacă da, veziEDDGridTipuri de seturi de date) sau ca un tabel de date de tip bază de date (dacă da, veziTipuri de seturi de date EDD) .
Servirea datelor aşa cum este
De obicei, nu este necesară modificarea sursei de date (De exemplu, converti fișierele la un alt tip de fișier) astfel încâtERDDAP™poate servi. Una dintre ipotezeleERDDAP™este că sursa de date va fi utilizată așa cum este. De obicei merge bine. Unele excepții sunt:
- Baza de date relaţională şi Cassandra --ERDDAP™pot servi date direct din bazele de date relaționale și Cassandra. Dar pentru securitate, echilibrarea sarcinii, și probleme de performanță, puteți alege să configurați o altă bază de date cu aceleași date sau salva datele laNetCDFv3.ncfișiere și auERDDAP™să servească datele din noua sursă de date. Vezi?Tabel EDD din baza de dateşiTabel EDD din Cassandra.
- Surse de date nesusţinute...ERDDAP™poate sprijini un număr mare de tipuri de surse de date, dar lumea este plină de 1000 (milioane?) din diferite surse de date (în special, structurile de fișiere de date) . DacăERDDAP™nu suportă sursa ta de date:
- Dacă sursa de date esteNetCDF .ncfișiere, puteți utilizaNcMLmodificarea fișierelor de date la zbor sau utilizareaNCOmodificarea permanentă a fișierelor de date.
- Puteți scrie datele unui tip de sursă de date careERDDAP™sprijină.NetCDF- 3.ncfișierele sunt o recomandare bună, generală, deoarece acestea sunt fișiere binare careERDDAP™poate citi foarte repede. Pentru datele tabulare, ia în considerare stocarea datelor într-o colecție de.ncfișiere care utilizeazăCF Geometrii de eșantionare discrete (DSG) Structuri de date Contiguous Ragged Array și astfel pot fi manipulate cuERDDAP'sTabel EDD din NCFFile). Dacă sunt organizate logic (fiecare cu date pentru o bucată de spațiu și timp) ,ERDDAP™poate extrage date de la ei foarte repede.
- Puteți solicita ca sprijinul pentru această sursă de date să fie adăugat laERDDAP™prin e-mail Chris. John la Noaa.gov.
- Puteți adăuga suport pentru această sursă de date scriind codul pentru a-l descurca singur. Vezi?nuERDDAP™Ghidul programatorului
- Viteza...ERDDAP™poate citi date din unele surse de date mult mai repede decât altele. De exemplu, citireaNetCDFv3.ncFișierele sunt rapide și citirea fișierelor ASCII este mai lentă. Și dacă există o mare (> 1000) sau uriaş (> 10000) numărul de fișiere sursă de date;ERDDAP™va răspunde încet la unele solicitări de date. De obicei, diferenţa nu poate fi observată pentru oameni. Cu toate acestea, dacă credeţiERDDAP™este lent pentru un anumit set de date, puteți alege pentru a rezolva problema prin scrierea datelor la o configurare mai eficientă (de obicei: câteva, bine structurate,NetCDFv3.ncfișiere) . Pentru date tabulare, a se vedeaacest sfat.
Indiciu
Este adesea mai ușor să se genereze XML-ul pentru un set de date prin efectuarea unei copii a unei descrieri a setului de date de lucru în set.xml și apoi modificarea acestuia.
Codare caractere speciale
De cânddatasets.xmleste un fișier XML, trebuie& Cod"&,"<" și ">" în orice conținut ca "&,"<" şi ">." Greșit:<Titlul > Timp & Tides</titlu> Dreapta:<Titlul > Timp și Tides</titlu>
XML nu tolerează erorile de sintaxă
După ce ați editat fișierul Setting.xml, este o idee bună pentru a verifica că rezultatul esteXML bine formatprin lipirea textului XML într-un checker XML caValidare xml.
Sfaturi de depanare
- Alte modalități de a diagnostica probleme cu datele
Pe lângă cele două principaleUnelte, - log.txteste un fișier jurnal cu toateERDDAPMesajele de diagnosticare.
- ăRaport zilnicare mai multe informații decât pagina de stare, inclusiv o listă de seturi de date care nu au încărcat și excepțiile (erori) au generat.
- ăPagina statutuluieste un mod rapid de a verificaERDDAPStarea lui de la orice browser web. Acesta include o listă de seturi de date care nu au încărcat (cu toate că nu excepțiile aferente) și statistici Thread (care demonstrează progresulEDDGridCopiazăşiEDDCommentCopySeturi de date și oriceEDDGridDin dosaresauTabel EDD din dosareSeturi de date care utilizeazăcacheFromUrl (dar nu cache Dimensiune GB) ) .
- Dacă te blochezi, ne vezisecțiunea privind obținerea de sprijin suplimentar.
Variabile speciale
- longitudine, latitudine, altitudine (sau adâncime) , și timp (LLAT) variabilă destinationNameS sunt speciale.
- În general:
- Variabilele LLAT sunt cunoscuteERDDAP™dacă variabila axei (pentruEDDGridSeturi de date) sau variabila datelor (pentru seturi de date ale tabelului EDD) destinationNameeste "longitudine," "latitudine," "altitudine," "aprofundat" sau"time".
- Vă încurajăm cu tărie să utilizați aceste nume standard pentru aceste variabile ori de câte ori este posibil. Nici unul dintre ele nu este necesar. Dacă nu utilizați aceste nume variabile speciale,ERDDAP™Nu vor recunoaşte semnificaţia lor. De exemplu, variabilele LLAT sunt tratate special de Make A Graph ( datasetID .graph) : dacă variabila Axei X este "longitudine," iar variabila Axei Y este "latitudine," veți primi o hartă (utilizarea unei proiecții standard și cu o mască de teren, limite politice etc.) în loc de un grafic.
- ERDDAP™va adăuga automat o mulțime de metadate la variabilele LLAT (de exemplu, "ioos\_category","unități" și mai multe atribute legate de standarde cum ar fi "\_CoordonatAxisType") .
- ERDDAP™va adăuga automat, on-the-fly, o mulțime de metadate globale legate de valorile LLAT ale subgrupului de date selectate (de exemplu, "geospatial\_lon\_min") .
- Clienții care susțin aceste standarde de metadate vor putea profita de metadatele adăugate pentru a poziționa datele în timp și spațiu.
- Clienții vor găsi mai ușor de a genera întrebări care includ variabile LLAT, deoarece numele variabilei sunt aceleași în toate seturile de date relevante.
- Pentru variabila "longitudine" și variabila "latitudine":
- UtilizaţidestinationName"Longitudine" şi "latitudine" numai dacăunitățiSunt grade est şi grade nord. Dacă datele dumneavoastră nu corespund acestor cerințe, utilizați diferite nume variabile (de exemplu, x, y, londians, latRadians) .
- Dacă aveți date de longitudine și latitudine exprimate în unități diferite și astfel cu diferitedestinationNames, de exemplu, lonRadieni și latRadieni, Make A Graph ( datasetID .graph) va face grafice (de exemplu, serii de timp) în loc de hărţi.
- Pentru variabila "altitudine" și variabila "aprofundat":
- UtilizaţidestinationName"altitudine" pentru identificarea distanței datelor peste nivelul mării (valori pozitive="up") . Opțional, puteți folosi "altitudine" pentru distanțe sub nivelul mării dacă valorile sunt negative sub mare (sau dacă utilizați, de exemplu, [<att name="scale\_factor" type="intrück- 1</att>] (#scale_factor) să transforme valorile adâncimii în valori ale altitudinii.
- UtilizaţidestinationName"aprofundat" pentru a identifica distanța datelor sub nivelul mării (valori pozitive="jos") .
- Este posibil ca un set de date să nu aibă atât variabile "altitudine," cât și "aprofundate."
- Pentru aceste nume variabile,unitățitrebuie să fie "m," "metru," sau "metri." Dacă unităţile sunt diferite (de exemplu, stânjeni) , puteți folosi [<att name="scale\_factor"> unele Valoare </att>] (#scale_factor) şi [<Att name="supermetri</att>] (# Unităţi) pentru a converti unitățile în metri.
- Dacă datele dumneavoastră nu corespund acestor cerințe, utilizați un altdestinationName (De exemplu, deasupra solului, distanţa ToBottom) .
- Dacă știți SIR-ul vertical, vă rugăm să precizați în metadate, de exemplu, "EPSG:5829" (înălțimea instantanee deasupra nivelului mării) "EPSG:5831" (adâncime instantanee sub nivelul mării) , sau "EPSG:5703" (Înălțimea NAVD88) .
- Pentru"time"variabilă:
- UtilizaţidestinationName "time"numai pentru variabilele care includ întreaga dată+timp (sau data, dacă asta este tot) . Dacă, de exemplu, există coloane separate pentru data și ora zilei, nu utilizați denumirea variabilă"time".
- Vezi?unitățipentru mai multe informații despre atributul unităților pentru timp și variabile Stamp.
- Variabila temporală și legatătimp Variabilele timbrelorsunt unice prin care convertesc întotdeauna valorile datelor din formatul temporal al sursei (Orice ar fi) într-o valoare numerică (secunde de la 1970-01-01T00:00:00Z) sau o valoare de coardă (ISO 8601:2004 (E) format) Depinde de situaţie.
- Atunci când un utilizator solicită date de timp, acestea pot solicita prin specificarea timpului ca valoare numerică (secunde de la 1970-01-01T00:00:00Z) sau o valoare de coardă (ISO 8601:2004 (E) format) .
- ERDDAP™are o utilitateSchimbă un numeric Timpul până la/de la un timp de coardă.
- Vezi?CumERDDAPSe ocupă de timp.
De ce doar două structuri de date de bază?
- Deoarece este dificil pentru clienții umani și clienții de calculatoare să se ocupe de un set complex de structuri posibile de seturi de date,ERDDAP™utilizează doar două structuri de date de bază:
- astructura de date grided (de exemplu, pentru datele prin satelit și pentru datele de model) şi
- aStructura datelor tabulare (de exemplu, pentru geamandura in situ, stația și datele traiectoriei) .
- Desigur, nu toate datele pot fi exprimate în aceste structuri, dar o mare parte poate. Tabelele, în special, sunt structuri de date foarte flexibile (uita-te la succesul programelor de baze de date relationale) .
- Astfel, întrebările privind datele sunt mai ușor de construit.
- Acest lucru face ca răspunsurile la date să aibă o structură simplă, ceea ce facilitează utilizarea datelor într-o varietate mai largă de tipuri de fișiere standard (care adesea sprijină doar structuri simple de date) . Acesta este principalul motiv pentru care am înființatERDDAP™Pe aici.
- Acest lucru, la rândul său, face foarte ușor pentru noi (sau oricine) pentru a scrie software client care funcționează cu toateERDDAP™Seturi de date.
- Acest lucru facilitează compararea datelor din diferite surse.
- Suntem foarte conștienți de faptul că, dacă sunteți obișnuit să lucrați cu date în alte structuri de date, ați putea crede inițial că această abordare este simplistă sau insuficientă. Dar toate structurile de date au compromisuri. Niciuna nu e perfectă. Chiar și structurile do-it-all au dezavantajele lor: lucrul cu ele este complex și fișierele pot fi scrise sau citite numai cu biblioteci speciale de software. Dacă accepţiERDDAPAbordare suficient pentru a încerca să lucreze cu ea, s-ar putea găsi că are avantajele sale (în special sprijinul pentru mai multe tipuri de fișiere care pot deține răspunsurile la date) . ăERDDAP™slide show (în specialdiapozitiv structuri de date) Vorbeşte mult despre aceste probleme.
- Și chiar dacă această abordare sună ciudat pentru tine, cele mai multeERDDAP™clienții nu vor observa niciodată -- vor vedea pur și simplu că toate seturile de date au o structură simplă și vor fi recunoscători că pot obține date dintr-o mare varietate de surse returnate într-o mare varietate de formate de fișiere.
Dimensiuni
- Ce se întâmplă dacă variabilele de rețea din setul de date sursă NU împărtășesc aceleași variabile ale axei?
ÎnEDDGridSeturi de date, toate variabilele de date TREBUIE utilizate (cotă) toate variabilele axei. Deci, dacă un set de date sursă are unele variabile cu un set de dimensiuni, și alte variabile cu un set diferit de dimensiuni, va trebui să facă două seturi de date înERDDAP. De exemplu, s-ar putea face unulERDDAP™Set de date intitulat "Unele titluri (la suprafață) " să dețină variabile care folosesc doar\[timp\]\[latitudine\]\[longitudine\]dimensiuni și să facă altulERDDAP™Set de date intitulat "Unele titluri (la adâncimi) " să dețină variabilele care utilizează\[timp\]\[altitudine\]\[latitudine\]\[longitudine\]. Sau poate puteți schimba sursa de date pentru a adăuga o dimensiune cu o singură valoare (de exemplu, altitudinea = 0.) pentru a face variabilele coerente.
ERDDAP™nu se ocupă de seturi de date mai complicate (de exemplu, modele care utilizează o plasă de triunghiuri) Bine. Puteți servi aceste seturi de date înERDDAP™prin crearea a două sau mai multe seturi de date înERDDAP™ (astfel încât toate variabilele de date din fiecare set de date nou să aibă același set de variabile ale axei) Dar nu asta vor utilizatorii. Pentru unele seturi de date, ați putea lua în considerare realizarea unei versiuni regulate în grilă a setului de date și oferirea acestuia în plus față de datele originale. Unele software-ul client poate face doar cu o grilă regulat, astfel încât prin a face acest lucru, ajunge la clienți suplimentari.
Date proiectate pentru grid
Unele date în reţea au o structură complexă. De exemplu, nivelul satelitului 2 ("de-a lungul drumului") datele nu utilizează o proiecție simplă. Modelatoare (şi altele) de multe ori lucrează cu date în rețea pe diverse proiecții non-cilindrile (de exemplu, conic, stereografic polar, tripolar) sau în rețele nestructurate (o structură de date mai complexă) . Unii utilizatori finali doresc aceste date ca este, astfel încât nu există nici o pierdere de informații. Pentru acei clienti,ERDDAP™poate servi datele, așa cum este, numai dacăERDDAP™administratorul rupe setul de date original în câteva seturi de date, fiecare parte incluzând variabile care au aceleași variabile ale axei. Da, asta pare ciudat pentru oamenii implicați și este diferit de majoritateaOPeNDAPservere. Dar...ERDDAP™subliniază punerea la dispoziție a datelor în mai multe formate. Acest lucru este posibil deoareceERDDAP™utilizează/necesită o structură de date mai uniformă. Deşi e puţin ciudat. (și anume, diferit de cel așteptat) ,ERDDAP™poate distribui datele proiectate.
\[Da.ERDDAP™ar putea avea cerințe mai slabe pentru structura de date, dar să păstreze cerințele pentru formatele de ieșire. Dar acest lucru ar duce la confuzie în rândul multor utilizatori, în special noi, deoarece multe cereri aparent valabile de date cu diferite structuri ar fi invalide, deoarece datele nu s-ar potrivi în tipul de fișier. Ne tot întoarcem la designul sistemului curent.\]
Unii utilizatori finali doresc date într-o proiecţie cilindrică lat lon cum ar fi Equirectangular / plăci carrée sau Mercator) pentru uşurinţă de utilizare în diferite situaţii. Pentru aceste situații, încurajămERDDAP™administrator pentru a utiliza un alt software (NCO?Matlab? R? IDV? ...?) să reproiecteze datele pe o zonă geografică (Proiecţie echirectangulară / farfurie carrée) sau alte proiecții cilindrice și care servesc această formă de date înERDDAP™ca un set de date diferit. Acest lucru este similar cu ceea ce fac oamenii atunci când convertesc datele de nivel satelit 2 în datele de nivel 3. Un astfel de instrument esteNCOcare oferă opțiuni de extensie pentru recuperarea datelor.
GIS și datele de reproiectare
Deoarece lumea GIS este adesea orientată pe hartă, programele GIS oferă de obicei suport pentru reproiectarea datelor, adică complotarea datelor pe o hartă cu o proiecție diferită.
În prezent,ERDDAP™nu dispune de instrumente de reproiectare a datelor. În schimb, vă recomandăm să utilizați un instrument extern pentru a face o variantă a setului de date, în cazul în care datele au fost reproiectate din forma sa originală pe o formă dreptunghiulară (longitudine latitudine) array adecvat pentruERDDAP.
În opinia noastră, CF/DAPLumea este puţin diferită de lumea GIS şi funcţionează la un nivel uşor inferior.ERDDAP™reflectă asta. În general,ERDDAP™este conceput să funcționeze în principal cu date (nu hărți) şi nu vrea să se schimbe. (De exemplu, reproiectarea) datele. PentruERDDAP™, datele în rețea sunt adesea/de obicei/preferabil asociate cu valorile lat lon și o proiecție cilindrică, și nu cu valorile x,y ale unor proiecții. În orice caz,ERDDAP™nu face nimic cu proiecția datelor; doar transmite datele prin, așa cum este, cu proiecția sa actuală, pe teoria că o reproiectare este o schimbare semnificativă a datelor șiERDDAP™nu vrea să fie implicat în schimbări semnificative. De asemenea, utilizatorii ulteriori ar putea reproiecta naiv datele din nou, ceea ce nu ar fi la fel de bun ca doar o reproiectare. (Deci, dacăERDDAP™administratorul doreste sa ofere datele intr-o proiectie diferita, bine; doar sa reproiecteze datele offline si sa ofere ca un set de date diferit inERDDAP. O mulțime de seturi de date bazate pe satelit sunt oferite ca ceea ce NASA numește Nivelul 2 (lebădă) și ca nivel 3 (Proiecţie echirectangulară) versiuni.) CândERDDAP™face hărți (direct sau prinWMSsau KML) ,ERDDAP™în prezent oferă doar pentru a face hărți cu proiecția Equirectangular / placă carrée care, din fericire, este acceptat de majoritatea programelor de cartografiere.
ÎncurajămERDDAP™administratori pentru a utiliza un alt software (NCO?Matlab? R? IDV? ...?) să reproiecteze datele pe o zonă geografică (Proiecţie echirectangulară / farfurie carrée) sau alte proiecții cilindrice și care servesc această formă de date înERDDAP™ca un set de date diferit. Acest lucru este similar cu ceea ce fac oamenii atunci când convertesc datele de nivel satelit 2 în datele de nivel 3. Un astfel de instrument esteNCOcare oferă opțiuni de extensie pentru recuperarea datelor.
Sperăm căERDDAP™va avea instrumente integrate pentru a oferi hărți cu alte proiecții în viitor. De asemenea, sperăm să avem legături mai bune cu lumea GIS în viitor (altele decât curentulWMSserviciu) . Este groaznic că în această lume "modernă," legăturile dintre CF/DAPLumea şi lumea GIS sunt încă atât de slabe. Ambele lucruri sunt pe lista To Do. (Dacă doriți să ajutați, în special cu conectareaERDDAP™la MapServer, te rog trimite-i un e-mail lui Chris. John la Noaa.gov.)
Tipuri de date
ERDDAP™sprijină următoarele tipuri de date (numele sunt sensibile la caz;'u'prefixul înseamnă "nesemnat"; numărul multor nume din alte sisteme este numărul de biți) :
octet
- octet a semnat valori întregi cu o gamă de -128-127. În alte sisteme, acest lucru se numește uneori int8. Asta se numeşte "tinyint" de SQL şi Cassandra. ERDDAP™convertițibooleandin anumite surse (De exemplu, SQL și Cassandra) în octețiERDDAP™cu o valoare de 0=fals, 1=adevărat, și 127=missing\_value.
ubyte
- ubyte are valori întregi nesemnate cu o gamă de la 0 la 255. În alte sisteme, aceasta se numeşte uneori uint8.
scurt
- scurt a semnat valori întregi cu un interval cuprins între -32768 și 32767. În alte sisteme, acest lucru se numește uneori int16. Se numeşte "micuţ" de SQL şi Cassandra.
scurt
- scurt are valori întregi nesemnate cu un interval de la 0 la 65535. În alte sisteme, acest lucru se numește uneori Uint16.
int
- int a semnat valori întregi cu o gamă de -2147483648 până la 2147483647. În alte sisteme, acest lucru se numește uneori int32. Asta se numeşte "integer."|numeric (?) " by SQL and "int" by Cassandra.
uint
- uint are valori întregi nesemnate cu o gamă cuprinsă între 0 și 4294967295. În alte sisteme, acest lucru se numește uneori uint32.
lung
- lung a semnat valori întregi cu o gamă de -9223372036854775808 la 9223372036854775807. În alte sisteme, acest lucru se numește uneori int64. Asta se numeşte "bigint."|numeric (?) " by SQL and "bigint" by Cassandra. Deoarece multe tipuri de fișiere nu susțin date lungi, utilizarea lor este descurajată. Când este posibil, utilizați dublu în schimb (vezi mai jos) .
ulong
- ulong are valori întregi nesemnate cu un interval cuprins între 0 și 184467440737095511615 În alte sisteme, acest lucru este uneori numit Uint64. Deoarece multe tipuri de fișiere nu susțin date lungi, utilizarea lor este descurajată. Când este posibil, utilizați dublu în schimb (vezi mai jos) .
float
- float este un float IEEE 754 cu o gamă de aproximativ +/- 3.402823466e+38. În alte sisteme, aceasta se numește uneori float32. Asta se numeşte "real"|float (?) |zecimală (?) |numeric (?) " by SQL and "float" by Cassandra. Valoarea specială NaN înseamnă Nu-un-Număr. ERDDAP™convertește valorile infinitului pozitiv și negativ la NaN.
dublu
- dublu este un IEEE 754 dublu cu o gamă de aproximativ +/- 1,7976931348623157E+308. În alte sisteme, aceasta se numește uneori float64. Asta se numeşte "precizie dublă"|float (?) |zecimală (?) |numeric (?) " by SQL and "dublu" by Cassandra. Valoarea specială NaN înseamnă Nu-un-Număr. ERDDAP™convertește valorile infinitului pozitiv și negativ la NaN.
char
- char este un singur, 2 octet (16 biți) Caracter Unicode UCS-2variind din\u0000 (#0) prin\uffff (#65535) . \uffffDefiniţia lui nu este un "Character," similar unei valori duble a NaN. Utilizarea de char este descurajat deoarece multe tipuri de fișiere fie nu susțin chars sau numai suport 1-byte chars (vezi mai jos) . Ia în considerare utilizarea String în schimb. Utilizatorii pot folosi variabile char pentru a face grafice.ERDDAP™va converti caracterele la numărul de cod Unicode, care poate fi folosit ca date numerice.
String
- String este o secvență de 0 sau mai mult, 2 octeți (16 biți) Unicode UCS-2 caractere. ERDDAP™utilizează/interpretează un șir de 0 lungimi ca valoare lipsă.ERDDAP™nu suportă o coardă nulă adevărată. Lungimea maximă teoretică a șirului este de 2147483647 caractere, dar există, probabil, diferite probleme în diferite locuri chiar și cu corzi oarecum mai scurte. UtilizareERDDAP's String for SQL's caracter, varchar, caracter various, binar, varbinary, interval, array, multiset, xml, și orice alt tip de date de baze de date care nu se potrivește curat cu orice altERDDAP™tipul de date. UtilizareERDDAP's String for Cassandra's "text" and any other Cassandra data type that doesn't potrivesc cleanly with any otherERDDAP™tipul de date.
ÎnainteERDDAP™v2.10;ERDDAP™nu a sprijinit tipurile întregi nesemnate pe plan intern și a oferit sprijin limitat cititorilor și scriitorilor de date.
Limitări de tip date
Te poţi gândi laERDDAP™un sistem care dispune de seturi de date virtuale și care funcționează prin citirea datelor dintr-o sursă de date dintr-un set de date într-un model intern de date și prin scrierea datelor către diferite servicii (de exemplu,(OPeN)DAP,WMS) și tipuri de fișiere ca răspuns la cererile utilizatorilor.
- Fiecare cititor de intrare suportă un subset de tipuri de date careERDDAP™sprijină. Deci, citirea datelor înERDDAPStructurile interne de date nu sunt o problemă.
- Fiecare scriitor de ieșire suportă, de asemenea, un subset de tipuri de date. Asta e o problemă pentru căERDDAPtrebuie să stoarcă, de exemplu, date lungi în tipuri de fișiere care nu susțin date lungi.
Mai jos sunt explicaţiile limitărilor (sau niciunul) de diverși scriitori de ieșire și cumERDDAP™se ocupă de probleme. Aceste complicaţii sunt o parte inerentă aERDDAPScopul lui de a face sistemele disparate interoperabile.
ASCII
- ASCII (.csv,.tsv, etc.) fișiere text -
-
Toate datele numerice sunt scrise prin reprezentarea String (cu valorile lipsă ale datelor care apar sub formă de șiruri de caractere cu lungime egală cu zero) .
-
Deşi...ERDDAP™scrie corect valori lungi şi lungi la fişierele text ASCII, mulţi cititori (De exemplu, programe de foi de calcul) nu se pot ocupa corect cu valori lungi și lungi și în schimb convertiți-le la valori duble (cu pierderea preciziei în unele cazuri) .
-
Datele Char și String sunt scrise prin JSON Strings, care se ocupă de toate caracterele Unicode (în special, personajele "neobişnuite" dincolo de ASCII #127, de exemplu, caracterul Euro apare ca "\u20ac") .
-
JSON
- JSON (.json,.jsonlCSV, etc.) fișiere text -
- Toate datele numerice sunt scrise prin reprezentarea String.
- Datele Char și String sunt scrise ca JSON Strings, care se ocupă de toate caracterele Unicode (în special, personajele "neobişnuite" dincolo de ASCII #127, de exemplu, caracterul Euro apare ca "\u20ac") .
- Valorile lipsă pentru toate tipurile de date numerice par nule.
.nc3 fișiere
- .nc3 fișiere nu susțin nativ orice tipuri de date întregi nesemnate. Înainte de CF v1.9, CF nu a sprijinit tipuri întregi nesemnate. Pentru a face față acestui lucru,ERDDAP™2.10+ urmează standardul NUG și adaugă întotdeauna un atribut "\_Nesemnat" cu o valoare de "adevărat" sau "fals" pentru a indica dacă datele provin dintr-o variabilă nesemnată sau semnată. Toate atributele întregi sunt scrise ca atribute semnate (de exemplu, octet) cu valori semnate (de exemplu, un ubitactual\rangeatributul cu valorile de la 0 la 255, apare ca un atribut octet cu valorile de la 0 la -1 (inversul valorii complementului celor două a valorii din afara intervalului). Nu există nici o modalitate ușoară de a ști care (semnat) atribute întregi ar trebui să fie citite ca atribute nesemnate.ERDDAP™acceptă atributul "\ Nesemnat" atunci când citește.nc3 dosare.
- .nc3 fișiere nu suportă tipurile de date lungi sau lungi.ERDDAP™se ocupă de acest lucru prin conversia temporară a acestora pentru a fi variabile duble. Dublu pot reprezenta exact toate valorile până la +/- 9,007,199,254,740,992 care este 2^53. Aceasta este o soluţie imperfectă.Unidatarefuză să facă un upgrade minor la.nc3 pentru a rezolva această problemă și problemele conexe, citând.nc4 (o schimbare majoră) ca soluţie.
- Specificațiile CF (înainte de v1. 9) a declarat că sprijină un tip de date de tip char, dar nu este clar dacă Char este destinat doar ca elemente de bază ale matricelor char, care sunt în mod eficient Strings. Întrebările la lista lor de corespondenţă au dat doar răspunsuri confuze. Din cauza acestor complicații, este cel mai bine pentru a evita variabilele char înERDDAP™și să utilizeze variabile String ori de câte ori este posibil.
- Tradiţional,.nc3 fişiere acceptate numai siruri de caractere cu ASCII-codate (7 biți; #0 - #127) Personaje. NUG (şiERDDAP) se extinde (începând cu ~2017) prin includerea atributului "\_Encoding" cu o valoare de "ISO-8859-1" (o extensie a ASCII care definește toate valorile 256 ale fiecărui caracter pe 8 biți) sau "UTF-8" pentru a indica modul în care sunt codificate datele String. Alte codări pot fi legale, dar sunt descurajate.
.nc4 fișiere
- .nc4 fișiere suportă toateERDDAPSunt tipuri de date.
Fișiere NCCSV
Fișierele NCCSV 1.0 nu suportă niciun tip de date întregi nesemnate. Fișiere NCCSV 1.1+să sprijine toate tipurile de date întregi nesemnate.
DAP
- (OPeN)DAP (.das, .dds, .sc fișiere ASCII, și .dods fișiere binare) -
- (OPeN)DAPse ocupă scurt, scurt, int, uint, float și valori duble corect.
- (OPeN)DAPare un tip de date "byte" pe care le definește ca nesemnate, în timp ce istoric, THREDS șiERDDAP™au tratat "octet" ca fiind semnat în(OPeN)DAPServicii. Pentru a face cu acest lucru mai bine,ERDDAP™2.10+ urmează standardul NUG și adaugă întotdeauna un atribut "\_Nesemnat" cu o valoare de "adevărat" sau "fals" pentru a indica dacă datele sunt ceea ceERDDAP™Apeluri octet sau ubyte. Toate atributele octeți și ubiti sunt scrise ca atribute "octeți" cu valori semnate (de exemplu, un ubitactual\_rangeatributul cu valorile de la 0 la 255, apare ca un atribut octet cu valorile de la 0 la -1 (inversul valorii complementului celor două a valorii din afara intervalului). Nu există nici o modalitate ușoară de a ști ce atribute "byte" ar trebui să fie citite ca atribute ubyte.
- (OPeN)DAPnu suportă perioade lungi semnate sau nesemnate.ERDDAP™se ocupă de acest lucru prin conversia temporară a acestora pentru a fi variabile și atribute duble. Dublu pot reprezenta exact toate valorile până la 9,007,199,254,740,992 care este 2^53. Aceasta este o soluţie imperfectă.OPeNDAP (organizația) refuză să facă un upgrade minor laDAP2.0 să se ocupe de acest lucru și probleme conexe, citândDAP4 (o schimbare majoră) ca soluţie.
- Pentru că(OPeN)DAPnu are un tip separat de date de tip char și, din punct de vedere tehnic, suportă doar caractere ASCII de 1 octet (#0 - #127) în Strings, variabilele de date char vor apărea sub formă de coarde cu 1 caracter lung în(OPeN)DAP.das, .dds, și .dods răspunsuri.
- Tehnic,(OPeN)DAPSpecificaţia suportă doar siruri de caractere cu caractere codate ASCII (#0 - #127) . NUG (şiERDDAP) se extinde (începând cu ~2017) prin includerea atributului "\_Encoding" cu o valoare de "ISO-8859-1" (o extensie a ASCII care definește toate valorile 256 ale fiecărui caracter pe 8 biți) sau "UTF-8" pentru a indica modul în care sunt codificate datele String. Alte codări pot fi legale, dar sunt descurajate.
Tip de date Comentarii
- Din cauza suportului slab pentru date de lungă durată, ulong și char în multe tipuri de fișiere, descurajăm utilizarea acestor tipuri de date înERDDAP. Când este posibil, utilizați dublu în loc de lung și lung, și utilizați String în loc de char.
- Metadate - Deoarece(OPeN)DAPrăspunsurile .das și .dds nu susțin atribute lungi sau lungi sau tipuri de date (şi în loc să le arate ca dublu) , ați putea dori în schimb să utilizațiERDDAPReprezentarea tabelară a metadatelor, așa cum se vede înhttp.../erddap/ info / datasetID Pagina web .html (de exemplu, https://coastwatch.pfeg.noaa.gov/erddap/info/cwwcNDBCMet/index.html ) (pe care le puteți obține și în alte tipuri de fișiere, de exemplu, .csv,.htmlTable,.itx,.json,.jsonlCSV1,.jsonlCSV,.jsonlKVP,.mat,.nc,.nccsv,.tsv,.xhtml) sau.nccsvRăspunsul la metadate (de exemplu, https://coastwatch.pfeg.noaa.gov/erddap/tabledap/cwwcNDBCMet.nccsvMetadata de.nccsvMetadatele sunt disponibile numai pentru seturile de date tabulare) , ambele dintre care sprijină toate tipurile de date (în special, lung, lung și Char) .
Fișiere media
Nu toate datele sunt array-uri de numere sau text. Unele seturi de date constau în sau includ fișiere media, cum ar fi imagini, fișiere audio și video.ERDDAP™are unele caracteristici speciale pentru a facilita accesul utilizatorilor la fișiere media. E un proces în două etape:
- Face fiecare fișier accesibil prin intermediul propriului URL, printr-un sistem care suportă cererile de gamă octet. Cel mai simplu mod de a face acest lucru este de a pune fișierele într-un director careERDDAP™are acces la. (Dacă acestea sunt într-un container ca un.zipfișier, deschide-le, deși este posibil să doriți să oferiți.zipfișier pentru utilizatori prea.) Atunci fă-o.Tabel EDDFromFileNamesSet de date pentru a face aceste fișiere accesibile prin intermediulERDDAP™, în special prinERDDAP's"files"sistem.
Toate fișierele accesibile prin intermediul EDDTableFromFileNames șiERDDAP's"files"suport sistemcereri de interval de octeți. În mod normal, atunci când un client (de exemplu, un browser) face o cerere la un URL, devine întregul fișier ca răspuns. Dar cu o cerere de gamă de octeți, cererea specifică o gamă de octeți din fișier, iar serverul returnează doar acei octeți. Acest lucru este relevant aici deoarece jucătorii audio şi video din browsere funcţionează numai dacă fişierul poate fi accesat prin intermediul cererilor de gamă octet.
Opțional: Dacă aveți mai mult de un set de date cu fișiere media asociate, puteți face doar un singur EDDtableFromFileNames care are un subdosar pentru fiecare grup de fișiere. Avantajul este că atunci când doriți să adăugați noi fișiere media pentru un nou set de date, tot ce trebuie să faceți este să creați un nou dosar și să introduceți fișierele în acel dosar. Dosarul și fișierele vor fi adăugate automat la setul de date EDDTableFromFileNames.
- Opțional: Dacă aveți un set de date care include trimiteri la fișiere media, adăugați-l laERDDAP. De exemplu, este posibil să aveți un fișier .csv cu un rând pentru fiecare dată când cineva a văzut o balenă și o coloană care include numele unui fișier imagine legate de acea observare. Dacă numele fișierului imagine este doar numele fișierului, de exemplu, Img20141024T192403Z, nu un URL complet, atunci trebuie să adăugațiAccessBase fișier Url și/sau fileAccessSuffixatributele metadatelor pentru aceastadataVariablecare specifică baza și sufixul acestor nume de fișier. Dacă ați făcut fișierele accesibile prin intermediul EDDtableFromFileNames, URL-ul va fi în formă BaseUrl /erddap/files/ datasetID / De exemplu,
<att name="fileAccessBaseUrl">*someBaseURL*</a>
<att name="fileAccessSuffix">.png</a>
Dacă există o.zipsau alt fișier container cu toate fișierele media legate de o variabilă de date, vă recomandăm să faceți acel fișier accesibil utilizatorilor (vezi pasul 1 de mai sus) şi apoi să-l identifice cu unAccessArchive Urlatribut.
\[Începând cuERDDAP™v1, 82\]Dacă faceţi primul pas de mai sus (sau ambii pași) , atunci când un utilizator vedeERDDAP™ "files"sistem pentru respectivul set de date (sau solicită să se consulte un subset al setului de date prin intermediul unui.htmlTablecerere, dacă ați făcut al doilea pas) ,ERDDAP™va arăta o "?," pictogramă la stânga numelui fișierului. În cazul în care utilizatorul plutește peste acea pictogramă, ei vor vedea un popup care arată imaginea, sau un player audio, sau un player video. Navigatorii susțin doar un număr limitat de tipuri de
- imagine (de obicei .gif, .jpg, și .png) ,
- audio (De obicei .mp3, .ogg, și .wav) , și
- fișiere video (De obicei .mp4, .ogv, și . webm) .
Suportul variază cu diferite versiuni ale diferitelor browsere pe diferite sisteme de operare. Deci, dacă aveți o alegere a tipului de fișier de oferit, este logic să ofere aceste tipuri.
Sau, dacă un utilizator face clic pe numele de fișier afișat pe unERDDAP™pagina web, browser-ul lor va afișa imaginea, fișierul audio sau video ca o pagină web separată. Acest lucru este foarte util pentru a vedea o imagine foarte mare sau video scalat la ecran complet, în loc de într-un popup.
Lucrul cu fișiere AWS S3
Amazon Web Service (AWS) este un vânzător decloud computingServicii.S3este un sistem de stocare a obiectelor oferit de AWS. În locul sistemului ierarhic de directoare și fișiere ale unui sistem tradițional de fișiere (ca un hard disk în PC-ul tău) , S3 oferă doar "buchete" care dețin "obiecte" (Îi vom suna."files") .
Pentru fișierele ASCII (de exemplu, .csv.) ,ERDDAP™poate lucra cu fișierele în găleți direct. Singurul lucru pe care trebuie să faci este să specifice<fileDir> pentru setul de date utilizând un format specific pentru găleata AWS, de exemplu, https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ . Nu trebuie să utilizaţi<Cache FromUrl>. A se vedea mai jos pentru detalii.
Dar pentru fișiere binare (de exemplu,.nc,.grib,.bufr, și.hdffișiere) , trebuie să utilizați<CacheFromUrl> sistem descris mai jos.ERDDAP, netcdf-java (careERDDAP™folosește pentru a citi date din aceste fișiere) , și alte software-ul de date științifice sunt concepute pentru a lucra cu fișiere într-un sistem tradițional de fișiere care oferănivel blocacces la fișiere (care permite citirea bucăților unui fișier) , dar S3 oferă doarnivel fișier (obiect) acces la fișiere (care permite numai citirea întregului fișier) . AWS oferă o alternativă la S3,Magazin Elastic Block (EBS) ), care susține accesul la nivel bloc la fișiere, dar este mai scump decât S3, astfel încât este rar utilizat pentru stocarea în vrac a unor cantități mari de fișiere de date. (Deci, atunci când oamenii spun stocarea datelor în nor (S3) este ieftin, este, de obicei, o comparație mere la portocale.)
Găleți S3
Conţinutul unei găleţi. Cheile. Obiecte.Delimitatoare.
Tehnic, găleți S3 nu sunt organizate într-o structură ierarhică de fișiere ca un sistem de fișiere pe un calculator. În schimb, găleţile conţin doar "obiecte" (fișiere) Fiecare are o cheie. (un nume) . Un exemplu de cheie în această găleată noaa-goes17 este
ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc
URl corespunzătoare pentru acel obiect este
AWS suportă o mică variație în modul în care URL-ul este construit, darERDDAP™necesită acest format specific:
https://bucketName.s3.region.amazonaws.com/key
Este o practică obişnuită, ca şi în cazul acestui exemplu, să faci numele cheie să arate ca o cale ierarhică plus un nume de fişier, dar tehnic nu sunt. Deoarece este comun și util,ERDDAP™tratează cheile cu /'s ca și cum acestea sunt o cale ierarhică plus numele fișierului, iar această documentație se va referi la ei ca atare. Dacă cheile unei găleți nu folosesc /'s (de exemplu, o cheie ca
ABI-Lib.2018.052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_s201805222447575), apoiERDDAP™va trata doar întreaga cheie ca un nume de fișier lung.
Private vs Public Buckets -- Administratorul găleții S3 poate face găleata și conținutul acesteia publice sau private. Dacă este public, orice fișier din găleată poate fi descărcat de oricine utilizează URL-ul pentru fișier. Amazon are oDeschide dateprogram care găzduiește seturi de date publice (inclusiv date dinNOAA, NASA și USGS) gratuit și nu percepe nimeni pentru a descărca fișierele din aceste găleți. Dacă o găleată este privată, fișierele din găleată sunt accesibile numai utilizatorilor autorizați și AWS percepe o taxă (De obicei plătit de proprietarul găleții) pentru descărcarea fișierelor pe un computer S3.ERDDAP™poate lucra cu date în găleți publice și private.
AWS Acreditari
Pentru a face astfel încâtERDDAP™poate citi conținutul de găleți private, aveți nevoie de acreditări AWS și aveți nevoie pentru a stoca un fișier de acreditare în locul standard astfel încâtERDDAP™pot găsi informaţiile. A se vedea AWS SDK pentruJava2.x documentație:Stabilește acreditări implicite. (Opțiunea de a stoca valorile caJavaparametrii liniei de comandă în\[Tomcat\]/bin/setenv.sh poate fi o opțiune bună.)
AWS / fișiere/
- /File/sistem -- ăERDDAP™ /Fişiere/sistempermite utilizatorilor să descarce fișierele sursă pentru un set de date. Vă recomandăm să activați acest lucru pentru toate seturile de date cu fișiere sursă deoarece mulți utilizatori doresc să descarce fișierele sursă originale.
- Dacă fișierele sunt într-o găleată S3, cererea utilizatorului de a descărca un fișier va fi manipulată de cătreERDDAP™, care va citi datele din fișier și apoi le transmite utilizatorului, crescând astfel sarcina pe dvs.ERDDAP™, folosind banda de intrare și de ieșire, și de a face tine (nuERDDAP™administrator) plătește taxa de ieșire a datelor către AWS.
- Dacă fișierele sunt într-o găleată publică S3, cererea utilizatorului de a descărca un fișier va fi redirecționată către URL-ul AWS S3 pentru acel fișier, astfel încât datele nu vor curge prinERDDAP™, reducând astfel sarcina peERDDAP. Și dacă fișierele sunt într-un Amazon Open Data (gratuit) Găleată publică, apoi tu (nuERDDAP™administrator) nu va trebui să plătească nici o taxă de ieșire date la AWS. Astfel, există un mare avantaj deservind datele publice (nu privat) S3 găleți, și un avantaj imens pentru a servi date de la Amazon Open Data (gratuit) Găleţi.
ERDDAP™și AWS S3 Buckets
ERDDAP™și AWS S3 Buckets
Din fericire, după mult efort,ERDDAP™are o serie de caracteristici care îi permit să facă față problemelor inerente de a lucra cu accesul S3 la dosarele la nivel de bloc într-un mod rezonabil eficient:
- \[Disclaimer: Lucrul cu găleți AWS S3 este o mulțime de muncă în plus. AWS este un ecosistem imens de servicii și caracteristici. Sunt multe de învăţat. Este nevoie de timp și efort, dar este realizabil. Ai răbdare şi vei face lucrurile să meargă. Caută/ cere ajutor
(Documentația AWS, site-uri caOverflow stiva, și regulat
ERDDAP™opțiuni de sprijin) dacă/când te blochezi.\]
- Acesta poate fi greu de a afla chiar structura director și numele fișierelor într-o găleată S3.ERDDAP™are o solutie pentru aceasta problema: EDDtableFromFileNames are o speciala\\# From The Fly #opțiunea care vă permite să faceți un set de date EDDTableFromFileNames care permite utilizatorilor să navigheze conținutul unei găleți S3 (și descărcați fișiere) prin intermediul setului de date"files"Opţiune. Există oexemplu de mai jos.
- ERDDAP™poate citi date de lafișiere de date externe comprimate, deci este bine dacă fișierele de pe S3 sunt stocate ca.gz,.gzip,.bz2,.Z, sau alte tipuri de fișiere de date externe comprimate, care pot dramatic (2 - 20X) reducerea costurilor de stocare a fișierelor. Adesea nu există nici o penalizare de timp pentru utilizarea fișierelor comprimate extern, deoarece timpul salvat prin transferul unui fișier mai mic de la S3 laERDDAPechilibrează aproximativ timpul suplimentar necesarERDDAP™Pentru a decomprima fişierul. Pentru a utiliza această caracteristică, trebuie doar să vă asigurați că setul de date<fileNameRegex> permite tipul de fișier comprimat (de exemplu, prin adăugarea (|.gz) până la sfârşitul regexului) .
- Pentru cel mai comun caz, în cazul în care aveți oERDDAP™instalat pe PC-ul dvs. pentru testare/dezvoltare și în cazul în care setul de date are fișiere binare care sunt stocate ca obiecte într-o găleată S3, o abordare pentru a obține setul de date înERDDAP™este:
-
Creați un director pe PC pentru a deține câteva fișiere de date de testare.
-
Descărcaţi două fişiere de date din sursă în directorul pe care tocmai l-aţi creat.
-
UtilizareGenereazăSeturi de dateXmlpentru a genera bucata dedatasets.xmlpentru setul de date bazat pe cele două fișiere de date locale.
-
Verificați dacă setul de date funcționează conform cerințelorDasDdsși/sau localERDDAP.
Următoarele etape fac o copie a setului de date (care va obține date de la găleata S3) pe un publicERDDAP.
-
Copiază bucata dedatasets.xmlpentru setul de date ladatasets.xmlpentru publicERDDAP™care va servi datelor.
-
Creează un director în publicERDDAPHard disk local pentru a deține un depozit de fișiere temporare. Directorul nu va folosi mult spaţiu pe disc. (vezi cacheSizeGB de mai jos) .
-
Modificarea valorii setului de date<tag fileDir> astfel încât să indice la directorul tocmai ați creat (chiar dacă directorul este gol) .
-
Adaugă ocacheFromUrletichetă care specifică numele cupei setului de date și prefixul opțional (și anume directorul) în specificAWs S3 URL Format careERDDAP™necesită.
-
Se adaugă o [<CacheSizeGB>] (#cachefromurl) tag-ul pe xml-ul setului de date (De exemplu, 10 este o valoare bună pentru majoritatea seturilor de date) pentru a spuneERDDAP™limitarea dimensiunii cache-ului local (Adică, nu încercați să cache toate fișierele de la distanță) .
-
Vezi dacă funcţionează în public.ERDDAP. Rețineți că prima datăERDDAP™încarcă setul de date, va dura mult până se încarcă, deoareceERDDAP™trebuie să descarce și să citească toate fișierele de date.
-
În cazul în care setul de date este o colecție uriașă de fișiere de date cu grilă uriașă, acest lucru va dura foarte mult timp și nu va fi practic. În unele cazuri, pentru fișiere de date în rețea,ERDDAP™poate extrage informațiile necesare (De exemplu, momentul pentru datele dintr-un fișier de date în rețea) din numele fișierului și pentru a evita această problemă. Vezi?Agregare prin Nume fișiere.
- Opțional (dar în special pentru tabelul EDDFromFiles settings) , puteți adăuga unnThreadstag-ul setului de dateERDDAPsă utilizeze mai mult de 1 fir atunci când răspunde la cererea unui utilizator de date. Acest lucru minimizează efectele întârzierii care apare atunci cândERDDAP™citește fișierele de date din (distant) AWS S3 găleți în cache-ul local și (Poate.) Îi decomprimăm.
AWS S3 Date deschise
Ca parte dinNOAA'sProgram Big Data,NOAAare parteneriate cu cinci organizații, inclusiv AWS, "pentru a explora beneficiile potențiale ale stocării de copii ale observațiilor-cheie și a rezultatelor modelului în Cloud pentru a permite calcularea directă a datelor fără a necesita o distribuție ulterioară." AWS include seturile de date de laNOAAca parte a programului său de a oferi publicului acces la o mare colecție deOpen data on AWS S3de la orice calculator, dacă este vorba de o instanță de calcul Amazon (un computer închiriat) pe rețeaua AWS sau propriul PC pe orice rețea. Exemplul de mai jos presupune că lucrați cu un set de date accesibil publicului.
Accesarea fișierelor într-o găleată AWS S3
Pentru o găleată de date S3, proprietarul găleţii trebuie să vă dea acces la găleată. (A se vedea documentația AWS.)
În toate cazurile, veți avea nevoie de un cont AWS deoarece AWS SDK pentruJava (careERDDAP™folosește pentru a prelua informații despre conținutul unei găleți) necesită acreditarea contului AWS. (mai multe pe aceasta mai jos)
ERDDAP™poate accesa găleți AWS S3 numai dacă specificați [<CacheFromUrl>] (#cachefromurl) (sau<fileDir>) într-un format specific:
https://bucketName.s3.aws-region.amazonaws.com/prefix/
unde
- Numele găleții este forma scurtă a numelui găleții, de exemplu noa-goes17.
- Regiunea-aws, de exemplu, ne-est-1, este din coloana "Region" într-una din tabelele dePuncte finale ale serviciului AWSunde se află găleata.
- Prefixul este opţional. Dacă este prezent, trebuie să se termine cu'/'.
De exemplu, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
Acest format URL este una dintre recomandările AWS S3: a se vedeaAccesarea unei găleţişiaceastă descriere a prefixelor.ERDDAP™cere să combinaţi URL- ul găleată şi prefixul opţional într-un URL pentru a specifica<CacheFromUrl> (sau<fileDir>) în cazul în care fișierele sunt situate.
Testați găleți AWS S3
Pentru găleți publice, puteți și ar trebui să testați URL-ul găleții din directorul AWS S3 din browser, de exemplu, https://noaa-goes17.s3.us-east-1.amazonaws.com Dacă URL-ul găleată este corect și adecvat pentruERDDAP, va returna un document XML care are (parţial) lista conţinutului găleţii. Din păcate, URL-ul complet (Adică URL- ul găleții plus prefix) căERDDAP™nu funcţionează într-un browser. AWS nu oferă un sistem pentru a naviga ierarhia unei găleți ușor în browser. (Dacă nu e corect, trimite-i un e-mail lui Chris. John la Noaa.gov. În caz contrar, Amazon, vă rugăm să adăugați sprijin pentru acest lucru!)
Vizualizarea conţinutului unei găleţi
Găleți S3 conțin adesea câteva categorii de fișiere, într-un cuplu de subdirecții pseudo, care ar putea deveni un cuplu deERDDAP™Seturi de date. Pentru a faceERDDAP™Seturi de date, trebuie să știți directorul de pornire pentru<CacheFromUrl> (sau<fileDir>) și formatul numelor fișierelor care identifică acel subset de fișiere. Dacă încercați să vizualizați întregul conținut al unei găleți într-un browser, S3 vă va arăta doar primele 1000 de fișiere, ceea ce este insuficient. În prezent, cel mai bun mod pentru tine de a vedea tot conținutul unei găleți este de a face oTabel EDDFromFileNamesSet de date (pe PC-uriERDDAP™și/sau pe publicul dumneavoastrăERDDAP) , care vă oferă, de asemenea, o modalitate ușoară de a naviga structura director și de a descărca fișiere. ă<fileDir> for that will be the URL you made above, ex., https://noaa-goes17.s3.us-east-1.amazonaws.com .\[De ce AWS S3 nu oferă o modalitate rapidă și ușoară pentru oricine să facă acest lucru fără un cont AWS?\]Rețineți că atunci când fac acest lucru pe PC-ul meu pe o rețea non-Amazon, se pare că Amazon încetinește răspunsul la un firicel (aproximativ 100 (?) fișiere pe bucată) după primele câteva bucăți (din 1000 de fișiere pe bucată) sunt descărcate. Deoarece gălețile pot avea un număr mare de fișiere (noaa-goes17 are 26 de milioane) , obtinerea tot continutul unei galeti poate lua EDDtableFromFileNames câteva ore (De exemplu, 12!) pentru a termina.\[Amazon, nu-i aşa?!\]
Realizarea unui tabel EDD De la FileNames Dataset cu un AWS S3 Bucket
Dacă aveți un nume găleată, dar nu aveți deja o listă de fișiere în găleata S3 sau prefixul care identifică locația fișierelor relevante în găleată, utilizați instrucțiunile de mai jos pentru a face un set de date EDDDe la FileNames astfel încât să puteți naviga în ierarhia directoarelor găleată S3 prinERDDAP's"files"sistem.
- Deschide un cont AWS ERDDAP™utilizeazăAWS SDK pentruJavapentru a obține informații găleată de la AWS, așa că trebuie săcreează și activează un cont AWS. E o treabă destul de importantă, cu multe lucruri de învăţat.
- Pune-ţi AWS-urile undeERDDAP™le pot găsi. Urmaţi instrucţiunile laÎnființarea AWS Acreditative și Regiune pentru DezvoltareDeci...ERDDAP™ (în special, AWS SDK pentruJava) va fi capabil să găsească și să utilizeze acreditările AWS. DacăERDDAP™nu pot găsi acreditările, veți vedea o Java.lang. Argument ilegal Excepție: fișierul profil nu poate fi o eroare nulă înERDDAPDosarul log.txt.
Indiciu pentru Linux și Mac OS: fișierul de acreditare trebuie să fie în directorul de origine al utilizatorului care rulează Tomcat (şiERDDAP) (pentru acest paragraf, vom presupune utilizator=tomcat) într-un fișier numit ~/.aws/credentials . Nu presupune că ~ este / home/tomcat - de fapt, utilizați cd ~ pentru a afla unde crede sistemul de operare ~ pentru utilizator = Tomcat este. Creează directorul dacă nu există. De asemenea, după ce ați pus fișierul de acreditare în loc, asigurați-vă că utilizatorul și grupul pentru fișier sunt Tomcat și apoi utilizați chmod 400 acreditări pentru a vă asigura că fișierul este citit-doar pentru utilizator=tomcat.
- Creează URL- ul găleată înformat careERDDAP™necesită, de exemplu, https://noaa-goes17.s3.us-east-1.amazonaws.com , și (pentru găleți publice) testați-l într-un browser pentru a vă asigura că returnează un document XML care are o listă parțială a conținutului acelei găleți.
- UtilizareGenereazăSeturi de dateXmlpentru a crea unTabel EDDFromFileNamesSet de date:
-
Pentru directorul de pornire, utilizați această sintaxă: \\\ de la OnTheFly, Bucketurl de exemplu, \*\*De la OnTheFly, https://noaa-goes17.s3.us-east-1.amazonaws.com/
-
Numele fișierului regex? \*
-
Recursiv? Adevărat.
-
reîncărcare Fiecare NMinutes? 10080
-
Instituţie?NOAA
-
Un rezumat? Nimic. (ERDDAP™va crea automat un rezumat decent.)
-
Titlul? Nimic. (ERDDAP™va crea automat un titlu decent.) Ca de obicei, ar trebui să editați XML-ul rezultat pentru a verifica corectitudinea și a face îmbunătățiri înainte de bucata de seturi de date folosindu-l îndatasets.xml.
-
- Dacă urmați instrucțiunile de mai sus și încărcați setul de date înERDDAP, ați creat un set de date EDD TableFromFiles. Ca un exemplu, și pentru a face mai ușor pentru oricine să navigheze și să descarce fi șiere din galețile AWS Open Data, am creat seturi de date EDDTabelFromFileNames (a se vedea lista de la
https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) pentru aproape toateAWS S3 Deschideți gălețile de date.
\[Cele câteva găleți pe care nu le-am inclus fie au un număr mare de fișiere în directorul rădăcină (mai mult decât poate fi descărcat într-un timp rezonabil) , sau nu permit accesul public (Nu ar trebui să fie toate publice?) , sau sunt cereri de plată găleți (De exemplu, Sentinel) .\]
Dacă faceţi clic pe"files"link-ul pentru unul dintre aceste seturi de date, puteți naviga copacul director și fișiere în acea găleată S3. Din cauza drumului\\\* De la OnTheFly EDD TableFromFiles works, aceste liste directoare sunt întotdeauna perfect actualizate deoareceERDDAP™îi face să zboare. Dacă faceți clic pe arborele director pentru un nume de fișier real și faceți clic pe numele fișierului,ERDDAP™va redirecționa cererea la AWS S3 astfel încât să puteți descărca fișierul direct de la AWS. Poţi să verifici dosarul.
Probleme? În cazul în care tabelul EDDFromFiles nu va încărca înERDDAP™ (sau DasDds) , căutați în fișierul log.txt pentru un mesaj de eroare. Dacă vezi un Java.lang. Argument ilegal Excepție: fișierul profil nu poate fi eroare nulă, problema este că AWS SDK pentruJava (utilizat deERDDAP) nu este găsirea dosarului de acreditare. A se vedea instrucțiunile de acreditare de mai sus.
Este regretabil că AWS nu permite pur și simplu oamenilor să folosească un browser pentru a vedea conținutul unei găleți publice.
Apoi, puteți faceERDDAP™seturi de date care oferă utilizatorilor acces la datele din fișiere.
Vezi instrucţiunile dinERDDAP™și S3 Buckets (mai sus) .
Pentru setul de date EDDtableFromFileNames pe care l-ați făcut mai sus, dacă faceți un pic poking în jurul cu directorul și numele de fișiere în arborele director, devine clar că numele directoarelor de nivel superior (De exemplu, ABI-L1b-RadC) corespunde cu ceea ceERDDAP™ar numi seturi de date separate. Găleata cu care lucrezi poate fi similară. Ați putea apoi să creați seturi de date separate înERDDAP™pentru fiecare dintre aceste seturi de date, utilizând, de exemplu,
https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
ca<Cache FromUrl>. Din păcate, pentru acest exemplu special, seturile de date din găleată toate par a fi de nivel 1 sau de nivel 2, careERDDAP™ nu este deosebit de bun la, deoarece setul de date este o colecție mai complicată de variabile care utilizează diferite dimensiuni.
Fișiere NcML
Fișierele NcML vă permit să specificați modificările la una sau mai multe surse originaleNetCDF (v3 sau v4) .nc,.grib,.bufr, sau.hdf (v4 sau v5) fișiere, și apoi auERDDAP™trataţi.ncfișiere ml ca fișiere sursă.ERDDAP™Seturile de date vor accepta.ncfișiere ml ori de câte ori.ncDosarele sunt aşteptate. Fișierele NcML TREBUIE să aibă extensia.ncml. VeziUnidataDocumentația NcML. NcML este util pentru că puteți face unele lucruri cu ea (de exemplu, modificarea diferitelor fișiere dintr-o colecție, inclusiv adăugarea unei dimensiuni cu o valoare specifică unui fișier) , care nu se poate face cuERDDAP'sdatasets.xml.
- Modificări ale.ncUltima oră codificată a fișierului ml va determina reîncărcarea fișierului ori de câte ori setul de date este reîncărcat, dar modificările aduse suportului.ncFişierele de date nu vor fi observate direct.
- NcML este\*foarte\*sensibil la ordinea unor elemente din fișierul NcML. Gândiți-vă la NcML ca specificând o serie de instrucțiuni în ordinea specificată, cu intenția de a schimba fișierele sursă (starea la începutul/topul fișierului NcML) în fișierele de destinație (starea de la sfârșitul/josul fișierului NcML) .
O alternativă la NcML esteNetCDFOperatorii (NCO) . Marea diferență este că NcML este un sistem pentru a face schimbări pe-the-fly (Astfel încât fișierele sursă nu sunt modificate) , întrucâtNCOpoate fi folosit pentru a face modificări la (sau versiuni noi ale) Dosarele. AmbeleNCOși NcML sunt foarte, foarte flexibile și vă permit să facă aproape orice schimbare vă puteți gândi la fișierele. Pentru ambele, poate fi o provocare să ne dăm seama exact cum să facem ceea ce vrem să facem -- verificați web pentru exemple similare. Ambele sunt instrumente utile pentru pregătirea netCDF șiHDFfișiere pentru utilizare cuERDDAP, în special, pentru a face schimbări dincolo de ceea ceERDDAPSistemul de manipulare e bun.
Exemplul #1: Adăugarea unei dimensiuni a timpului cu o valoare unică Iată un.ncfișier ml care creează o nouă dimensiune exterioară (timp, cu 1 valoare: 1041379200) și adaugă această dimensiune la variabila pic în fișierul numit 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>
Exemplul #2: Schimbarea valorii timpului existent Uneori sursa.ncfișier are deja o dimensiune a timpului și valoarea timpului, dar valoarea este incorectă (pentru scopurile dumneavoastră) . Asta..ncfişierul ml spune: pentru fişierul de date numit ""198108252300-NCEI..." pentru variabila dimensiune"time", setați atributul unităților să fie "secunde din 1970-01-01T00:00:00Z" și setați valoarea de timp pentru a fi 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>
NetCDFOperatorii (NCO)
"Operatorii netCDF (NCO) cuprinde o duzină de programe independente, linia de comandă care iau netCDF\[v3 sau v4\],HDF \[v4 sau v5\],\[Grib, .bufr,\]și/sauDAPfișiere ca intrare, apoi funcționează (De exemplu, obține date noi, statistici de calcul, print, hiperslab, manipulează metadate) și de ieșire rezultatele pentru a ecrana sau fișiere în format text, binar, sau netCDF.NCOajută la analiza datelor ştiinţifice. Stilul shell-comand alNCOpermite utilizatorilor să manipuleze și să analizeze interactiv fișiere sau cu scripturi expresive care să evite unele medii de programare de nivel superior." (de laNCOprima pagină) .
O alternativă laNCOesteNcML. Marea diferență este că NcML este un sistem pentru a face schimbări pe-the-fly (Astfel încât fișierele sursă nu sunt modificate) , întrucâtNCOpoate fi folosit pentru a face modificări la (sau versiuni noi ale) Dosarele. AmbeleNCOși NcML sunt foarte, foarte flexibile și vă permit să facă aproape orice schimbare vă puteți gândi la fișierele. Pentru ambele, poate fi o provocare să ne dăm seama exact cum să facem ceea ce vrem să facem -- verificați web pentru exemple similare. Ambele sunt instrumente utile pentru pregătirea netCDF șiHDFfișiere pentru utilizare cuERDDAP, în special, pentru a face schimbări dincolo de ceea ceERDDAPSistemul de manipulare e bun.
De exemplu, puteți folosiNCOpentru a face unitățile variabilei de timp consistente într-un grup de fișiere în cazul în care acestea nu au fost coerente inițial. Sau, puteți folosiNCOse aplicăscale\_factorşiadd\_offsetîntr-un grup de fișiere undescale\_factorşiadd\_offsetau valori diferite în diferite fișiere sursă. (Sau, puteți face acum cu aceste probleme înERDDAP™prinEDDGridDe la NCFilesDespachetat, care este o variantă deEDDGridDinNcFiles care despachetează date ambalate și standardizează valorile timpului la un nivel scăzut pentru a face față unor fișiere de colectare care au diferitescale\_factors şiadd\_offset, sau unități de timp diferite.)
NCOeste Free and Open Source Software care utilizeazăGPL 3. 0Permisul.
Exemplul #1: Unități de luare în concordanță
EDDGridDin fişiere şi tabel EDD Din fișiere insistă că unitățile pentru o anumită variabilă să fie identice în toate fișierele. Dacă unele dintre fişiere sunt banale (nefuncțional) diferite de altele (de exemplu, unități de timp ale
"secunde din 1970-01-01 00:00 UTC" versus
"seconds since 1970-01-01T00:00:00Z", ai putea folosiNCO'sncatted. pentru a schimba unitățile din toate fișierele pentru a fi identice cu
NCO/Ncatted -a units,time,o,c,'secunde from 1970-01-01T00:00:00Z' \*.nc
\[Pentru multe probleme ca aceasta în EDD Table From... Seturi de fișiere, puteți utiliza acumstandardizează Ce?pentru a spuneERDDAPpentru a standardiza fișierele sursă ca acestea sunt citite înERDDAP.\]
Limite la dimensiunea unui set de date
Veți vedea mai multe referințe la "2 miliarde" de mai jos. Mai exact, aceasta este o referire la 2,147,483,647 (2^31-1) , care este valoarea maximă a unui număr întreg semnat pe 32 de biți. În unele limbi ale calculatorului, de exempluJava (careERDDAP™este scris în) , care este cel mai mare tip de date care poate fi folosit pentru mai multe structuri de date (de exemplu, dimensiunea unui array) .
Pentru valorile stringurilor (de exemplu, pentru denumirile variabile, denumirile atributelor, valorile atributelor String și valorile datelor String) , numărul maxim de caractere per coardă înERDDAP™este ~2 miliarde. Dar în aproape toate cazurile, vor exista probleme mici sau mari dacă o coardă depășește o dimensiune rezonabilă (de exemplu 80 de caractere pentru nume variabile și nume atribute și 255 de caractere pentru majoritatea valorilor atributelor string și a valorilor datelor) . De exemplu, paginile web care afișează nume variabile lungi vor avea nume variabile ciudat de largi și lungi vor fi trunchiate dacă depășesc limita tipului de fișier de răspuns.
Pentru seturi de date grupate:
- Numărul maxim deaxisVariableS este ~2 miliarde. Numărul maxim dedataVariableS este ~2 miliarde. Dar dacă un set de date are > 100 de variabile, va fi dificil pentru utilizatori să utilizeze. Și dacă un set de date are > 1 milion de variabile, serverul va avea nevoie de o mulțime de memorie fizică și vor exista alte probleme.
- Dimensiunea maximă a fiecărei dimensiuni (axisVariable) este ~2 miliarde de valori.
- Cred că numărul total maxim de celule (produsul tuturor dimensiunilor) este nelimitat, dar poate fi ~9e18.
Pentru seturile de date tabelare:
- Numărul maxim dedataVariableS este ~2 miliarde. Dar dacă un set de date are > 100 de variabile, va fi dificil pentru utilizatori să utilizeze. Și dacă un set de date are > 1 milion de variabile, serverul va avea nevoie de o mulțime de memorie fizică și vor exista alte probleme.
- Numărul maxim de surse (de exemplu, fișiere) care pot fi agregate este ~2 miliarde.
- În unele cazuri, numărul maxim de rânduri dintr-o sursă individuală (de exemplu, un fișier, dar nu o bază de date) este ~2 miliarde de rânduri.
- Nu cred că există alte limite.
Atât pentru seturile de date în grilă, cât și pentru tabulare, există anumite limite interne privind dimensiunea subsetului care pot fi solicitate de un utilizator într-o singură cerere (adesea legate de >2 miliarde de ceva sau ~9e18 de ceva) , dar este mult mai probabil ca un utilizator va lovi limitele specifice de tip de fișier.
- NetCDFVersiunea 3.ncfișierele sunt limitate la 2GB octeți. (Dacă e o problemă pentru cineva, anunţă-mă: Aș putea adăuga sprijin pentruNetCDFVersiunea 3.ncExtensie pe 64 de biți sauNetCDFVersiunea 4, care ar mări semnificativ limita, dar nu infinit.)
- Browser-ul se prăbuşeşte după doar ~500MB de date, aşa căERDDAP™limitează răspunsul la.htmlTablecereri la ~400MB de date.
- Multe programe de analiză a datelor au limite similare (de exemplu, dimensiunea maximă a unei dimensiuni este adesea ~2 miliarde de valori) , astfel încât nu există nici un motiv să lucreze din greu pentru a obține în jurul limitelor specifice de tip fișier.
- Limitele specifice fișierelor sunt utile pentru a preveni cererile naive pentru cantități uriașe de date (de exemplu, "dă-mi toate aceste seturi de date" atunci când setul de date conține 20TB) , care ar dura săptămâni sau luni pentru a descărca. Cu cât descărcarea este mai lungă, cu atât va eşua din mai multe motive.
- Limitele specifice de tip de fișier sunt utile pentru a forța utilizatorul să se ocupe de subansambluri de dimensiuni rezonabile (de exemplu, abordarea unui set de date cu grilă mare prin intermediul fișierelor cu date dintr-un punct de timp fiecare) .
Comută la ACDD-1.3
Noi (în specialGenereazăSeturi de dateXml) recomandă în prezentVersiunea ACDD 1.3, care a fost ratificată la începutul anului 2015 și care este denumită "ACDD-1.3" în atributul Convenției mondiale. Înainte deERDDAP™versiunea 1.62 (lansat în iunie 2015) ,ERDDAP™utilizat/recomandat originalul, versiunea 1.0, alNetCDFAtribuie Convenția pentru descoperirea datelorcare a fost menționată ca "UnidataDataset Discovery v1.0" în convenţiile globale şiMetadata\_Conventionsatribute.
Dacă seturile dumneavoastră de date folosesc versiuni anterioare ale ACDD, RECOMANDăm să treceți la ACDD-1.3. Nu e greu. ACDD-1.3 este compatibil cu versiunea 1.0. Pentru a comuta, pentru toate seturile de date (cu excepţiaEDDGridDe la Erddap și tabelul EDD Seturi de date din Erddap) :
- Elimină noul depreciat globalMetadata\_Conventionsatribut prin adăugarea (sau prin schimbarea celor existenteMetadata\_Conventionsatribut)
<att name="Metadata\\_Conventions">null</att>
la nivelul global al setului de date<addAttributes>. 2. Dacă setul de date are un atribut al convenţiilor la nivel global<addAttributes>, modifică toate "UnidataDataset Discovery v1.0" se referă la "ACDD-1.3." Dacă setul de date nu are un atribut al convenţiilor la nivel global<addAttributes>, apoi se adaugă una care se referă la ACDD-1.3. De exemplu,
<att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>
3. Dacă setul de date are o valoare globalăstandard\_name\_vocabularyatribut, vă rugăm să modificați formatul valorii în, de exemplu,
<att name="standard\\_name\\_vocabulary">CF Standard Name Table v65</att>
Dacă trimiterea este la o versiune mai veche aTabelul cu denumirea standard CF. este, probabil, o idee bună pentru a trece la versiunea curentă (65, în timp ce scriem asta) , deoarece la acest tabel se adaugă noi nume standard cu versiuni ulterioare, dar numele standard vechi sunt rareori depreciate și niciodată eliminate. 4. Deși ACDD-1.0 a inclus atribute globale pentrucreator\_name,creator\_email,creator\_url,GenereazăSeturi de dateXmlnu le-a adăugat în mod automat până când cândva în jurul valorii deERDDAP™v1.50. Acestea sunt informaţii importante:
- creator\_namepermite utilizatorilor să cunoască/să citeze creatorul setului de date.
- creator\_emaille spune utilizatorilor adresa de e-mail preferată pentru contactarea creatorului setului de date, de exemplu dacă au întrebări cu privire la setul de date.
- creator\_urloferă utilizatorilor o modalitate de a afla mai multe despre creator.
- ERDDAP™utilizează toate aceste informații atunci când generează documente de metadate FGDC și ISO 19115-2/19139 pentru fiecare set de date. Aceste documente sunt adesea utilizate de serviciile externe de căutare.
Vă rugăm să adăugați aceste atribute la nivelul global al setului de date<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>
Asta e. Sper că nu a fost prea greu.
Zarr
Din versiunea 2.25ERDDAP™poate citi local Fișiere Zarr care utilizeazăTabel EDDFromNcFilesşiEDDGridDinNcFiles.
(Începând din august 2019) Am putea fi ușor de greșit, dar nu suntem încă convinși căZarr, sau sisteme similare care sparg fișiere de date în bucăți mai mici, sunt soluții mari la problema deERDDAP™citirea datelor stocate în servicii cloud precum Amazon AWS S3. Zarr este o mare tehnologie care şi-a arătat utilitatea într-o varietate de situaţii, nu suntem siguri căERDDAP+S3 va fi una dintre aceste situații. În mare parte spunem: înainte de a ne grăbi să facem efortul de a stoca toate datele noastre în Zarr, să facem niște teste pentru a vedea dacă este de fapt o soluție mai bună.
Problemele cu accesarea datelor în cloud sunt latența (decalajul pentru a obține mai întâi date) și accesul la nivel de fișiere (mai degrabă decât accesul la nivel de bloc) . Zarr rezolvă problema accesului la nivel de fișier, dar nu face nimic despre latență. Comparativ cu doar descărcarea fișierului (astfel încât să poată fi citit ca un fișier local cu acces la nivel de bloc) , Zarr poate exacerba chiar problema latenței deoarece, cu Zarr, citirea unui fișier acum implică o serie de mai multe apeluri pentru a citi diferite părți ale fișierului (fiecare cu propriul decalaj) . Problema latenței poate fi rezolvată prin paralelizarea cererilor, dar aceasta este o soluție de nivel superior, nu dependentă de Zarr.
Şi cu Zarr (ca și în bazele de date relaționale) , pierdem confortul de a avea un fișier de date fi un simplu, singur fișier pe care le puteți verifica cu ușurință integritatea, sau face / descărca o copie a.
ERDDAP™ (în V2) are un sistem pentru menținerea unui cache local de fișiere dintr-o sursă URL (De exemplu, S3) (a se vedea<CacheFromUrl> și<CacheMaxGB>] (#cachefromurl) ). Şi noul [<nThreads>] (#Nămoluri) ar trebui să minimizeze problema latenței prin paralelizarea recuperării datelor la un nivel ridicat.<CacheFromUrl> pare să funcționeze foarte bine pentru multe scenarii. (Nu suntem siguri cât de benefice<nThreads> este fără alte teste.) Recunoastem ca nu am facut teste de sincronizare pe o instanta AWS cu o buna conexiune la retea, dar am testat cu succes cu diferite surse URL la distanta de fisiere. Şi...ERDDAP's<cacheFromUrl> funcționează cu orice tip de fișier de date (de exemplu,.nc,.hdf,.csv,.jsonlCSV) , chiar dacă comprimat extern (de exemplu,.gz) , fără modificări ale fișierelor (De exemplu, rescrierea lor ca colecții Zarr) .
Este probabil că diferite scenarii vor favoriza diferite soluții, de exemplu, trebuie doar să citiți o parte a unui fișier o singură dată (Zarr va câştiga.) , vs. nevoie pentru a citi toate un fișier o dată, vs. trebuie să citească o parte sau toate de un fișier în mod repetat (<CacheFromUrl> va câştiga).
În mare parte spunem: înainte de a ne grăbi să facem efortul de a stoca toate datele noastre în Zarr, să facem niște teste pentru a vedea dacă este de fapt o soluție mai bună.
Lista seturilor de date de tip
Dacă aveți nevoie de ajutor pentru a alege tipul corect de set de date, a se vedeaAlegerea tipului de set de date.
Tipurile de seturi de date se încadrează în două categorii. (De ce?)
EDDGrid
- EDDGrid Seturile de date manipulează date în rețea.
- ÎnEDDGridSeturile de date, variabilele de date sunt array-uri multidimensionale de date.
- Trebuie să existe o variabilă a axei pentru fiecare dimensiune. Variabilele axei trebuie specificate în ordinea în care variabilele de date le utilizează.
- ÎnEDDGridSeturi de date, toate variabilele de date TREBUIE utilizate (cotă) toate variabilele axei. (De ce? Şi dacă nu o fac?)
- Valori de dimensiune sortare - În totalEDDGridSeturile de date, fiecare dimensiune trebuie s ă fie în ordine sortate (ascendentă sau descendentă) . Fiecare poate fi spaţiată neregulat. Nu pot exista legături. Aceasta este o cerinţă aStandardul metadatelor CF. Dacă valorile oricărei dimensiuni nu sunt în ordine sortate, setul de date nu va fi încărcat șiERDDAP™va identifica prima valoare nesortate în fișierul jurnal; Big ParentDirectory /logs/log.txt.
Câteva subclase au restricții suplimentare (în special,EDDGridDimensiunea totală necesită ca dimensiunea exterioară (cea mai stângă, prima) să fie ascendentă.
Valorile de dimensiune nesortate indică aproape întotdeauna o problemă cu setul de date sursă. Acest lucru se întâmplă cel mai frecvent atunci când un fișier cu nume greșite sau nepotrivit este inclus în agregare, ceea ce duce la o dimensiune a timpului nesortate. Pentru a rezolva această problemă, consultați mesajul de eroare dinERDDAP™log.txt fișier pentru a găsi valoarea de timp ofensatoare. Apoi căutați în fișierele sursă pentru a găsi fișierul corespunzător (sau una înainte sau una după) care nu aparține în agregare.
- Vezi descrierea mai completă aEDDGridmodel de date.
- ăEDDGridTipurile de seturi de date sunt:
- EDDGridDe la AudioFilesagregate de date dintr-un grup de fișiere audio locale.
- EDDGridFromDapManipulează date din rețeaDAPservere.
- EDDGridTabel de la EDDvă permite să convertiți un set de date tabular într-un set de date grilat.
- EDDGridFromErddapManipulează datele de la distanțăERDDAP.
- EDDGridDe la EtopoDoar se ocupă de datele de topografie ETOPO încorporate.
- EDDGridDin dosareeste superclasa tuturorEDDGridDe la... clase de fişiere.
- EDDGridDe la MergeIRFilesdate agregate dintr-un grup de CombeIR locale.gzDosare.
- EDDGridDinNcFilesdate agregate dintr-un grup de localiNetCDF (v3 sau v4) .ncși fișierele aferente.
- EDDGridDe la NCFilesDespachetateste o variantă dacăEDDGridFromNcFiles care, de asemenea, agregate date dintr-un grup de localeNetCDF (v3 sau v4) .ncși fișiere aferente, careERDDAP™Despachetează la un nivel scăzut.
- EDDGridLonPM180modifică valorile de longitudine ale unui copilEDDGridastfel încât acestea sunt în intervalul -180 la 180.
- EDDGridLon0360modifică valorile de longitudine ale unui copilEDDGridastfel încât acestea sunt în intervalul 0 - 360.
- EDDGridSideBySideagregate două sau mai multeEDDGridseturi de date cot la cot.
- EDDGridDimensiune agregatăagregate două sau mai multeEDDGridseturi de date, fiecare dintre acestea având o gamă diferită de valori pentru prima dimensiune, dar valori identice pentru celelalte dimensiuni.
- EDDGridCopiazăpoate face o copie locală a unui altEDDGriddatele și servește date de la copia locală.
- ToateEDDGridSeturile de date susțin o setare nThreads, care spuneERDDAP™câte fire să folosească atunci când răspunde la o cerere. VezinThreadsdocumentația pentru detalii.