Együttműködésdatasets.xmlFile
\[Ez a weboldal csak érdekes leszERDDAP™adminisztrátorok.\]
Miután követted aERDDAP™ telepítési utasítások, szerkesztenie kelldatasets.xmlfájl Tomcat /content/erddap/ leírja azokat az adatkészleteket, amelyeket aERDDAP™A telepítés szolgálni fog.
Láthat egy példátdatasets.xmlGitHub...
Bevezetés
Néhány közgyűlés szükséges
Adatkészlet beállításaERDDAP™nem csak egy dolog, ami rámutat az adatkészlet könyvtárára vagy URL-re. Meg kell írnia egy darab XML-tdatasets.xmlamely leírja az adatkészletet.
- A rácsos adatkészletek esetében, hogy az adatkészlet megfeleljenERDDAPA rácsos adatok adatstruktúrája, azonosítania kell az adatkészlet változóinak leállítását, amelyek ugyanazokat a dimenziókat osztják meg. (Miért? Hogyan?)
- Az adatkészlet jelenlegi metaadatát automatikusan importálják. De ha módosítani szeretné ezt a metaadatot, vagy hozzáadni más metaadatot, akkor meg kell határoznia.datasets.xml... ÉsERDDAP™más metaadatokra van szükség, beleértveglobális tulajdonságok (mint példáulinfoUrlintézmény,sourceUrlösszefoglaló és cím) ésváltozó tulajdonságok (mint példáullong\_nameés egység) ... Ahogyan a metaadata, amely jelenleg az adatkészletben található, leíró információkat ad az adatkészlethez, a metadata által kértERDDAP™leíró információkat ad az adatkészlethez. A további metaadat jó kiegészítés az adatkészlet és segítERDDAP™tegyen jobb munkát az adatok bemutatására olyan felhasználók számára, akik nem ismerik.
- ERDDAP™Szüksége van arra, hogy különleges dolgokat tegyenHosszúság, magasság, magasság (vagy mélység) és az idő változók...
Ha megveszi ezeket az ötleteket, és kitölti az XML létrehozására irányuló erőfeszítéstdatasets.xml, kapsz minden előnye, hogyERDDAP™beleértve:
- Teljes szöveges keresés az adatkészletekhez
- Adatkészletek keresése kategória szerint
- Adathozzáférési formák ( datasetID .html) így számos különböző fájlformátumban kérhet egy adatkészletet
- Forms kérni grafikonok és térképek ( datasetID .gráf)
- Web Map szolgáltatás (WMS) a rácsos adatkészletekért
- RESTfulHozzáférés az adataihoz
A készítésdatasets.xmljelentős erőfeszítéseket tesz az első néhány adatkészlet számára, de könnyebb lesz ... Az első adatkészlet után gyakran újra felhasználhatja a munkát a következő adatkészlethez. szerencsére,ERDDAP™jön kétEszközökhogy segítsen létrehozni az XML-t minden adatkészlethezdatasets.xml... Ha megragadsz, lásd a mirész további támogatás megszerzéséről...
Adatszolgáltató Formátum
Amikor egy adatszolgáltató érkezik hozzád, remélve, hogy hozzáad néhány adatot aERDDAPNehéz és időigényes, hogy összegyűjtse az összes metaadatát (információ az adatkészletről) szükséges az adatkészlet hozzáadásáhozERDDAP... Számos adatforrás (például .csv fájlok, Excel fájlok, adatbázisok) nincs belső metaadata, ígyERDDAP™rendelkezik olyan adatszolgáltatói formanyomtatványsal, amely összegyűjti a metaadatot az adatszolgáltatótól, és más iránymutatást ad az adatszolgáltatónak, ideértve a kiterjedt útmutatást is.Adatbázisok... A benyújtott információ átalakul adatasets.xmlformátum, majd e-mailbenERDDAP™adminisztrátor (Te vagy) írás (Megjelent) a bigParentDirectory[szerkesztés] /logs/dataProviderForm.log Így a forma félautomatizálja az adatkészlet beszerzésének folyamatátERDDAPde aERDDAP™Az adminisztrátornak még mindig befejeznie kelldatasets.xmlcunk és foglalkozik az adatfájl megszerzésével (s) a szolgáltatótól vagy az adatbázishoz való csatlakozástól.
A tényleges adatfájlok külső forrásokból történő benyújtása hatalmas biztonsági kockázat, ígyERDDAP™nem foglalkozik ezzel. Meg kell találnia egy olyan megoldást, amely az Ön és az adatszolgáltató számára működik, például e-mail (kis fájlokhoz) , húzza ki a felhőből (például a DropBox vagy a Google Drive) Sftp webhely (jelszavakkal) vagy sneaker Net (USB hüvelykujjj meghajtó vagy külső merevlemez) ... Valószínűleg csak olyan fájlokat kell elfogadnia az emberektől, akiket ismer. Meg kell szkennelni a fájlokat vírusok és más biztonsági óvintézkedések.
Nincs kapcsolatERDDAP™az adatszolgáltatói űrlaphoz (például,ERDDAP™weboldal) ... Ehelyett, ha valaki azt mondja, hogy az adatait az Ön által szolgáltatottERDDAPKüldhet nekik egy e-mailt, mondván valamit: Igen, megkaphatjuk az adataitERDDAP... Kezdéshez kérjük, töltse ki az űrlapot https://yourUrl/erddap/dataProviderForm.html (vagyhttp://hahttps://nem engedélyezett) ... Miután befejezte, kapcsolatba lépek, hogy dolgozzon ki a végső részleteket. Ha csak meg akarja nézni a formát (anélkül, hogy kitölte volna) Láthatja a formátERDAERDDAP:Bevezetés,1. rész,2. rész,3. részés4. rész... Ezek a linkek aERD ERDDAP™Információt küldj hozzám, nem te, ezért ne nyújts be információt velük, hacsak nem szeretné hozzáadni az adatokatERD ERDDAP...
Ha el akarja távolítani az adatszolgáltatói űrlapot az ÖntőlERDDAP™, tedd
<dataProviderFormActive>false</dataProviderFormActive>
a setup.xml fájlban.
Ennek az impetusa voltNOAA2014Közös hozzáférés a kutatási eredményekhez (PARR) irányelvami megköveteli, hogy mindenNOAAaz adófizetői dollárokon keresztül finanszírozott környezeti adatokat egy adatszolgáltatáson keresztül elérhetővé kell tenni (Nem csak fájlok) a teremtés 12 hónapján belül. Tehát fokozott érdeklődés van a használatbanERDDAP™az ASAP szolgáltatáson keresztül elérhető adatkészletek készítése. Egy hatékonyabb módszerre volt szükségünk ahhoz, hogy számos adatszolgáltatóval foglalkozzunk.
Visszajelzések/Suggestions? Ez a forma új, ezért kérjük e-mailerd dot data at noaa dot govha bármilyen visszajelzése vagy javaslata van ennek javítására.
Eszközök
ERDDAP™jön két parancssori programok, amelyek eszközök, hogy segítsen létrehozni az XML minden adatkészlet, hogy azt akarja, hogy aERDDAP™szolgálni. Miután létrehoztálERDDAP™és futtassa (legalább egy alkalommal) megtalálhatja és használhatja ezeket a programokat a programokban Tomcat /webapps/erddap/WEB-INF könyvtár. Vannak Linux/Unix shell szkriptek (a kiterjesztés .sh) Windows scriptek (a kiterjesztés .bat) minden program.\[Linuxon futtassa ezeket az eszközöket, mint ugyanazt a felhasználót (Tomcat?) Ez fogja futtatni Tomcat.\]Amikor fut minden programot, kérdéseket tesz fel. Minden kérdés esetén írja be a választ, majd press Enter. Vagy sajtó ^C, hogy bármikor kilép egy program.
A program nem fut?
- Ha egy ismeretlen programot kapsz (vagy hasonló) hibaüzenet, a probléma valószínűleg az, hogy az operációs rendszer nem találtJava... Ki kell találnod, holJavaa számítógépén van, majd szerkesztse a java referenciát a .bat vagy .sh fájlban, amelyet megpróbál használni.
- Ha kap egy jar fájl nem talált vagy osztály nem talált hibaüzenetet, akkorJavanem találhatja meg az egyik osztályt, amely szerepel a .bat vagy .sh fájlban, amelyet megpróbál használni. A megoldás az, hogy kitaláljuk, hol van ez a .jar fájl, és szerkeszteni a java hivatkozást a .bat vagy .sh fájlban.
- Ha egy verziót használJavatúl öreg egy programhoz, a program nem fut, és hibaüzenetet fog látni, mint például
Kivétel a szálban "fő" java.lang.UnsupportedClassVersionError:
Néhány / osztály / név : Nem támogatott nagy.minor verzió dalszöveg: SomeNumber
A megoldás az, hogy frissítsük a legújabb verziójátJavaés győződjön meg arról, hogy a .sh vagy .bat fájl a program használja.
Az eszközök különböző diagnosztikai üzeneteket nyomtatnak:
- Az "ERROR" szót akkor használják, amikor valami olyan rosszul ment, hogy az eljárás nem sikerült befejezni. Bár bosszantó hiba, a hiba arra kényszeríti, hogy foglalkozzon a problémával.
- A "WARNING" szót akkor használják, amikor valami rosszul ment, de az eljárás befejeződött. Ezek elég ritkák.
- Bármi más csak informatív üzenet. Hozzáadhat \-verbose-t aGenerateDatasetsXmlvagyDasDdsparancssor további informatív üzenetek megszerzéséhez, amelyek néha segítenek a problémák megoldásában.
A két eszköz nagy segítség, de még mindig el kell olvasnia ezeket az utasításokat ezen az oldalon óvatosan, és fontos döntéseket hoz magának.
GenerateDatasetsXml
- GenerateDatasetsXml egy parancssori program, amely képes létrehozni egy durva tervezet az adatkészlet XML szinte bármilyen típusú adatkészlet.
Rendben vagyunk azzal, hogy használod a GenerateDatasets-t Xml ahelyett, hogy cunkkokat hozna létredatasets.xmlkézzel, mert:
- GenerateDatasets Az Xml másodpercekben működik. Ennek kézzel történő megtétele legalább egy órás munka, még akkor is, ha tudod, mit csinálsz.
- GenerateDatasets Az Xml jobb munkát végez. Ennek kézzel történő elvégzése kiterjedt tudást igényel arról, hogyanERDDAP™munkák. Nem valószínű, hogy jobb munkát fog végezni kézzel. (Bob Simons mindig használja a GenerateDatasets Xml az első tervezethez, és írtaERDDAP...)
- GenerateDatasets Az Xml mindig érvényes darabot generáldatasets.xml... Bármelyik részegdatasets.xmlhogy írsz, valószínűleg legalább néhány hibát, amelyek megakadályozzákERDDAP™az adatkészlet betöltésétől. Gyakran órákat vesz igénybe ezeknek a problémáknak a diagnosztizálására. Ne pazarolja az idejét. Let Generate Adatkészletek Xml csinálja a kemény munkát. Ezután finomíthatja a .xml-t kézzel, ha akarja.
Ha használja a GenerateDatasets Xml program:
- A Windows-on az első alkalommal futtatja a GenerateDatasetsXml-t, szerkesztenie kell a GenerateDatasetsXml.bat fájlt egy szövegszerkesztővel, hogy megváltoztassa az utat a javára. Exe fájl, hogy a Windows találjonJava...
- GenerateDatasets Xml először kéri, hogy adja meg az EDDType-t (Erd Dap Adatkészlet típus) az adatkészlet. Lásd:Adatkészlet típusok listája (ebben a dokumentumban) kitalálni, hogy melyik típus megfelelő az adatkészlethez, amelyen dolgozol. A rendszeres EDDTypes mellett néhánySpeciális/Pseudo adatkészlet típusok (pl. az egyik, amely összetör egy THREDDS katalógust, hogy létrehozzon egy darab darabotdatasets.xmlminden adatkészlet a katalógusban) ...
- GenerateDatasets Az Xml egy sor kérdést tesz fel, amelyek specifikusak az EDDType számára. A kérdések összegyűjtik a szükséges információkatERDDAP™az adatkészlet forrásához való hozzáféréshez. Hogy megértsük, miERDDAP™kéri, lásd a dokumentációt az EDDType számára, amelyet az azonos adatkészlettípusra kattintva megadottAdatkészlet típusok listája...
Ha speciális karakterekkel kell belépnie egy sztringbe (pl. fehértér karakterek az elején vagy végén, nem-ASCII karakterek) belépj egyJSON stílusú sztring (speciális karakterekkel elmenekült \ karakterekkel) ... Például, hogy belépjen csak egy lapos karakter, lépjen be "\t" (a környező kettős idézetek, amelyek azt mondják,ERDDAP™ez egy JSON stílusú sztring.
- Gyakran az egyik válasz nem lesz az, amire a GenerateDatasetsXml-nek szüksége van. Ezután próbálkozhat újra, felülvizsgált válaszokkal a kérdésekre, amíg a GenerateDatasets Az Xml sikeresen megtalálhatja és megértheti a forrásadatokat.
- Ha helyesen válaszol a kérdésekre (vagy elég helyesen) , GenerateDatasets Az Xml összekapcsolja az adatkészlet forrását, és összegyűjti az alapvető információkat (például változó nevek és metaadata) ... Adatkészletek, amelyek a helyiNetCDF .ncés kapcsolódó fájlok, GenerateDatasets Az Xml gyakran kinyomtatja a fájl ncdump-szerű szerkezetét, miután először olvassa el a fájlt. Ez adhat információt, hogy válaszoljon a kérdések jobb egy későbbi hurok keresztül GenerateDatasetsXml.
- GenerateDatasets Az Xml ezután az XML adatkészletének durva tervezetét fogja létrehozni.
- Diagnosztikai információk és az XML adatkészlet durva tervezete meg lesz írva bigParentDirectory[szerkesztés] /log/GenerateDatasetsXml.log .
- Az XML adatkészlet durva tervezetét meg kell írni bigParentDirectory[szerkesztés] /logs/GenerateDatasetsXml.out .
"0 fájl" hibaüzenet
Ha fut a GenerateDatasets Xml vagyDasDdsvagy ha megpróbálsz betölteni egyEDDGridFájlok vagy EDDTableFrom... Files adatkészletERDDAP™, és kap egy "0 fájl" hibaüzenetet, amely jelzi, hogyERDDAP™talált 0 megfelelő fájlokat a könyvtárban (ha úgy gondolja, hogy van egyező fájlok ebben a könyvtárban) :
-
Ellenőrizze, hogy megadta a könyvtár teljes nevét. És ha megadta a minta fájlnév, győződjön meg róla, hogy megadta a fájl teljes nevét, beleértve a teljes könyvtár nevét.
-
Ellenőrizze, hogy a fájlok valóban ebben a könyvtárban vannak.
-
Ellenőrizze a könyvtár neve varázslatát.
-
Ellenőrizze a fájlNameRegex. Valójában nagyon könnyű hibákat hibáztatni a regexekkel. Tesztcélok esetén próbálja meg a regex .\*-t, amely minden fájlnévhez illeszkedik. (Lásd eztregex dokumentációésregex bemutató...)
-
Ellenőrizze, hogy a felhasználó, aki fut a program (pl. felhasználó=tomcat (?) Tomcat/ERDDAP) "olvassa" az engedélyt ezekre a fájlokra.
-
Egyes operációs rendszerekben (például SELinux) és a rendszerbeállításoktól függően a felhasználónak, aki futtatja a programot, „olvassa” a könyvtárak egész láncolatát, amely a fájlokat tartalmazó könyvtárhoz vezet.
-
Ha olyan problémák vannak, amelyeket nem lehet megoldani,kérés támogatásaa lehető legtöbb információval. Hasonlóképpen, ha úgy tűnik, hogy az adott adatkészlet megfelelő EDDType-je nem működik az adatkészlettel, vagy ha nincs megfelelő EDDType, kérjük, írjon egyA GitHub kérdésea részletekkel (mintafájl, ha releváns) ...
Meg kell szerkeszteni a kimenetet a GenerateDatasets Xml, hogy jobbá tegye.
-
DISCLAIMER: A pogánydatasets.xmlMADE BE GenerateDatasets Xml ISN'T PERFECT. MINDEN MINDEN VÁLLALKOZÓ ÉS EDIT THE XML BEFORE FELÜLVIZSGÁLATERDDAP... GenerateDatasets Xml RELIES A RULES-OF-THUMB WHICH ALWAYS CORRECT. AZ ELNÖK AZ ELNÖK KORRÁNYULÓJÁNAK AZ ELNÖK AZ ELNÖK AZ ELNÖK AZ ELNÖK AZ ELNÖK SZÁMÁRAERDDAPSdatasets.xmlFILE.
(Fun Fact: Nem kiabálok. Történelmi jogi okokból a kiáltókat minden sapkában meg kell írni.)
A GenerateDatasetsXml kimenete durva tervezet. Majdnem mindig kell szerkeszteni. Folytattuk, és továbbra is óriási erőfeszítést teszünk annak érdekében, hogy a kimenet a lehető legkészebb legyen, de vannak korlátozások. Gyakran előfordul, hogy a szükséges információk egyszerűen nem állnak rendelkezésre a forrás metaadatából.
Az alapvető probléma az, hogy számítógépes programot kérünk (GenerateDatasetsXml) hogy egy olyan feladatot, ahol, ha ugyanazt a feladatot 100 ember, akkor kap 100 különböző eredményeket. Nincs egyetlen "jobb" válasz. Nyilvánvaló, hogy a program legközelebb áll a Bob elmének olvasásához (Nem a tiéd) De még így sem, ez nem egy teljesen értetlen AI program, csak egy csomó heurisztika összefonódott, hogy egy AI-szerű feladat. (Egy teljesen érthetetlen AI program napja jön, de még nem. Ha/ha ez megtörténik, akkor az embereknek nagyobb problémái lehetnek. Legyen óvatos, hogy mit akarsz.)
-
Információs célokra a kibocsátás a globális forrásAttributes és változó forrásAttributes mint észrevételek.ERDDAP™A forrásAttributes ésaddAttributes (mely előbbi) hogy a kombinált Olyan tulajdonságok, amelyeket a felhasználónak mutatnak. (És más tulajdonságok automatikusan hozzáadódik a hosszúsághoz, a magassághoz, a magassághoz, a mélységhez és az idő változókhoz, amikorERDDAP™ténylegesen teszi az adatkészletet) ...
-
Ha nem tetszik egy forrásAttribute, írja felül az addAttribute hozzáadása ugyanazzal a névvel, de más érték (vagy nem érték, ha el akarja távolítani) ...
-
MindenaddAttributesszámítógép-generált javaslatok. Szeressétek őket! Ha nem tetszik egy addAttribute, változtassa meg.
-
Ha mást szeretne hozzáadniaddAttributesadd hozzá őket.
-
Ha változtatni akarszdestinationNameVáltoztasd meg. De ne változzonsourceNameS.
-
Meg tudod változtatni a rendetdataVariablevagy távolítsa el őket.
- Ezután használhatóDasDds (lásd alább) ismételten tesztelni az XML-t az adatkészlet számára annak biztosítása érdekében, hogy az elért adatkészlet úgy jelenjen meg, ahogy azt szeretné, hogy bekapcsolja.ERDDAP...
- Érezze szabadon, hogy kis változásokat tegyendatasets.xmlcunk, amit generált, például jobb ellátástinfoUrlösszefoglaló vagy cím.
DoNotAddStandardNames
Ha tartalmazza a \-doNotAddStandardNames mint parancssori paraméter, ha fut generál Adatkészletek Xml, generál Adatkészletek Xml nem fog hozzáadnistandard\_nameaaddAttributesbármilyen változó más, mint a latitude, hosszúság, magasság, mélység vagy idő (amely nyilvánvalóstandard\_names) ... Ez hasznos lehet, ha a termelést használja Adatkészletek Xml közvetlenülERDDAP™a kimenet szerkesztése nélkül, mert generál Adatkészletek Xml gyakran guessesstandard\_nameHelytelenül. (Vegye figyelembe, hogy mindig azt javasoljuk, hogy szerkesztse a kimenetet, mielőtt használja aztERDDAP...) Ezzel a paraméterrel más kisebb hatások is lesznek, mert a kitaláltstandard\_namegyakran használják más célokra, például egy új létrehozásralong\_nameÉs létrehozni a színBar beállításokat.
Jelölés
Alternatívaként a kérdések megválaszolására interaktívan a billentyűzeten, és a további adatkészletek létrehozására való looping, parancssori érveket biztosíthat, hogy válaszoljon az összes kérdésre egy adatkészlet létrehozásához. GenerateDatasets Az Xml feldolgozza ezeket a paramétereket, írja a kimenetet a kimeneti fájlba, és kilép a programból.
A beállításhoz először használja a programot interaktív módban, és írja le a válaszokat. Íme egy részleges példa: Tegyük fel, hogy futtassa a forgatókönyvet: ./GenerateDatasetsXml.sh Ezután lépjen be: EDDTableFromAsciiFiles Ezután lépjen be: /u00/data/ Ezután lépjen be: .\*\.asc Ezután lépjen be: /u00/data/sampleFile.asc Ezután lépjen be: ISO-8859-1
Hogy ezt nem interaktív módon futtassa, használja ezt a parancssort: ./GenerateDatasetsXml.sh EDDTableFromAsciiFiles /u00/data/ .\*=.asc /u00/data/sampleFile.asc ISO-8859-1 Tehát alapvetően csak felsorolja az összes választ a parancssoron. Ez hasznos lehet az olyan adatkészletek számára, amelyek gyakran változnak olyan módon, amely megköveteli a GenerateDatasets újraindítását Xml (nevezetesenEDDGridFromThreddsCatalog) ...
Részletek:
- Ha egy paraméter tartalmaz egy teret vagy egy speciális karaktert, akkor kódolja a paramétert, mint egyJSON stílusú sztringpl.: „A paraméterem a terekkel és kettővel\nvonalak.”
- Ha egy üres sztringet paraméterként szeretné meghatározni, használja: semmi
- Ha egy paraméter alapértelmezett értéket szeretne meghatározni, használja: alapértelmezett
- GenerateDatasets Xml támogatja a -i adatkészletek XmlName # TagName parancssori paraméter, amely beilleszti a kimenetet a megadottdatasets.xmlfájl (az alapértelmezés Tomcat /content/erddap/datasets.xml) ... GenerateDatasets Az Xml két vonalat keres az adatkészletekben XmlName:
<!-- Begin GenerateDatasetsXml #*tagName someDatetime* -->
és
<!-- End GenerateDatasetsXml #*tagName someDatetime* -->
és cserélje ki mindent az e sorok között az új tartalommal, és megváltoztatja a SomeDatetime-t.
- A -i kapcsoló csak feldolgozott (változásokdatasets.xmlcsak) ha fut a GenerateDatasets Xml parancssori érvek, amelyek meghatározzák az összes választ az összes kérdésre egy hurok a program. (Lásd: „Scripting” fent.) (A gondolkodás: Ez a paraméter a forgatókönyvekkel való használatra szól. Ha a programot interaktív módban használja (Info beírása a billentyűzeten) Valószínűleg az XML hibás darabjait generálod, mielőtt létrehozod azt, amit akarsz.)
- Ha a Kezdő és Végső sorokat nem találják, akkor ezeket a sorokat és az új tartalmakat közvetlenül beillesztik</erddapDatasets>.
- Van még egy -I (tőke i) kapcsolja be a tesztelési célokat, amelyek ugyanazt működnek, mint -i, de létrehozza az úgynevezett fájltdatasets.xml dalszöveg és nem változtat megdatasets.xml...
- Ne futtassa GenerateDatasets Xml - egyszerre két folyamatban. Van egy esély, hogy csak egy sor változás fog tartani. Lehet, hogy komoly baj van (például korrupt fájlok) ...
Ha használja a "GenerateDatasetsXml -verbose", akkor a szokásosnál több diagnosztikai üzenetet fog nyomtatni.
Speciális/Pseudo adatkészlet típusok
Általában az EDDType lehetőségek a GenerateDatasets-ben Az e dokumentumban leírt EDD-típusok Xml-es egyezése (lásd:Adatkészlet típusok listája) létrehozni egydatasets.xmlegy adatkészlet létrehozása egy adott adatforrásból. Néhány kivétel és különleges eset van:
EDDGridFromErdap
Ez az EDDType az összesdatasets.xmlcunks szükséges ahhoz, hogyEDDGridFromErdapadatkészletek az összesEDDGridadatkészletek egy távoliERDDAP... Lehetősége lesz az eredeti megtartásáradatasetIDs (amely megduplázhat néhányatdatasetIDmár bennedERDDAP) vagy új nevek létrehozása, amelyek egyediek lesznek (de általában nem olyan emberi olvasható) ...
EDDTableFromErddap
Ez az EDDType az összesdatasets.xmlcunks szükséges ahhoz, hogyEDDTableFromErddapaz összes EDDTable adatkészletből egy távoliERDDAP... Lehetősége lesz az eredeti megtartásáradatasetIDs (amely megduplázhat néhányatdatasetIDmár bennedERDDAP) vagy új nevek létrehozása, amelyek egyediek lesznek (de általában nem olyan emberi olvasható) ...
EDDGridFromThreddsCatalog
Ez az EDDType az összesdatasets.xmla zsák szükséges az összesEDDGriddalszövegolyan adatkészletek, amelyeket visszanyerő módon találhat egy THREDDS-en keresztül (alá: beadás) katalógus. Számos formája van a THREDDS katalógus URL-eknek. Ez az opció REQUIRES egy THREDDS .xml URL /catalog / benne, például,
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/catalog.xml vagy
https://oceanwatch.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/chla/catalog.xml
(Egy kapcsolódó .html katalógus van
https://oceanwatch.pfeg.noaa.gov/thredds/Satellite/aggregsatMH/chla/catalog.html amely nem elfogadhatóEDDGridFromThreddsCatalog.
Ha problémái vannakEDDGridFromThredd Katalógus:
- Győződjön meg róla, hogy az URL-t használja, érvényes, tartalmazza / katalog /, és végződik /catalog.xml .
- Ha lehetséges, használjon nyilvános IP-címet (például, https://oceanwatch.pfeg.noaa.gov ) az URL-ben, nem egy helyi numerikus IP-cím (például, https://12.34.56.78 ) ... Ha a THREDDS csak a helyi numerikus IP címen keresztül érhető el, használhatja [<átalakításToPublicSourceUrl> (#konverttopublicsourceurl) ígyERDDAP™a felhasználók látják a nyilvános címet, bárERDDAP™adatokat kap a helyi numerikus címről.
- Ha olyan problémák vannak, amelyeket nem lehet megoldani,Ellenőrizze a hibaelhárítási tippeket...
- Az alacsony szintű kód ezt most használjaUnidatanetcdf-java katalógus személyzeti kód (Szárak. katalógus osztályok) hogy kezelje az összes THREDDS katalógust (amely meglepően bonyolult lehet) KöszönömUnidataehhez a kódhoz.
EDDGridLonPM180FromErddapCatalog
Ez az EDDType generáljadatasets.xmlHogyEDDGridLonPM180adatkészletek az összesEDDGridadatkészletek egyERDDAPolyan hosszúsági értékek, amelyek 180-nál nagyobbak.
- Ha lehetséges, használjon nyilvános IP-címet (például, https://oceanwatch.pfeg.noaa.gov ) az URL-ben, nem egy helyi numerikus IP-cím (például, https://12.34.56.78 ) ... HaERDDAP™csak a helyi numerikus IP-címen keresztül érhető el, használhatja [<átalakításToPublicSourceUrl> (#konverttopublicsourceurl) ígyERDDAP™a felhasználók látják a nyilvános címet, bárERDDAP™adatokat kap a helyi numerikus címről.
EDDGridLon0360 FromErddapCatalog
Ez az EDDType generáljadatasets.xmlHogyEDDGridLon0360adatkészletek az összesEDDGridadatkészletek egyERDDAPaminek bármilyen hosszúsági értéke kevesebb, mint 0.
- Ha lehetséges, használjon nyilvános IP-címet (például, https://oceanwatch.pfeg.noaa.gov ) az URL-ben, nem egy helyi numerikus IP-cím (például, https://12.34.56.78 ) ... HaERDDAP™csak a helyi numerikus IP-címen keresztül érhető el, használhatja [<átalakításToPublicSourceUrl> (#konverttopublicsourceurl) ígyERDDAP™a felhasználók látják a nyilvános címet, bárERDDAP™adatokat kap a helyi numerikus címről.
EDDSFromFiles
Tekintettel az induló könyvtárra, ez megfordítja a könyvtárat és az összes alirányítót, és megpróbál létrehozni egy adatkészletet minden egyes adatfájlhoz, amelyet megtalál.
- Ez azt feltételezi, hogy amikor egy adatkészlet megtalálható, az adatkészlet tartalmazza az összes aláírót.
- Ha egy adatkészlet megtalálható, hasonló testvéri könyvtárakat fognak kezelni külön adatkészletként (Például az 1990-es évek könyvtárai, a 2000-es évek, a 2010-es évek, külön adatkészleteket fognak létrehozni) ... Könnyűnek kell lenniük a kézzel kombinálni - csak megváltoztatni az első adatkészletet<fájlDir> a szülői könyvtárba, és törölje az összes későbbi testvéri adatkészletet.
- Ez csak egy darabot próbál generálnidatasets.xmla leggyakoribb típusú fájl kiterjesztése egy könyvtárban (nem számít .md5, amely figyelmen kívül hagyja) ... Tehát, adott egy könyvtár 10.ncfájlokat és 5 .txt fájlokat, adatkészletet generálnak.ncfájlok csak.
- Ez azt feltételezi, hogy az összes fájl egy könyvtárban azonos kiterjesztéssel tartozik ugyanabban az adatkészletben. Ha egy könyvtár van néhány.ncfájlok SST adatokkal és néhány.ncfájlok chlorophyll adatok, csak egy minta.ncfájl lesz olvasva (SST? Chlorophyll?) és csak egy adatkészlet jön létre az ilyen típusú fájlhoz. Ez az adatkészlet valószínűleg nem terheli a komplikációk miatt, hogy megpróbálja betölteni két típusú fájlt ugyanazon adatkészletbe.
- Ha kevesebb, mint 4 fájl van a leggyakoribb kiterjesztéssel egy könyvtárban, ez azt feltételezi, hogy nem adatfájlok, és csak kihagyja a könyvtárat.
- Ha van 4 vagy több fájl egy könyvtárban, de ez nem képes sikeresen létrehozni egy darabotdatasets.xmla fájlokhoz (például egy nem támogatott fájltípus) Ez generál egyEDDTableFromFileNamesadatkészlet a fájlokhoz.
- A diagnózis végén, hogy ez a logfájlra ír, csak mielőttdatasets.xmlcunks, ez egy táblázatot fog nyomtatni, amely összefoglalja az összes előirányzatot átnyomó információt. Az asztal felsorolja az összes előirányzatot, és jelzi a leggyakoribb típusú fájl kiterjesztését, a fájlok teljes számát, és mely típusú adatkészletet hoztak létre ezekhez a fájlokhoz. (ha valaki) ... Ha összetett, mélyen fészkelt fájlstruktúrával szembesül, fontolja meg a GenerateDatasets futtatását Xml EDDType=EDDSFromFiles csak azért, hogy létrehozza ezt az információt,
- Ez az opció nem tehet nagyszerű munkát a legjobb EDDType kitalálásában egy adott adatfájlok csoportja számára, de gyors, egyszerű és érdemes kipróbálni. Ha a forrásfájlok megfelelőek, jól működik, és jó első lépés a generálásbandatasets.xmlegy fájlrendszer, sok előirányzattal, mindegyik adatfájlok különböző adatkészletek.
EDDTableFromEML és EDDTableFromEMLBatch
Ezek a különleges EDDType generáljadatasets.xmlHogy egyEDDTableFromAsciiFilesaz egyes táblákból származó adatkészlet, amelyet egyökológiai metaadata nyelvXML fájl. A "Batch" változat működik az összes EML fájl egy helyi vagy távoli könyvtárban. Kérjük, lásd a különállótdokumentáció EDDTableFromEML...
EDDTableFromInPort
Ez a különleges EDDType generáljadatasets.xmlHogy egyEDDTableFromAsciiFilesadatkészlet az információból egyInport-xmlfájl. Ha hozzáférhet a forrásadat fájlhoz (az inport-xml-fájlnak rendelkeznie kell azzal, hogy hol találja meg) működőképes adatkészletet készíthetERDDAP...
A következő lépések felvázolják, hogyan kell használni a GenerateDatasets Xml inport-xml fájllal, hogy munkaadatot kapjonERDDAP...
- Miután hozzáfér az inport-xml fájlhoz (vagy URL-ként vagy helyi fájlként) Futás GenerateDatasets Xml, megjelöli az EDDType=EDDTableFromInPort-ot, meghatározza az inport-xml URL-t vagy a teljes fájlnévet, meghatározza, hogy melyikChild=0, és meghatározza a többi kért információt (ha ismert) ... (Ezen a ponton nem kell a forrásadat fájlt megadnia, vagy meg kell határoznia a nevét.) Az, amiChild=0 beállítás mondja a GenerateDatasets Xml, hogy megírja az információkat Minden A<entity-attribute-információ><entity> az inport-xml fájlban (ha vannak) ... Kinyomtat egy Background információs összefoglalót is, beleértve az összes letöltési url listáját az inport-xml fájlban.
- Nézz át az összes információt (beleértve a Background információkat, amelyek a GenerateDatasets Xml nyomtatások) és látogasson el a letöltési URL (s) annak érdekében, hogy megpróbálja megtalálni a forrásadat fájlt (s) ... Ha megtalálja (őket) Töltse le (őket) olyan könyvtárba, amely hozzáférhetőERDDAP... (Ha nem talál semmilyen forrásadat fájlt, nincs pont az eljárásban.)
- Run Generate Adatkészletek Xml ismét. Ha a forrásadat fájl megfelel az egyik inport-xml fájlnak<entity-attribute-információ><entitás> megadja, melyikChild= Az Entity'sNumber (pl.: 1, 2, 3, ...) ...ERDDAP™megpróbálja megegyezni az oszlopneveket a forrásadat file-ban az entitásinformációk neveihez, és ösztönözni kell az elfogadást/tagadni bármilyen eltérést. Vagy ha az inport-xml fájlnak nincs semmilyen<entity-attribute-információ><entitás> megadja, melyikChild=0.
- A zsákbandatasets.xmlEzt a GenerateDatasets készítette Xml, felülvizsgálja a [global]<addAttributes>>>>>> (#globális tulajdonságok) szükség/kívánatos.
- A zsákbandatasets.xmlEzt a GenerateDatasetsXml készítette, add / felülvizsgálja [<dataVariable>>>>>> (#datavariable) a szükséges / kívánatos információ, hogy leírja az egyes változók. Ügyeljen arra, hogy megfelelően azonosítsa az egyes változókat [[szerkesztés]]<sourceName>>>>>> (#sourcename) (ahogy megjelenik a forrásban) , [[szerkesztés]]<destinationName>>>>>> (#destinationname) (amely több korláttal rendelkezik az engedélyezett karakterekre, mintsourceName) , [[szerkesztés]]<egység>] (#uniták) (különösen, ha ez egyidő vagy időmérő változóahol az egységeknek meg kell határozniuk a formátumot) és [[szerkesztés]]<missing\_value>>>>>> (#missing_érték) ,
- Amikor közel vagy befejezni, ismételten használja aDasDdseszköz, hogy gyorsan megnézze, hogy az adatkészlet leírása érvényes-e, és ha az adatkészlet megjelenikERDDAP™ahogy akarod.
Nagyszerű lenne, ha az InPortot használó csoportok dokumentálnák adatkészleteiket, szintén használnákERDDAP™elérhetővé tenni a tényleges adatokat:
- ERDDAP™olyan megoldás, amelyet most használhatunk, így teljesíthetNOAAAKözös hozzáférés a kutatási eredményekhez (PARR) követelményekmost, nem valami homályos időben a jövőben.
- ERDDAP™a felhasználók számára elérhető tényleges adatokat, nem csak a metaadatot. (Milyen jó a metaadata adatok nélkül?)
- ERDDAP™támogatások metaadata (nevezetesen a változók egységei) Ellentétben néhány más adatkiszolgáló szoftvert. (Milyen jó az adatok metadata nélkül?) Olyan szoftver használatához, amely nem támogatja a metaadatot, hogy meghívja az adatokat félreértésre és visszaélésre.
- ERDDAP™ingyenes és nyílt forráskódú szoftver, ellentétben néhány más szoftvert. Folyamatos fejlődésERDDAP™már fizetett. TámogatásERDDAP™A felhasználók ingyenesek.
- ERDDAPA megjelenés könnyen testreszabható, hogy tükrözze és kiemelje a csoportot (nemERDvagyERDDAP) ...
- ERDDAP™következetes módot kínál az összes adatkészlethez.
- ERDDAP™számos adatfájlból és a kapcsolati adatbázisokból olvashat adatokat.
- ERDDAP™nagy adatkészletekkel, beleértve az adatkészleteket is, ahol a forrásadat számos adatfájlban található.
- ERDDAP™adatokat írhat sokféle adatfájlra, a felhasználó kérésére, beleértve a netCDF, ESRI .csv ésODV .txt...
- ERDDAP™egyedi grafikonokat és térképeket készíthet az adatok alkészleteiről, a felhasználó specifikációi alapján.
- ERDDAP™nem adatkészletekkel, például képgyűjteményekkel, videóval vagy audiofájlokkal foglalkozhat.
- ERDDAP™telepítették és használjáktöbb mint 60 intézmény világszerte...
- ERDDAP™a használatra javasolt adatkiszolgálók egyikeként szerepelNOAAaNOAAAdathozzáférési eljárási irányelvEllentétben néhány más szoftvert.
- ERDDAP™egy termékNMFS/NOAA, így használja belülNMFSésNOAAlegyen a büszkeség pontjaNMFSésNOAA...
Kérjük, adja megERDDAP™Egy próbát. Ha segítségre van szüksége, küldjön üzenetet aERDDAP™Google csoport.
addFillValueAttributes
Ez a különleges EDDType opció nem adatkészlet. Ez egy eszköz, amely hozzáadhatja a \_FillValue tulajdonságait néhány változóhoz bizonyos adatkészletekben. LásdaddFillValueAttributes...
FindDuplic Idő
Ez a különleges EDDType opció nem adatkészlet. Ehelyett azt mondja a GenerateDatasets Xml keresni egy gyűjtött gyűjteményt.nc (és kapcsolódó) fájlokat találni és nyomtatni a fájlok listáját duplikált időértékekkel. Amikor az időértékeket nézi, az eredeti egységekről átalakítja őket"seconds since 1970-01-01"ha a különböző fájlok különböző egységeket használnak. Meg kell adnia a kezdő könyvtárat (vagy anélkül, hogy nyomkövető slash) , a fájlnév rendszeres kifejezés (pl.: \* \.nc ) , és az idő neve változó a fájlokban.
ncdump
Ez a különleges EDDType opció nem adatkészlet. Ehelyett azt mondja a GenerateDatasets Xml nyomtatni egyncdump\-szerű nyomtatás egy.nc,.ncml, vagy.hdffájl. Valójában használja a netcdf-javaNCdumpEz egy korlátozottabb eszköz, mint az NCdump C verziója. Ha ezt a lehetőséget használja, a GenerateDatasetsXml arra kéri Önt, hogy használja az egyik lehetőséget: "h" (Fejlesztő) , "-c" (koordinált vars) , "vall" (default) , "v var1;var2", "v var1 (0:10,0:20) "..." Ez azért hasznos, mert ncdump nélkül nehéz megtudni, mi van egy.nc,.ncml, vagy.hdffájl és így az EDDType meg kell határozni a GenerateDatasets Xml. Egy.ncml fájl, ez kinyomtatja a ncdump kimenetet az eredményért.ncml fájlváltozások az alapul szolgáló.ncvagy.hdffájl.
DasDds
- DasDds egy parancssori program, amelyet használhat, miután létrehozott egy első kísérletet az XML-nél egy új adatkészletredatasets.xml... A DasDds-szel többször is tesztelheti és finomíthatja az XML-t. Ha a DasDds programot használja:
- A Windows-on az első alkalommal futtatja a DasDds-eket, szerkesztenie kell a DasDds-eket. bat fájl egy szövegszerkesztővel, hogy megváltoztassa az utat a java felé. Exe fájl, hogy a Windows találjonJava...
- A DasDds kéri ÖntdatasetIDaz Ön által végzett adatkészletért.
- A DasDds megpróbálja létrehozni az adatkészletet ezzeldatasetID...
- A DasDds mindig sok diagnosztikai üzenetet nyomtat. Ha "DasDds -verbose"-t használ, a DasDds a szokásosnál több diagnosztikai üzenetet fog nyomtatni.
- A biztonság érdekében a DasDds mindig törli az összes csípős adatkészlet információit (fájlok) az adatkészlet számára, mielőtt megpróbálná létrehozni az adatkészletet. Ez az egyenértékű egykemény zászlóTehát az összesített adatkészletek esetében előfordulhat, hogy módosítani szeretné a fájltNameRegex ideiglenesen, hogy korlátozza a fájlok számát az adatgyártó megtalálja.
- Ha az adatkészlet nem terheli (bármilyen okból) A DasDds megállítja és megmutatja a hibaüzenetet az első hiba miatt, amit talál.
Ne próbálja kitalálni, hogy mi lehet a probléma. Olvassa el gondosan az ERROR üzenetet.
Ha szükséges, olvassa el az előző diagnosztikai üzeneteket, hogy több nyomot és információt is találjon. - Változtasson az adatkészlet XML-jére, hogy megpróbálja megoldani a THAT problémát
és hagyja, hogy a DasDds újra létrehozza az adatkészletet. - Ha ismételten megoldja minden problémát, akkor végül megoldja az összes problémát
és az adatkészlet betöltődik.
- Minden DasDds kimenet (diagnosztika és eredmények) a képernyőre írnak, és bigParentDirectory[szerkesztés] /logs/DasDds.log
- Ha a DasDds létrehozhatja az adatkészletet, a DasDds majd megmutatja Önnek a.das (Adatkészlet tulajdonság struktúra) ,.dds (Dataset Descriptor Szerkesztés) ésIdőszakok (Időbeli szakadékok) információ az adatkészlet a képernyőn, és írja őket, hogy bigParentDirectory[szerkesztés] /log/DasDds.out .
- Gyakran előfordul, hogy kis változást szeretne elérni az adatkészlet XML-jéhez, hogy megtisztítsa az adatkészlet metaadatát és újraindítsa a DasDds-t.
Bónusz Harmadik fél eszköz:ERDDAP-lint
ERDDAP-lint egy program Rob Fuller és Adam Leadbetter az ír tengerészeti intézet, hogy lehet használni, hogy javítsa a metaadat aERDDAP™adatkészletek.ERDDAP-lint "megtartja a szabályokat és egy egyszerű statikus webes alkalmazást néhány ellenőrző teszt futtatásáhozERDDAP™szerver. Minden teszt fut a webböngészőben.” Mint aUnix/Linux lint eszköz szerkesztheti a meglévő szabályokat, vagy új szabályokat adhat hozzá. LásdERDDAP-lintTovábbi információkért.
Ez az eszköz különösen hasznos az olyan adatkészletek számára, amelyeket néhány évvel ezelőtt hoztál létre, és most naprakészen akarod hozni a jelenlegi metaadat preferenciáiddal. Például a GenerateDatasets korai verziói Az Xml nem tett erőfeszítést a globális megteremtés érdekébencreator\_name,creator\_email, alkotó\_type, vagycreator\_urlMetaadata. HasználhatjaERDDAP-lint azonosítani azokat az adatkészleteket, amelyek hiányoznak ezek a metaadatok tulajdonságai.
Robnak és Ádámnak köszönhetően, hogy létrehozza ezt az eszközt, és elérhetővé tegye aztERDDAP™közösség.
Alapvető szerkezetedatasets.xmlFile
A szükséges és opcionális címkék megengedettek egydatasets.xmlfájl (és hányszor jelenhetnek meg) alább láthatók. A gyakorlatban, a tedatasets.xmlsok lesz<adatkészlet> címkéi és csak a többi címkét használja<erddapDatasets> szükség szerint.
<?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>
Lehetséges, hogy a jövőben más kódolások kerülnek engedélyezésre, de most már csak az ISO-8859-1 ajánlott.
XInclude
Az új verzió 2.25 támogatja az XInclude-t. Ez megköveteli, hogy használja a SAX parser<HasználatSaxParser> Igaz</useSaxParser> a beállításban.xml. Ez lehetővé teszi, hogy saját fájljában írjon minden adatkészletet, majd tartalmazza azokat a főbbdatasets.xmlújrahasznosítani az adatkészlet-meghatározásokat, vagy mindkettőt. Ha egy példát szeretnél látni,EDDTestDataset.javaXInclude-t állít fel a változó meghatározások újrafelhasználására.
Megjegyzések
Együttműködésdatasets.xmlA fájl nem triviális projekt. Kérjük, olvassa el ezeket a jegyzeteket gondosan. Miután kiválasztott egyadatkészlet típusKérjük, olvassa el gondosan a részletes leírást.
Az adatkészlet típusának kiválasztása
A legtöbb esetben csak egy vanERDDAP™adatkészlettípus, amely megfelelő egy adott adatforráshoz. Néhány esetben (pl.:.ncfájlok) Vannak néhány lehetőség, de általában az egyik közülük biztosan a legjobb. Az első és legnagyobb döntés, amit meg kell hozni: helyénvaló kezelni az adatkészletet, mint egy csoport multidimenzionális sorozatok (ha igen,EDDGridadatkészlet típusa) vagy adatbázisszerű adattábláként (ha igen,EDDTable adatkészlet típusok) ...
Az adatok szolgálata, mint
Általában nincs szükség az adatforrás módosítására (pl. a fájlokat más fájltípusra konvertálja) hogyERDDAP™szolgálhatja. Az egyik feltételezés aERDDAP™az, hogy az adatforrást úgy fogják használni, mint az. Általában ez jól működik. Néhány kivétel:
- Kapcsolódó adatbázisok és Cassandra -ERDDAP™közvetlenül a kapcsolati adatbázisokból és a Cassandra-ból szolgálhat adatokat. De a biztonság, a terhelés kiegyensúlyozása és a teljesítmény kérdései, úgy dönthet, hogy létrehoz egy másik adatbázist ugyanazzal az adatokkal, vagy mentse meg az adatokat, hogyNetCDFv3.ncfájlok ésERDDAP™szolgálja az adatokat az új adatforrásból. LásdEDDTableFromDatabaseésEDDTableFromCassandra...
- Nem támogatott adatforrások -ERDDAP™támogathat számos adatforrást, de a világ tele van 1000-es (milliók?) különböző adatforrások (nevezetesen az adatfájl struktúrák) ... HaERDDAP™nem támogatja az adatforrást:
- Ha az adatforrásNetCDF .ncfájlokat, használhatNcMLaz adatfájlok módosítása a repülésen vagy a használatonNCOaz adatfájlok állandó módosítása.
- Az adatokat egy adatforrástípusra írhatja,ERDDAP™támogatás.NetCDF-3.nca fájlok jó, általános ajánlás, mert bináris fájlok, hogyERDDAP™nagyon gyorsan olvashat. A tabuláris adatok esetében fontolja meg az adatok tárolását egy gyűjteményben.ncfájlok, amelyek aCF Discrete Sampling Geometries (DSG) Contiguous Ragged Array adatstruktúrák és így kezelhetőkERDDAPAEDDTableFromNcCFFiles). Ha logikailag megszervezik őket (mindegyik adat egy darab űr és idő) ,ERDDAP™nagyon gyorsan kivonhatja az adatokat tőlük.
- Kérheti, hogy az adatforrás támogatását hozzáadjukERDDAP™e-mailben Chris. John at noaa.gov.
- Hozzáadhat támogatást az adatforráshoz azáltal, hogy megírja a kódot, hogy kezelje magát. LásdaERDDAP™Programozó útmutató
- Speed -ERDDAP™olvashat adatokat néhány adatforrásból sokkal gyorsabban, mint mások. Például olvasásNetCDFv3.ncA fájlok gyorsak és az ASCII fájlok olvasása lassabb. Ha van egy nagy (>1000) vagy hatalmas (>10 000) forrásadat fájlok száma,ERDDAP™Lassan reagál néhány adatkérésre. Általában a különbség nem észrevehető az emberek számára. Ha azonban úgy gondolja,ERDDAP™lassú egy adott adatkészlet esetében, úgy dönthet, hogy megoldja a problémát az adatok hatékonyabb beállításának írásával (általában: néhány, jól strukturált,NetCDFv3.ncfájlok) ... A tabuláris adatokhoz lásd:ez a tanács...
Hint
Gyakran könnyebb generálni az XML-t egy adathalmaz számára, ha egy munkaadat-leírást készít az adatkészletben.xml-ben, majd módosítja azt.
Különleges karakterek kódolása
ótadatasets.xmlXML fájl, akkor MUST&-Ecode"&", "<"és ">" bármilyen tartalomban "&", "<és „és gt;”. Rossz:<cím> Idő és tides</title> Jobb:<cím> Time & Tides</title>
Az XML nem tolerálja a szintax hibákat
Miután szerkesztette az adatkészletet.xml fájlt, jó ötlet ellenőrizni, hogy az eredményjól kialakított XMLaz XML szöveg beillesztése egy XML-ellenőrzőbe, mintxmlvalidáció...
Hibaelhárítási tippek
- Más módszerek a problémák diagnosztizálására az adatkészletekkel
A két fő mellettEszközök, - Log.txtegy log fájl mindenERDDAPDiagnosztikai üzenetek.
- ANapi jelentéstöbb információval rendelkezik, mint a status oldal, beleértve az olyan adatkészletek listáját, amelyek nem töltöttek be, és a kivételek (hibák) termeltek.
- AStatus oldalgyors módja annak, hogy ellenőrizzeERDDAPstátusza bármilyen webböngészőtől. Ez magában foglalja az olyan adatkészletek listáját, amelyek nem töltöttek be (bár nem a kapcsolódó kivételek) és feladatHárom statisztika (bemutatni a haladástEDDGridMásolásésEDDTableCopyadatkészletek és mindenEDDGridFájlokvagyEDDTableFromFilesolyan adatkészletek, amelyekCacheFromUrl (de nem kóstol SizeGB) ) ...
- Ha megragadsz, lásd a mirész további támogatás megszerzéséről...
Különleges változók
- A hosszúság, a magasság, a magasság (vagy mélység) és idő (LLAT) változó destinationNameS különleges.
- Általában:
- LLAT változók ismertekERDDAP™ha a tengely változója (MertEDDGridadatkészletek) vagy az adatok változója (EDDTable adatkészletek) destinationName"hosszúság", "latitude", "altitude", "mélység" vagy"time"...
- Erősen arra ösztönözzük Önt, hogy használja ezeket a szabványos neveket ezekre a változókra, amikor csak lehetséges. Egyikük sem szükséges. Ha nem használja ezeket a különleges változó neveket,ERDDAP™nem fogja felismerni jelentőségüket. Például az LLAT változókat speciálisan a Make A Graph kezeli ( datasetID .gráf) : ha az X Axis változó "hosszúság", és az Y Axis változó "magasság", akkor térképet kap (egy szabványos előrejelzés, valamint egy földmaszk, politikai határok stb.) egy grafikon helyett.
- ERDDAP™automatikusan hozzáad sok metaadatot a LLAT változókhoz (Például: "ioos\_category",",egység" és számos szabványhoz kapcsolódó tulajdonság, mint a "\_CoordinateAxisType") ...
- ERDDAP™automatikusan, on-the-fly, hozzáadni sok globális metaadata kapcsolódó LLAT értékek a kiválasztott adatalkotó (Például: "geospatial\_lon\_min") ...
- Azok az ügyfelek, akik támogatják ezeket a metaadat-szabványokat, képesek lesznek kihasználni a hozzáadott metaadatot az adatok időben és térben történő elhelyezésére.
- Az ügyfelek könnyebben létrehoznak olyan lekérdezéseket, amelyek magukban foglalják a LLAT változókat, mert a változó nevek minden releváns adatkészletben azonosak.
- A "hosszúság" változó és a "latitude" változó:
- Használja adestinationNameS "hosszúság" és "latitude" csak akkor, haegységfokozatok\_east és fokozatok\_north, vagyis. Ha az adatai nem felelnek meg ezeknek a követelményeknek, használjon különböző változó neveket (Például x, y, lonRadians, latRadians) ...
- Ha hosszúságú és szélességi adatok vannak különböző egységekben, és így különböződestinationNameS, például lonRadians és latRadians, Make A Graph ( datasetID .gráf) grafikonokat készít (például az idősorozat) a térképek helyett.
- A "magasság" változó és a "mélység" változó:
- Használja adestinationName"szélesség" az adatok tengerszint feletti távolságának azonosítása (pozitív="up" értékek) ... Opcionálisan használhatja a tengerszint alatti távolságokat, ha az értékek negatívak a tenger alatt (vagy ha például használja, [[szerkesztés]]<att name="scale\_factor"típus="int"> - 1</att>] (#scale_factor) a mélységértékek magassági értékekké alakítása.
- Használja adestinationName"mély" az adatok tengerszint alatti távolságának azonosítása (pozitív="down" értékek) ...
- Az adatkészletnek nem lehet "szélessége" és "mély" változója.
- Ezeknek a változó neveknek,egység"m", "mérő" vagy "mérő". Ha az egység különbözik (például a fatomok) Használhatja [[szerkesztés]]<att name="scale\_factor">>> Néhány Érték </att>] (#scale_factor) [[[szerkesztés]]]<att name="units"> méterek</att>] (#uniták) átalakítani az egységeket méterekre.
- Ha az adatai nem felelnek meg ezeknek a követelményeknek, használjon mástdestinationName (Például a fenti csoport, távolság ToBottom) ...
- Ha ismeri a vertikális CRS-t, kérjük, adja meg a metaadatban, pl. „EPSG:5829” (azonnali magasság a tengerszint felett) EPSG:5831 (azonnali mélység tengerszint alatt) vagy "EPSG:5703" (NAVD88 magasság) ...
- Mert"time"változó:
- Használja adestinationName "time"csak olyan változók esetében, amelyek az egész dátum+time-t tartalmazzák (vagy dátum, ha ez minden ott van) ... Ha például vannak külön oszlopok a dátum és az időOfDay, ne használja a változó nevet"time"...
- Lásdegységaz idő és az időStamp változók számára jellemző egységekről.
- Az idő változó és kapcsolódóIdő Stamp változókegyediek abban, hogy mindig az adatértékeket a forrás idő formátumából alakítják át (bármi legyen is az) numerikus értékbe (másodpercek 1970-01-01T00:00Z) vagy erős érték (ISO 8601:2004 (EZ) formátum) a helyzettől függően.
- Amikor egy felhasználó időadatokat kér, akkor kérheti azt az idő meghatározásával, mint számszerű érték (másodpercek 1970-01-01T00:00Z) vagy erős érték (ISO 8601:2004 (EZ) formátum) ...
- ERDDAP™haszonnal rendelkezikKonvertáljon Numeric Idő / sztring idő...
- LásdHogyanERDDAPÜzletek az idővel...
Miért csak két alapvető adatstruktúra?
- Mivel nehéz az emberi ügyfelek és a számítógépes ügyfelek számára, hogy összetett, lehetséges adatkészlet-struktúrákat kezeljenek,ERDDAP™csak két alapvető adatstruktúrát használ:
- egyfúrt adatstruktúra (például műholdas adatok és modelladatok esetében) és
- egytabuláris adatstruktúra (például az in-situ buoy, az állomás és a pályázati adatok) ...
- Természetesen nem minden adat lehet kifejezni ezekben a struktúrákban, de sok ez képes. A táblázatok különösen nagyon rugalmas adatstruktúrák (Nézze meg a kapcsolati adatbázis-programok sikerét) ...
- Ez megkönnyíti az adatkérések építését.
- Ez teszi az adatválaszok egyszerű struktúrával rendelkeznek, ami megkönnyíti az adatok szélesebb körű, szabványos fájltípusokban történő kiszolgálását (amely gyakran csak egyszerű adatstruktúrákat támogat) ... Ez a fő oka annak, hogy felállítottukERDDAP™így.
- Ez viszont nagyon könnyű számunkra (vagy bárki) olyan ügyfélszoftvert írni, amely mindennel működikERDDAP™adatkészletek.
- Ez megkönnyíti az adatok összehasonlítását különböző forrásokból.
- Nagyon tisztában vagyunk azzal, hogy ha más adatstruktúrákban dolgozol adatokkal, akkor kezdetben úgy gondolod, hogy ez a megközelítés egyszerű vagy elégtelen. De az összes adatstruktúrának vannak szakadékai. Senki sem tökéletes. Még a do-it-all struktúrák is vannak hátrányai: a velük való együttműködés bonyolult, és a fájlokat csak speciális szoftverkönyvtárak írható vagy olvasható. Ha elfogadodERDDAP"Elég megközelítés ahhoz, hogy megpróbáljon vele dolgozni, úgy találhatja, hogy előnyei vannak (nevezetesen több fájltípus támogatása, amelyek megtarthatják az adatválaszokat) ... AERDDAP™Slide show (különösen aadatstruktúrák csúsznak) Sokat beszél ezekről a kérdésekről.
- És még akkor is, ha ez a megközelítés furcsán hangzik hozzád, a legtöbbERDDAP™Az ügyfelek soha nem fognak észrevenni - egyszerűen látni fogják, hogy az összes adatkészletnek szép egyszerű szerkezete van, és hálásak lesznek, hogy számos fájlformátumban visszatért forrásból származó adatokat kaphatnak.
Méretek
- Mi van, ha a rács változók a forrás adatkészletben nem osztoznak ugyanazon tengelyváltozatokkal?
InkábbEDDGridadatkészletek, minden adatváltozat MUST használat (Részvény) az összes tengely változó. Tehát, ha egy forrásadatnak van néhány változója az egyik dimenzióval, és más változók eltérő dimenzióval, akkor két adatkészletet kell készítenie.ERDDAP... Például, lehet, hogy egyERDDAP™„Egyes cím (felületen) - olyan változókat tartsanak, amelyek csak\[Idő\]\[magasság\]\[hosszúság\]dimenziók és egy másikERDDAP™„Egyes cím (mélységben) "megtartani azokat a változókat, amelyek\[Idő\]\[magasság\]\[magasság\]\[hosszúság\]... Vagy talán megváltoztathatja az adatforrást, hogy hozzáadjon egy dimenziót egyetlen értékkel (például altitude=0) hogy a változók következetesek legyenek.
ERDDAP™nem kezel bonyolultabb adatkészleteket (Például olyan modellek, amelyek háromszögek hálóját használják) jól. Ezeket az adatkészleteket szolgálhatjaERDDAP™két vagy több adatkészlet létrehozásávalERDDAP™ (annak érdekében, hogy minden adat változó legyen minden egyes új adatkészletben, ugyanazt a tengelyváltozatot ossza meg) De ez nem az, amit a felhasználók akarnak. Néhány adatkészlet esetében előfordulhat, hogy az adatkészlet rendszeres rúdolt verzióját készíti el, és felajánlja azt az eredeti adatok mellett. Néhány ügyfél szoftver csak egy rendszeres hálózattal foglalkozhat, így ezzel további ügyfeleket érhet el.
Projected Gridded adatok
Néhány rácsos adat komplex szerkezettel rendelkezik. Például műholdas szint 2 (dalszöveg: "along track") Az adatok nem használnak egyszerű előrejelzést. Modellek (mások) gyakran dolgoznak a különböző nem-cilindrikus előrejelzésekkel kapcsolatos hálózati adatokat (például conic, polar sztereográfia, tripolar) vagy strukturálatlan rácsokban (összetettebb adatstruktúra) ... Néhány végfelhasználó ezt az adatokat akarja, így nincs információvesztés. Ezeknek az ügyfeleknek,ERDDAP™szolgálhatja az adatokat, csak akkor, haERDDAP™Az adminisztrátor néhány adatkészletbe bontja az eredeti adatkészletet, és minden egyes részben olyan változókat tartalmaz, amelyek ugyanazokat a tengelyváltozatokat osztják meg. Igen, ez furcsának tűnik az érintett emberek számára, és különbözik a legtöbbtőlOPeNDAPszerverek. DeERDDAP™hangsúlyozza, hogy sok formátumban elérhetővé teszi az adatokat. Ez azért lehetséges, mertERDDAP™egységesebb adatstruktúrát igényel. Bár ez egy kicsit kínos (más, mint a vártnál) ,ERDDAP™eloszthatja a tervezett adatokat.
\[Igen,ERDDAP™lehetne lazább követelményeket az adatstruktúrára, de tartsa a kimeneti formátumokra vonatkozó követelményeket. De ez zavart okozna sok felhasználó, különösen az újszülött között, mivel sok látszólag érvényes adatkérés érvénytelen lenne, mert az adatok nem illeszkednének a fájltípusba. Visszatérünk a jelenlegi rendszer tervezéséhez.\]
Egyes végfelhasználók olyan lat lon-cilindrikus előrejelzést akarnak, mint az Equirectangular / lemezkarrée vagy Mercator) a könnyű használatra különböző helyzetekben. Ezekre a helyzetekre bátorítjuk aERDDAP™adminisztrátor más szoftverek használatához (NCO?Matlab? R? IDV? ...?) az adatoknak egy földrajzra való újrafeldolgozása (Equirectangular előrejelzés / lemezkarrée) vagy más cilindrikus előrejelzés, és szolgálja az adatok ilyen formájátERDDAP™mint más adatkészlet. Ez hasonló ahhoz, amit az emberek csinálnak, amikor műholdas szinten 2 adatot alakítanak át a 3. szintű adatokba. Egy ilyen eszközNCOamely kiterjesztési lehetőségeket kínál a sajnálatos adatokhoz.
GIS és reprojektív adatok
Mivel a GIS világ gyakran térképorientált, a GIS programok általában támogatást nyújtanak az adatok reprojektjéhez, azaz az adatokat egy másik előrejelzésű térképre helyezve.
Jelenleg,ERDDAP™nincs eszköze az adatok reprojekciójára. Ehelyett azt javasoljuk, hogy használjon egy külső eszközt, hogy az adatkészlet változatos legyen, ahol az adatokat eredeti formájából reprojektálták egy téglalapra. (magassági hosszúság) alkalmasERDDAP...
Véleményünk szerint a CF/DAPA világ egy kicsit más, mint a GIS világ, és kissé alacsonyabb szinten működik.ERDDAP™ezt tükrözi. Általában,ERDDAP™célja, hogy elsősorban az adatokkal dolgozzon (nem térképek) és nem akar változtatni (pl. reprojekt) az adatok. MertERDDAP™A rácsos adatok gyakran/általában/előnyösen kapcsolódnak a lat lon értékek és a cilindrikus előrejelzés, és nem néhány előrejelzés x,y értékek. Mindenesetre,ERDDAP™nem tesz semmit az adatprojektjével; csak áthalad az adatokon keresztül, mint ahogy a jelenlegi előrejelzése, azon az elméleten, hogy a reprojekció jelentős változás az adatokhoz ésERDDAP™nem akar jelentős változásokat bevonni. Továbbá a későbbi felhasználók naiv módon újraprojektezhetik az adatokat, ami nem lenne olyan jó, mint egy reprojekció. (Tehát, haERDDAP™Az adminisztrátor más előrejelzésben, bírságban kívánja felajánlani az adatokat; csak reprojektálja az offline adatokat, és felajánlja azt, hogy egy másik adatkészletkéntERDDAP... Sok műholdas adatkészletet kínálnak, mint amit a NASA 2. szintnek nevez (fürdő) és mint 3. szint (Equirectangular előrejelzés) verziók.) MikorERDDAP™térképek készítése (közvetlenül vagy keresztülWMSvagy KML) ,ERDDAP™Jelenleg csak térképeket készít az Equirectangular / tányérkarrier-projekcióval, amelyet szerencsére a legtöbb feltérképező program elfogad.
BátorítunkERDDAP™adminisztrátorok más szoftverek használatára (NCO?Matlab? R? IDV? ...?) az adatoknak egy földrajzra való újrafeldolgozása (Equirectangular előrejelzés / lemezkarrée) vagy más cilindrikus előrejelzés, és szolgálja az adatok ilyen formájátERDDAP™mint más adatkészlet. Ez hasonló ahhoz, amit az emberek csinálnak, amikor műholdas szinten 2 adatot alakítanak át a 3. szintű adatokba. Egy ilyen eszközNCOamely kiterjesztési lehetőségeket kínál a sajnálatos adatokhoz.
Reméljük, hogyERDDAP™beépített eszközöket kínálnak térképeket más előrejelzésekkel a jövőben. Reméljük, hogy a jövőben jobb kapcsolatokat ápolunk a GIS világával. (más, mint a jelenlegiWMSszolgáltatás) ... Szörnyű, hogy ebben a „modern” világban a CF//DAPA világ és a GIS világ még mindig olyan gyenge. Mindkét dolog a To Do listán van. (Ha segíteni akar, nevezetesen a csatlakozássalERDDAP™MapServer, kérlek e-mailt Chris. John at noaa.gov.)
Adattípusok
ERDDAP™támogatja a következő adattípusokat (a nevek érzékenyek;'u'prefix áll a "nem kijelölt"; a szám sok a nevek más rendszerekben a bitek száma) :
byte
- byte integrált értékeket írt alá -128 és 127 között. Más rendszerekben ezt néha int8-nak nevezik. Ezt az úgynevezett "tinyint" az SQL és a Cassandra. ERDDAP™átalakításokbooleannéhány forrásból (pl. SQL és Cassandra) b) a bytes inERDDAP™0=hamis, 1=igaz és 127=missing\_value...
Ubyte
- Ubyte 0–255 közötti számottevő értékkel rendelkezik. Más rendszerekben ezt néha uint8-nak nevezik.
rövid
- rövid integrált értékeket írt alá -32768 és 32767 között. Más rendszerekben ezt néha int16-nak nevezik. Ezt az SQL és Cassandra "smallint"-nak hívják.
Uraim
- Uraim 0-65535 közötti számtalan integrált értékkel rendelkezik. Más rendszerekben ezt néha uint16-nak nevezik.
Inkább
- Inkább integrált értékeket írt alá -2147483648 és 2147483647. Más rendszerekben ezt néha int32-nek nevezik. Ezt nevezik "integernek"|numerikus (?) "SQL és "int" Cassandra.
Uint
- Uint 0–4294967295 közötti számtalan integrált értékkel rendelkezik. Más rendszerekben ezt néha uint32-nek nevezik.
hosszú
- hosszú -9223372036854575808 és 9223372036854775807 közötti integrációs értékeket írt alá. Más rendszerekben ezt néha int64-nek nevezik. Ezt nevezik "bigint|numerikus (?) "Az SQL és a "bigint" által Cassandra. Mivel sok fájltípus nem támogatja a hosszú adatokat, használatuk elriasztott. Ha lehetséges, használja dupla helyett (lásd alább) ...
Utána
- Utána az integrációs értékek száma 0-tól 18446744073709551615 Más rendszerekben ezt néha uint64-nek nevezik. Mivel sok fájltípus nem támogatja az ulong adatokat, használatuk elriasztott. Ha lehetséges, használja dupla helyett (lásd alább) ...
Float
- Float egy IEEE 754 float körülbelül +/- 3.402823466e+38. Más rendszerekben ezt néha float32-nek nevezik. Ezt nevezik "valódi|Float (?) |decimális (?) |numerikus (?) "Az SQL és a "float" által Cassandra. A NaN különleges értéke Not-a-Number. ERDDAP™pozitív és negatív végtelen értékeket alakít ki a NaN számára.
dupla dupla
- dupla dupla egy IEEE 754 dupla, körülbelül +/- 1.7976931348623157E+308. Más rendszerekben ezt néha float64-nek nevezik. Ezt nevezik „kettős pontosságnak|Float (?) |decimális (?) |numerikus (?) "Az SQL és a "dupla" által Cassandra. A NaN különleges értéke Not-a-Number. ERDDAP™pozitív és negatív végtelen értékeket alakít ki a NaN számára.
char
- char egyetlen, 2 fehér (16 bit) Unicode UCS-2 karakterFurcsa\u0000 (#0) keresztül\uffff (#65535) ... \uffff"A definíció Not-a-Character, amely a NaN kettős értéket elemzi. A char használata elriasztott, mert sok fájltípus sem támogatja a charsot, vagy csak 1 fehér charsot támogat (lásd alább) ... Fontolja inkább a String használatát. A felhasználók a char változókat használhatják a grafikonok elkészítéséhez.ERDDAP™átalakítja a karaktereket az Unicode kódszámára, amelyet numerikus adatokként lehet használni.
Hírek
- Hírek 0 vagy több, 2 fehér sorozat (16 bit) Unicode UCS-2 karakterek... ERDDAP™Használja/értelmezi a 0 hosszúságot, mint egy hiányzó érték.ERDDAP™nem támogatja az igazi null sztringet. Az elméleti maximális sztring hossza 21473647 karakter, de valószínűleg különböző problémák vannak különböző helyeken, még valamivel rövidebb Strings. HasználatERDDAP"Az SQL karakterének, varchar, karakterváltó, bináris, varbináris, intervallum, tömör, multiset, xml és minden más adatbázis-adattípus, amely nem illik tisztán másokkalERDDAP™adattípus. HasználatERDDAPCassandra "szövege" és bármely más Cassandra adattípus, amely nem illik tisztán mássalERDDAP™adattípus.
KorábbanERDDAP™v2.10,ERDDAP™nem támogatta a nem jelentett integrált típusokat belsőleg, és korlátozott támogatást nyújtott az adatolvasók és írók számára.
Adattípus korlátozások
GondolhatszERDDAP™olyan rendszerként, amely virtuális adatkészletekkel rendelkezik, és amely az adatkészlet forrásának belső adatmodelljévé történő olvasásával működik, és adatokat ír különböző szolgáltatásokra (pl.(OPeN)DAP,WMS) és fájltípusok a felhasználói kérelmekre válaszul.
- Minden bemeneti olvasó támogatja az adattípusok aljzatát, amelyekERDDAP™támogatás. Az adatok olvasása az adatokbaERDDAPA belső adatstruktúrák nem jelentenek problémát.
- Minden kimeneti író támogatja az adattípusok alkészletét is. Ez egy probléma, mertERDDAPpéldául a hosszú adatok olyan fájltípusokba kerülnek, amelyek nem támogatják a hosszú adatokat.
Az alábbiakban a korlátozások magyarázatai (vagy nem) különböző kimeneti írók és hogyanERDDAP™foglalkozik a problémákkal. Az ilyen komplikációk egy örök részeERDDAPCélja, hogy interoperábilisá váljon az elválasztott rendszerek.
ASCII
- ASCII (.csv,.tsvstb.) szövegfájlok -
- Minden numerikus adatot a String reprezentációján keresztül írják (hiányzó adatértékek jelennek meg 0 hosszúságú sztringek) ...
- BárERDDAP™hosszú és hosszú értékeket ír az ASCII szövegfájljainak megfelelően, sok olvasó (pl. táblázatprogramok) nem tudja helyesen kezelni a hosszú és ulong értékeket, és ehelyett kettős értékekké alakítja őket (a pontosság elvesztése bizonyos esetekben) ...
- Char és String adatok írt keresztül JSON Strings, amely kezeli az összes Unicode karakterek (nevezetesen az ASCII #127-en túli „szokatlan” karakterek, pl. az euró karakter „u20ac”-ként jelenik meg) ...
JSON
- JSON (.json,.jsonlCSVstb.) szövegfájlok -
- Minden numerikus adat a String reprezentációján keresztül van megírva.
- Char és String adatok vannak írva JSON Strings, amely kezeli az összes Unicode karakterek (nevezetesen az ASCII #127-en túli „szokatlan” karakterek, pl. az euró karakter „u20ac”-ként jelenik meg) ...
- Az összes numerikus adattípus hiányzó értéke nullnak tűnik.
.nc3 fájl
- .nc3 fájl nem natív módon támogatja a nem tervezett integrált adattípusokat. A CF v1.9 előtt a CF nem támogatta a nem aláírt integrált típusokat. ezzel foglalkozni,ERDDAP™2.10+ követi a NUG-szabványt, és mindig hozzáad egy "\_Unsigned" tulajdonságot az "igaz" vagy "hamis" értékével, hogy jelezze, hogy az adatok egy meg nem írt vagy aláírt változóból származnak. Minden integrált tulajdonságot aláírt tulajdonságként írnak (pl. byte) aláírt értékekkel (pl. ubyte)actual\_rangea 0–255 értéknek tulajdonítható, 0–1 értékkel bíró gyűlöletként jelenik meg (a két teljes értékének inverzuma). Nincs egyszerű módja annak, hogy megtudjuk, melyik (jelzett) integer tulajdonságokat kell leolvasni jelölt tulajdonságként.ERDDAP™támogatja a "\_Unsigned" tulajdonságot, amikor olvas.nc3 fájl.
- .nc3 fájl nem támogatja a hosszú vagy ulong adattípusokat.ERDDAP™ezzel foglalkozik, átmenetileg átalakítva őket, hogy kettős változó legyen. A duplák pontosan képviselhetik az összes értéket +/- 9,007,199,254,740,992 ami 2^53. Ez egy tökéletlen megoldás.Unidataelutasítja, hogy egy kisebb frissítést készítsen.nc3 kezelni ezt és kapcsolódó problémákat, idézni.nc4 4 4 (jelentős változás) mint megoldás.
- A CF specifikáció (v1.9 előtt) Azt mondta, hogy támogatja a char adattípust, de nem világos, hogy a char csak a char sasok építőelemei, amelyek hatékonyan Strings. Kérdések a levelezési listájához csak zavaró válaszokat hoztak létre. Ezeknek a komplikációknak köszönhetően a legjobb, ha elkerüljük a char változókatERDDAP™Használja a String változókat, ha csak lehetséges.
- Hagyományosan,.nc3 fájl csak az ASCII által kódolt karakterláncokat támogatta (7 bites, #0 - #127) karakterek. NUG (ésERDDAP) kiterjeszteni azt (Kezdőlap ~2017) beleértve a „\_Encoding” tulajdonságot az „ISO-8859-1” értékével (az ASCII kiterjesztése, amely minden 8 bites karakter 256 értéket meghatároz) vagy "UTF-8", hogy jelezze, hogy a String adatok kódolva. Más kódolások lehet jogi, de elriasztják.
.nc4 fájl
- .nc4 fájl támogatja az összesERDDAPAdattípusok.
NCCSV fájlok
Az NCCSV 1.0 fájlok nem támogatnak semmilyen nem aláírt integrált adattípust. NCCSV 1.1+ fájloktámogassa az összes kijelölt integrált adattípust.
DAP
- (OPeN)DAP (.das, .dds, .asc ASCII fájlok és .dods bináris fájlok) -
- (OPeN)DAPrövid, ushort, int, uint, float és dupla értékek helyes kezelése.
- (OPeN)DAP"bájt" adattípussal rendelkezik, amelyet lemondatlannak tekintenek, míg történelmileg a THREDDS ésERDDAP™bánatot kezeltek, ahogy aláírták őket(OPeN)DAPSzolgáltatások. Hogy jobban kezeljük ezt,ERDDAP™2.10+ követi az NUG szabványt, és mindig hozzáad egy "\_Unsigned" tulajdonságot az "igaz" vagy "hamis" értékével, hogy jelezze, hogy az adatok azERDDAP™byte vagy ubyte. Minden byte- és ubyte-jellemzőt úgy írják, mint „byte” tulajdonságokat, amelyek aláírt értékekkel rendelkeznek (pl. ubyte-ként).actual\_rangea 0–255 értéknek tulajdonítható, 0–1 értékkel bíró gyűlöletként jelenik meg (a két teljes értékének inverzuma). Nincs egyszerű módja annak, hogy megtudjuk, melyik "bájt" tulajdonságokat kell utódi tulajdonságként elolvasni.
- (OPeN)DAPnem támogatja az aláírt vagy nem aláírt hosszúságokat.ERDDAP™ezzel foglalkozik, átmenetileg átalakítva őket, hogy kettős változók és tulajdonságok. A duplák pontosan képviselhetik az összes értéket 9,007,199,254,740,992 ami 2^53. Ez egy tökéletlen megoldás.OPeNDAP (a szervezet) elutasítja, hogy egy kisebb frissítést készítsenDAP2.0 ezzel és a kapcsolódó problémákkal foglalkozni, idézveDAP4 4 4 (jelentős változás) mint megoldás.
- Mert(OPeN)DAPnincs külön char adattípus és technikailag csak 1 fehér ASCII karaktert támogat (#0 - #127) a Strings-ban a char data variables 1 karakter-hosszú Strings-ként jelenik meg(OPeN)DAP.das, .dds és .dods válaszok.
- Technikailag, a(OPeN)DAPspecifikáció csak az ASCII kódolt karakterekkel támogatja (#0 - #127) ... NUG (ésERDDAP) kiterjeszteni azt (Kezdőlap ~2017) beleértve a „\_Encoding” tulajdonságot az „ISO-8859-1” értékével (az ASCII kiterjesztése, amely minden 8 bites karakter 256 értéket meghatároz) vagy "UTF-8", hogy jelezze, hogy a String adatok kódolva. Más kódolások lehet jogi, de elriasztják.
Adattípus megjegyzések
- Mivel a rossz támogatás hosszú, ulong, és char adatok sok fájltípusban, elriasztjuk az ilyen adattípusok használatátERDDAP... Ha lehetséges, használja kettős helyett hosszú és ulong, és használja String helyett char.
- Metadata - Mert(OPeN)DAP.das és .dds válaszok nem támogatják a hosszú vagy ulong tulajdonságokat vagy adattípusokat (helyettük kettősnek mutatják őket) Ehelyett inkább használni akarodERDDAP"A metafora reprezentációja a metaadata, mint látható ahttp.../erddap/ Info / datasetID .html weboldal (például, https://coastwatch.pfeg.noaa.gov/erddap/info/cwwcNDBCMet/index.html ) (amely más fájltípusokban is kaphat, például .csv,.htmlTable,.itx,.json,.jsonlCSV1,.jsonlCSV,.jsonlKVP,.mat,.nc,.nccsv,.tsv,.xhtml) vagy.nccsvMetadata válasz (például, https://coastwatch.pfeg.noaa.gov/erddap/tabledap/cwwcNDBCMet.nccsvMetadata bár.nccsvA Metadata csak tabuláris adatkészletekhez érhető el) mindkettő támogatja az összes adattípust (különösen, hosszú, ulong és char) ...
Media Files
Nem minden adat számos szám vagy szöveg. Néhány adatkészlet tartalmaz vagy tartalmazza a médiafájlokat, például a képet, az audio- és videofájlokat.ERDDAP™Van néhány speciális jellemzője, hogy megkönnyítse a felhasználók számára, hogy hozzáférjenek a médiafájlokhoz. Ez egy két lépéses folyamat:
- Készítsen minden fájlt a saját URL-jén keresztül, egy olyan rendszeren keresztül, amely támogatja a byte range kéréseket. A legegyszerűbb módja ennek az, hogy a fájlokat egy könyvtárba helyezzük, hogyERDDAP™hozzáféréssel rendelkezik. (Ha egy konténerben vannak, mint egy.zipfájl, zip őket, bár lehet, hogy felajánlja a.zipfájlt a felhasználóknak is.) Ezután készíts egyEDDTableFromFileNamesadatkészlet, hogy ezeket a fájlokat hozzáférhetővé tegyékERDDAP™- nevezetesen keresztülERDDAPA"files"rendszerrendszer...
Minden fájl elérhetővé tette az EDDTableFromFileNames ésERDDAPA"files"rendszertámogatásbyte range kérések... Normális esetben, ha egy ügyfél (pl. böngésző) kérést kér egy URL-hez, az egész fájlt választ kapja. De egy byte range kéréssel a kérelem egy sor byte-t határoz meg a fájlból, és a szerver csak visszaküldi azokat a byte-eket. Ez azért releváns itt, mert a böngészők hang- és videojátékosai csak akkor működnek, ha a fájl elérhető a byte hatótávú kéréseken keresztül.
Opcionális: Ha több mint egy adatkészlete van a kapcsolódó médiafájlokkal, akkor csak egy EDDTableFromFileNames-t készíthet, amely minden egyes fájltípushoz almappát tartalmaz. Az előny az, hogy amikor új médiafájlokat szeretne hozzáadni egy új adatkészlethez, minden, amit meg kell tennie, egy új mappa létrehozása, és a fájlokat a mappába helyezi. A mappát és fájlokat automatikusan hozzáadjuk az EDDTableFromFileNames adatkészlethez.
- Opcionális: Ha van egy adatkészlet, amely magában foglalja a médiafájlokra való hivatkozásokat, add hozzáERDDAP... Például, lehet, hogy egy .csv fájl egy sor minden alkalommal, amikor valaki látott egy bálna és egy oszlop, amely magában foglalja a neve egy kép fájl kapcsolódik a látnivaló. Ha a képfájl neve csak a fájlnév, pl. Img20141024T192403Z, nem teljes URL, akkor hozzá kell adniaAccessBase Url és / vagy fájlAccessSuffixennek a metaadatnak a tulajdonságaidataVariableamely meghatározza az alapURL-t és elegendőt ezekhez a fájlnévekhez. Ha az EDDTableFromFileNames-on keresztül elérhető fájlokat készítette, az URL formában lesz alapUrl /erddap/files/ datasetID / Például,
<att name="fileAccessBaseUrl">*someBaseURL*</a>
<att name="fileAccessSuffix">.png</a>
Ha van egy.zipvagy más konténerfájl az összes adatváltozathoz kapcsolódó médiafájlmal, javasoljuk, hogy a fájl is hozzáférhető legyen a felhasználók számára (Lásd a fenti 1. lépést) Ezután azonosítsa azt egyAccessArchive Urltulajdonság.
\[KezdőlapERDDAP™v1.82\]Ha az első lépést tesszük fölött (vagy mindkét lépés) akkor, ha egy felhasználó megnézi aERDDAP™ "files"rendszer az adatkészlethez (vagy kéri, hogy az adathalmaz egy albeállítását egy.htmlTablekérés, ha megtette a második lépést) ,ERDDAP™"?" ikont mutat a fájlnév baljára. Ha a felhasználó átkapcsolja ezt az ikont, akkor egy popupot látnak, amely megmutatja a képet, vagy egy audiolejátszót, vagy egy videolejátszót. A böngészők csak korlátozott számú típusú támogatást nyújtanak
- kép (általában .gif, .jpg és .png) ,
- audio (általában .mp3, .ogg és .wav) és
- videofájlok (általában .mp4, .ogv és . webm) ...
Támogatás változatos különböző verziók különböző böngészők különböző operációs rendszerek. Tehát, ha van egy választás, hogy melyik fájltípus kínál, akkor van értelme, hogy ezeket a típusokat.
Vagy ha egy felhasználó kattint a fájlnévre, amelyet egyERDDAP™weboldal, böngészőjük a képet, az audio- vagy videofájlt külön weboldalként fogja megjeleníteni. Ez leginkább hasznos, hogy egy nagyon nagy kép vagy videó skálázott a teljes képernyő, ahelyett, hogy egy popup.
Az AWS S3 fájlokkal való együttműködés
Amazon Web szolgáltatás (AWS) egy eladójafelhő számításSzolgáltatások.S3az AWS által kínált objektumtároló rendszer. A hagyományos fájlrendszer hierarchikus rendszere és fájljai helyett (mint egy kemény meghajtó a PC-ben) Az S3 csak "bucketeket" kínál, amelyek "objekteket" tartanak (hívjuk őket"files") ...
Az ASCII fájlokhoz (pl.: .csv) ,ERDDAP™közvetlenül a vödörökben lévő fájlokkal dolgozhat. Az egyetlen dolog, amit meg kell tennie, az megadja a<fájlDir> az adatkészlethez egy adott formátumot használva az AWS bucket számára, például https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ ... Nem szabad használni<cacheFromUrl> Lásd alább részleteket.
De a bináris fájlokhoz (pl.:.nc, .grib, .bufr és.hdffájlok) Használnia kell<cacheFromUrl> rendszer az alábbiakban leírt.ERDDAPNetcdf-java (melyikERDDAP™használja az adatok olvasását ezekből a fájlokból) , és más tudományos adatszoftvereket úgy terveztek, hogy egy hagyományos fájlrendszerben dolgozzanak, amely kínálblokk szinthozzáférés fájlokhoz (amely lehetővé teszi, hogy elolvassa a zsákokat egy fájlból) , de az S3 csak ajánlatokfájlszint (objektum) hozzáférés fájlokhoz (amely csak lehetővé teszi az egész fájl olvasását) ... Az AWS alternatívát kínál az S3-nak,Elastic Block áruház (EBS) ), amely támogatja a blokk szintű hozzáférést a fájlokhoz, de drágább, mint az S3, ezért ritkán használják nagy mennyiségű adatfájl tárolására. (Tehát amikor az emberek azt mondják, hogy tárolja az adatokat a felhőben (S3) olcsó, általában almák narancsok összehasonlításához.)
S3 vödör
Egy vödör tartalma. kulcsok. Objects. Delimiters.
Technikailag az S3 bucketek nem szerveződnek egy hierarchikus fájlszerkezetben, mint egy fájlrendszer egy számítógépen. Ehelyett a vödrök csak "objekteket" tartalmaznak (fájlok) Mindegyiknek van egy "key" (név) ... Egy példa arra a kulcsra, hogy a noa-goes17 bucket
ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc
A megfelelő URl ehhez a tárgyhoz
Az AWS egy kis variációt támogat abban, hogy hogyan épül fel az URL, deERDDAP™megköveteli ezt az egy adott formátumot:
https://bucketName.s3.region.amazonaws.com/key
Ez a szokásos gyakorlat, mint ez a példa, hogy a kulcsfontosságú nevek úgy néznek ki, mint egy hierarchikus út, plusz egy fájlnév, de technikailag nem. Mivel ez gyakori és hasznos,ERDDAP™kezeli a kulcsokat / úgy, mintha egy hierarchikus út plusz fájl neve, és ez a dokumentáció hivatkozik rájuk. Ha egy vödör kulcsa nem használja / (pl. egy kulcs, mint egy kulcs,
ABI-Lib.2018.052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_s201805222475), majdERDDAP™Csak az egész kulcsot kezeli hosszú fájlnévként.
Private vs Public Buckets - Az S3 bucket adminisztrátora nyilvánosságra hozhatja a vödört és tartalmát. Ha nyilvános, a vödör bármely fájlját bárki letöltheti az URL-t a fájlhoz. Az Amazonnak van egyNyitott adatokprogram, amely nyilvános adatkészleteket tárol (beleértve az adatokatNOAA, NASA és USGS) ingyen, és nem számít fel senkinek, hogy letöltse a fájlokat ezekből a vödörökből. Ha egy vödör privát, a vödörben lévő fájlok csak az engedélyezett felhasználók és az AWS díjakhoz jutnak (általában a vödör tulajdonosa által fizetett) fájlok letöltése egy nem AWS S3 számítógépre.ERDDAP™adatokat dolgozhat nyilvános és privát vödörekben.
AWS Credentials
Hogy megtegye, hogyERDDAP™elolvashatja a privát vödör tartalmát, szüksége van AWS hitelesítő anyagokra, és tárolnia kell egy hitelesítő fájlt a szabványos helyen, ígyERDDAP™megtalálhatja az információt. Lásd az AWS SDK-tJava2.x dokumentáció:Az alapértelmezett hitelesítő anyagok beállítása... (Az értékek tárolásának lehetősége, mintJavaparancssori paraméterek a\[Tomcat\]/bin/setenv.sh lehet egy jó lehetőség.)
AWS /files/
- /files/ rendszer - AERDDAP™ /files/ rendszerlehetővé teszi a felhasználók számára, hogy letöltsék a forrásfájlokat egy adatkészlethez. Javasoljuk, hogy fordítsa ezt az összes adatlapot a forrásfájlokkal, mert sok felhasználó le akarja tölteni az eredeti forrásfájlokat.
- Ha a fájlok egy privát S3 vödörben vannak, a felhasználó kérése, hogy töltse le a fájlt, akkor kezeliERDDAP™, amely elolvassa az adatokat a fájlból, majd továbbítja a felhasználónak, így növeli a terhelést az Ön számáraERDDAP™bejövő és kimenő sávszélességet használva, és (aERDDAP™adminisztrátor) fizesse ki az adatok egress díját az AWS-nek.
- Ha a fájlok nyilvános S3 bucketben vannak, a felhasználó kérése, hogy töltse le a fájlt, átirányítva lesz az AWS S3 URL-re a fájlhoz, így az adatok nem fognak keresztülmenni.ERDDAP™Így csökkenti a terheléstERDDAP... És ha a fájlok egy Amazon Open Data (szabad) nyilvános vödör, akkor te (aERDDAP™adminisztrátor) Nem kell fizetnie semmilyen adat-egészségügyi díjat az AWS-nek. Így nagy előnye van az adatok nyilvános kiszolgálása (nem privát) S3 vödör, és hatalmas előnye az adatok kiszolgálásának az Amazon Open Data (szabad) vödör.
ERDDAP™AWS S3 vödör
ERDDAP™AWS S3 vödör
Szerencsére, sok erőfeszítés után,ERDDAP™számos olyan funkcióval rendelkezik, amelyek lehetővé teszik, hogy az S3 blokkszintű hozzáféréssel ésszerűen hatékonyan kezelje a fájlokhoz való hozzáférést:
- \[Hirdető: Az AWS S3 bucketekkel való munka sok extra munka. Az AWS egy hatalmas ökoszisztéma a szolgáltatásoknak és funkcióknak. Rengeteg tanulni. Időre és erőfeszítésre van sz ükség, de ez megvalósítható. Légy türelmes, és kapsz dolgokat dolgozni. Nézd / kérj segítséget
()AWS dokumentációolyan weboldalak, mintStack Overflowés a rendszeres
ERDDAP™támogatási lehetőségekHa/ha megragadsz.\]
- Nehéz megtudni a fájlok könyvtári struktúráját és fájlnevét egy S3 bucketben.ERDDAP™megoldás erre a problémára: az EDDTableFromFileNames speciális\\\*fromOnTheFlyopció, amely lehetővé teszi, hogy egy EDDTableFromFileNames adatkészletet készítsen, amely lehetővé teszi a felhasználók számára, hogy böngészjenek egy S3 bucket tartalmát (fájlok letöltése) az adatkészleten keresztül"files"opció. Van egyaz alábbiakban...
- ERDDAP™olvashat adatokatkülső tömörített adatfájlok, így rendben van, ha az S3 fájlokat tárolják.gz,.gzip,.bz2, .Z, vagy más típusú külsőleg tömörített adatfájlok, amelyek drámai módon (2 - 20X) csökkentse a fájltárolási költségeket. Gyakran nincs idő büntetés külsőleg tömörített fájlok használatára, mivel az S3 és az S3 közötti kisebb fájl átvitelével mentett időERDDAPdurván egyensúlyozza a szükséges extra időtERDDAP™dekompresszálni a fájlt. Használja ezt a funkciót, csak meg kell győződnie arról, hogy az adatkészlet<fájlNameRegex> lehetővé teszi a kompressált fájltípust (pl. hozzáadásával (|.gz) a regex végére) ...
- A leggyakoribb esetben, ahol van egyERDDAP™telepítve a PC-re a teszt / fejlesztéshez, és ahol az adatkészletnek bináris adatfájlja van, amelyeket objektumként tárolnak egy S3 bucketben, egy megközelítés az adatkészlet beszerzéséhezERDDAP™az:
-
Hozzon létre egy könyvtárat a PC-n, hogy tartson néhány teszt adatfájlot.
-
Töltse le a forrásból származó két adatfájlokat az Ön által létrehozott könyvtárba.
-
HasználatGenerateDatasetsXmllétrehozni a zsákotdatasets.xmla két helyi adatfájlon alapuló adatkészlet esetében.
-
Ellenőrizze, hogy ez az adatkészlet a kívánt módon működikDasDdsés/vagy a helyiERDDAP...
A következő lépések az adatkészlet másolatát teszik ki (amely adatokat kap az S3-ból) nyilvánosanERDDAP...
-
Másolja a zsákotdatasets.xmlaz adatkészlet számáradatasets.xmla nyilvánosság számáraERDDAP™ez szolgálja az adatokat.
-
Hozzon létre egy könyvtárat a nyilvánosság számáraERDDAPHelyi merevlemez az ideiglenes fájlok gyorsítótárának megtartásához. A könyvtár nem fog sok lemezterületet használni (lásd a cacheSizeGB alul) ...
-
Változtassa meg az adatkészlet értékét<fájlDir> címke, hogy pont a könyvtár, amit csak létrehozott (még akkor is, ha a könyvtár üres) ...
-
Adj hozzá egyCacheFromUrlcímke, amely meghatározza az adatkészlet vödör nevét és opcionális előtagját (i.e., könyvtár) az adottAws S3 URL formátumERDDAP™követelmények...
-
Adj hozzá egyet<cacheSizeGB>] (#cachefromurl) címke az adatkészlet xml (pl. a 10 jó érték a legtöbb adatkészlet számára) Mondd elERDDAP™korlátozni a helyi cache méretét (i.e., ne próbálja meg az összes távoli fájlt) ...
-
Lásd, hogy ez működik-e a nyilvánosságbanERDDAP... Vegye figyelembe, hogy az első alkalommalERDDAP™terheli az adatkészletet, hosszú időt vesz igénybe a terheléshez, mertERDDAP™le kell tölteni és el kell olvasni az összes adatfájlt.
-
Ha az adatkészlet hatalmas gyűjteménye a hatalmas hálózati adatfájloknak, ez nagyon hosszú időt vesz igénybe, és gyakorlati jellegű lesz. Bizonyos esetekben a rácsos adatfájlok esetében,ERDDAP™kivonhatja a szükséges információkat (pl. az adatok időpontja egy rácsos adatfájlban) a fájl neve és elkerülje ezt a problémát. LásdAggregáció keresztül File nevek...
- Opcionálisan (de különösen az EDDTableFromFiles adatkészletek esetében) Hozzáadhatsz egynHáromtagolja meg az adatkészletet, hogy elmondjaERDDAPtöbb mint 1 szál használata a felhasználó adatkérésére. Ez minimalizálja a késés hatásait, amelyek akkor fordulnak elő, amikorERDDAP™az adatfájlokat olvassa el (távolról) AWS S3 vödör a helyi csészébe és (talán talán talán talán talán) dekompresszálja őket.
AWS S3 nyílt adatok
részekéntNOAAABig Data Program,NOAAöt szervezettel, beleértve az AWS-t is, „a kulcsfontosságú megfigyelések és modellkimenetek másolatainak tárolásának lehetséges előnyeinek felfedezése a Cloud-ban, hogy lehetővé tegye a közvetlenül az adatokon történő számítást anélkül, hogy további elosztást igényelne”. Az AWS tartalmazza az általa kapott adatkészleteketNOAAprogramjának részeként nyilvános hozzáférést biztosít a nagy gyűjteményhezNyitott adatok AWS S3bármely számítógépről, legyen szó az Amazon kompute-ről (bérelt számítógép) az AWS hálózaton vagy a saját PC-n bármely hálózaton. Az alábbi példa feltételezi, hogy nyilvánosan hozzáférhető adatkészlettel dolgozol.
Hozzáférés Files egy AWS S3 Bucket
Egy privát S3 adatcsomag esetében a vödör tulajdonosának hozzáférést kell adnia a vödörhöz. (Lásd az AWS dokumentációt.)
Minden esetben szüksége lesz egy AWS fiókra, mert az AWS SDKJava (melyikERDDAP™az információ visszaszerzése egy vödör tartalmáról) megköveteli az AWS fiók hitelesítő adatait. (többet az alábbiakban)
ERDDAP™csak az AWS S3 vödörhöz férhet hozzá, ha megadja a [<cacheFromUrl> (#cachefromurl) (vagy<fájlDir>) egy adott formátumban:
https://bucketName.s3.aws-region.amazonaws.com/prefix/
ahol
- A bucketName a vödör neve rövid formája, pl. noaa-goes17.
- Az aws-region, például a kelet-1, a "Region" oszlop egyik táblázatában található.AWS Service Endpointsahol a vödör valójában található.
- Az előtag opcionális. Ha jelen van, akkor véget kell érnie'/'...
Például, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
Ez az URL formátum az egyik AWS S3 ajánlás: lásdBucket hozzáféréseésaz előtagok leírása...ERDDAP™megköveteli, hogy kombinálja a vödör URL-t és az opcionális előtagot egy URL-be annak érdekében, hogy meghatározza a<cacheFromUrl> (vagy<fájlDir>), ahol a fájlok találhatók.
Test Public AWS S3 Buckets
A nyilvános vödörök számára tesztelheti és tesztelheti az AWS S3 könyvtárának vödörét a böngészőben, pl. https://noaa-goes17.s3.us-east-1.amazonaws.com Ha a vödör URL helyes és megfelelőERDDAPvisszatér egy XML dokumentumhoz, amely rendelkezik (Részleges) e vödör tartalmának felsorolása. Sajnos a teljes URL (i.e., bucket URL plus prefix) azERDDAP™egy adott adatkészletet akar, nem működik egy böngészőben. Az AWS nem kínál rendszert, hogy a böngészőben könnyen böngészhesse a vödör hierarchiáját. (Ha ez helytelen, kérjük, e-mailben Chris. John at noaa.gov. Ellenkező esetben az Amazon, kérlek, adjon támogatást ehhez!)
Egy vödör tartalmának megtekintése
Az S3 buckets gyakran tartalmaz néhány fájlkategóriát, néhány pszeudo-közvetítőt, amelyek párERDDAP™adatkészletek. Ahhoz, hogy aERDDAP™adatkészletek, tudnia kell a kezdő könyvtárat<cacheFromUrl> (vagy<fájlDir>) és a fájl nevek formátuma, amelyek azonosítják a fájlok beállítását. Ha egy böngészőben megpróbálja megtekinteni a teljes tartalmat, az S3 csak az első 1000 fájlt mutatja be, ami elégtelen. Jelenleg a legjobb módja annak, hogy megnézze az összes tartalmat egy vödör, hogy egyEDDTableFromFileNamesadatkészlet (a PC-jénERDDAP™és/vagy a nyilvánosságraERDDAP) , amely egy egyszerű módja annak, hogy böngészje a könyvtári struktúrát és letöltse fájlokat. A<fájlDir> ez lesz az URL, amit fent tett, pl. https://noaa-goes17.s3.us-east-1.amazonaws.com ...\[Miért nem kínálja az AWS S3 gyors és egyszerű módját bárkinek, aki ezt AWS fiók nélkül teszi?\]Vegye figyelembe, hogy amikor ezt a PC-n egy nem Amazon hálózaton csinálom, úgy tűnik, hogy az Amazon lelassítja a trükkre adott válaszot (körülbelül 100 (?) fájlok / chunk) az első néhány darab után (1000 fájlból darabonként) letöltve. Mivel a vödrök hatalmas számú fájlt tartalmazhatnak (Noaa-goes17 26 millióval rendelkezik) , hogy az összes tartalmát egy vödör lehet venni EDDTableFromFileNames órák (pl. 12!) befejezni.\[Az Amazon igaz?\]
EDDTable készítése FromFileNames Dataset with AWS S3 Bucket
Ha van egy vödör neve, de nem rendelkezik már egy listát a fájlok az S3 vödör vagy az előtag, amely azonosítja a helyét a vonatkozó fájlokat a vödörben, használja az utasításokat, hogy az EDDTableFileNames adatkészlet, így böngészheti a könyvtár hierarchia az S3 vödör keresztülERDDAPA"files"rendszer.
- Nyisson meg egy AWS fiókot ERDDAP™Használja aAWS SDKJavahogy vödör információt kapjon az AWS-től, így meg kelllétrehozni és aktiválni egy AWS fiókot... Ez egy elég nagy munka, sok mindent megtanulni.
- Helyezze az AWS Credentials-ot, aholERDDAP™megtalálhatja őket. Kövesse az utasításokatAz AWS Credentials és a Fejlesztési Régió létrehozásaígyERDDAP™ (kifejezetten az AWS SDKJava) képes lesz megtalálni és használni az AWS hitelesítő adatait. HaERDDAP™nem találja meg a hitelesítő anyagokat, látni fogja a java.lang. IllegalArgumentException: profilfájl nem lehet null hibaERDDAPLog.txt fájl.
Hint for Linux és Mac OS: a hitelesítő fájlnak a Tomcat futó felhasználó otthoni könyvtárában kell lennie (ésERDDAP) (e bekezdés esetében a felhasználó=tomcat) egy ~/.aws/credentials nevű fájlban. Ne feltételezzük, hogy ~ a /home/tomcat - valójában használja a cd-t -, hogy megtudja, hol gondolja az operációs rendszer - a felhasználó=tomcat. Hozzon létre a könyvtárat, ha nem létezik. Továbbá, miután elhelyezte a hitelesítő fájlt, győződjön meg róla, hogy a fájl felhasználója és csoportja tomcat, majd használja a chmod 400 hitelesítőt, hogy megbizonyosodjon arról, hogy a fájl csak a felhasználói=tomcat.
- Hozzon létre a bucket URL-tformátum,ERDDAP™követelményekpl.: https://noaa-goes17.s3.us-east-1.amazonaws.com és (nyilvános vödrökkel) tesztelni egy böngészőben, hogy megbizonyosodjon arról, hogy visszatér egy XML dokumentum, amely részlegesen felsorolja a tartalmát a bucket.
- HasználatGenerateDatasetsXmllétrehozni egyEDDTableFromFileNamesadatkészlet:
-
A Starting könyvtárhoz használja ezt a szintaxot: \\" A-tól, YourBucketUrl* például, \\\*fromOnTheFly, https://noaa-goes17.s3.us-east-1.amazonaws.com/
-
File név regex? **
-
Visszatérő? Igaz
-
újratöltés EveryNMinutes? 10080
-
intézmény?NOAA
-
összefoglaló? Nincs semmi (ERDDAP™automatikusan egy tisztességes összefoglalót hoz létre.)
-
cím? Nincs semmi (ERDDAP™automatikusan létrehoz egy tisztességes címet.) A szokásos módon szerkesztenie kell az elért XML-t, hogy ellenőrizze a korrektséget, és javítson, mielőtt az adatkészletek zsunkja használja azt.datasets.xml...
-
- Ha követi a fenti utasításokat, és betölti az adatkészletetERDDAP, létrehozott egy EDDTableFromFiles adatkészletet. Példaként, és hogy megkönnyítse bárki számára, hogy böngészjen és letöltse az AWS Open Data buckets fájlokat, létrehoztuk az EDDTableFromFileNames adatkészleteket (lásd a listát a listán az AWS Open Data buckets-ből).
https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) szinte az összesAWS S3 Open Data buckets...
\[A kevesek, akiket nem tartalmaztunk, vagy számos fájlt tartalmaztak a gyökérkönyvtárban (több, mint letölthető ésszerű idő alatt) vagy nem engedélyezi a nyilvános hozzáférést (Nem ők mind nyilvánosak?) vagy a Requester Pays buckets (pl. Sentinel) ...\]
Ha rákattintasz a"files"link az egyik ilyen adatkészlethez, böngészheti a könyvtárfát és a fájlokat ebben az S3-ban. Az út miatt\\\*fromOnTheFly EDDTableFromFiles működik, ezek a könyvtári listák mindig tökéletesen naprakészek, mertERDDAP™a repülésen kapja meg őket. Ha rákattint a könyvtárfára egy tényleges fájlnévre, és kattintson a fájlnévre,ERDDAP™átirányítja kérését az AWS S3-ra, hogy közvetlenül letölthesse a fájlt az AWS-től. Ezután ellenőrizheti ezt a fájlt.
Hiba? Ha az EDDTableFromFiles nem tölt beERDDAP™ (vagy DasDds) Nézze meg a log.txt fájlt egy hibaüzenethez. Ha látsz egyet java.lang. IllegalArgumentException: profilfájl nem lehet null hiba, a probléma az, hogy az AWS SDKJava (használtERDDAP) nem találja meg a hitelesítő fájlt. Lásd a hitelesítő utasításokat fent.
Sajnálatos, hogy az AWS nem egyszerűen lehetővé teszi, hogy az emberek egy böngészőt használhassanak, hogy megnézzék egy nyilvános vödör tartalmát.
Aztán megtehetedERDDAP™olyan adatkészletek, amelyek hozzáférést biztosítanak a felhasználóknak az adatokhoz a fájlokban.
Lásd az utasításokatERDDAP™S3 vödör (felett) ...
A minta EDDTableFromFileNames adatkészlet, amelyet fent készített, ha egy kicsit feküdt a könyvtár és a fájl nevek a könyvtárban, egyértelművé válik, hogy a felső szintű könyvtár nevek (pl.: ABI-L1b-RadC) megfelel annak, amitERDDAP™külön adatkészleteknek neveznék. A vödör, amellyel dolgozol, hasonló lehet. Ezután külön adatkészleteket hozhat létreERDDAP™az egyes adatkészletek esetében, például,
https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
mint<cacheFromUrl> Sajnos ebben a példában az adatkészletek a vödörben úgy tűnik, hogy az 1. vagy 2. szintű adatkészletek, amelyekERDDAP™ nem különösebben jóMivel az adatkészlet bonyolultabb változógyűjtemény, amely különböző dimenziókat használ.
NcML fájlok
NcML fájlok lehetővé teszik, hogy megadja az on-the-fly változások egy vagy több eredeti forrásNetCDF (v3 vagy v4) .nc, .grib, .bufr vagy.hdf (v4 vagy v5) fájlok, majdERDDAP™kezelni.ncml fájlok, mint a forrásfájlok.ERDDAP™Az adatkészletek elfogadják.ncml fájlok, amikor.ncA fájlok várhatóak. Az NcML fájlok MUST van a kiterjesztés.ncml. Lásd:UnidataNcML dokumentáció... NcML hasznos, mert lehet csinálni néhány dolgot vele (például különböző változásokat hozva a különböző fájlokra egy gyűjteményben, beleértve a fájlhoz adott dimenziót egy adott értékkel.) ,, hogy nem tehetsz veleERDDAPAdatasets.xml...
- Változások egy.ncml fájl utolsóModified idő okozza a fájlt, hogy újratöltsék, amikor az adatkészletet újratöltik, de az alapul szolgáló változások.ncAz adatfájlokat nem fogják közvetlenül észrevenni.
- Hint: NcML\*nagyon\*érzékeny néhány elem megrendelése az NcML fájlban. Gondolj az NcML-re, mint egy sor utasítást a megadott sorrendben, azzal a szándékkal, hogy megváltoztatja a forrásfájlokat (az állam az NcML fájl kezdetén/topján) a rendeltetési fájlokba (az állam az NcML fájl végén / alján) ...
Az NcML alternatívája azNetCDFÜzemeltetők (NCO) ... A nagy különbség az, hogy az NcML egy olyan rendszer, amely megváltoztatja a repülést (így a forrásfájlok nem változnak) , mivelNCOfelhasználhatók a változásokhoz (vagy új verziók) a fájlok. MindkettőNCOés az NcML nagyon, nagyon rugalmas, és lehetővé teszi, hogy szinte bármilyen változást gondoljon a fájlokra. Mindkét esetben kihívást jelenthet, hogy pontosan kitalálja, hogyan kell csinálni, amit szeretne csinálni - ellenőrizze az internetet hasonló példákra. Mindkettő hasznos eszköz a netCDF ésHDFfájlok használatraERDDAP- különösen, hogy a változásokat túlmutassuk azon, hogy miERDDAPA manipulációs rendszer megteheti.
Példa # 1: Idő dimenzió hozzáadása egy egységes értékkel Itt van egy.ncml fájl, amely létrehoz egy új külső dimenziót (Idő, 1 értékkel: 1041379200) és hozzáadja ezt a dimenziót a pic változójához az A2003001.L3m\_DAY\_PIC\_pic\_4km nevű fájlban.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>
Példa #2: A meglévő időérték megváltoztatása Néha a forrás.nca fájl már rendelkezik idő dimenzióval és időértékkel, de az érték helytelen (az Ön céljaira) ... Ez a.ncml fájl azt mondja: az "19810825230030-NCEI" nevű adatfájl esetében a dimenzió változója"time", állítsa be az egységek tulajdonságát, hogy "második 1970-01-01T00:00Z", és meghatározza az időértéket, hogy 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>
NetCDFÜzemeltetők (NCO)
„A netCDF üzemeltetők (NCO) tartalmaz egy tucat önálló, parancssori programokat, amelyek netCDF\[v3 vagy v4\],HDF \[v4 vagy v5\],\[.grib, .bufr,\]vagyDAPfájlok mint bemenet, majd működnek (pl. új adatok, kompute statisztikák, nyomtatás, hiperslab, manipulálja a metaadatát) és adja ki az eredményeket a szövegben, bináris vagy netCDF formátumban való képernyőre vagy fájlokra.NCOtámogatások elemzése rácsos tudományos adatok. A shell-parancs stílusaNCOlehetővé teszi a felhasználók számára, hogy interaktív módon manipulálják és elemezzék a fájlokat, vagy kifejező szkriptekkel, amelyek elkerülik a magasabb szintű programozási környezetek egy részét.” (aNCOWeboldal) ...
alternatívaNCOazNcML... A nagy különbség az, hogy az NcML egy olyan rendszer, amely megváltoztatja a repülést (így a forrásfájlok nem változnak) , mivelNCOfelhasználhatók a változásokhoz (vagy új verziók) a fájlok. MindkettőNCOés az NcML nagyon, nagyon rugalmas, és lehetővé teszi, hogy szinte bármilyen változást gondoljon a fájlokra. Mindkét esetben kihívást jelenthet, hogy pontosan kitalálja, hogyan kell csinálni, amit szeretne csinálni - ellenőrizze az internetet hasonló példákra. Mindkettő hasznos eszköz a netCDF ésHDFfájlok használatraERDDAP- különösen, hogy a változásokat túlmutassuk azon, hogy miERDDAPA manipulációs rendszer megteheti.
Például használhatóNCOhogy az idő egységei változóak legyenek egy olyan fájlcsoportban, ahol eredetileg nem voltak következetesek. Vagy használhatNCOalkalmazniscale\_factorésadd\_offsetegy olyan fájlcsoportban, aholscale\_factorésadd\_offsetkülönböző értékekkel rendelkezik a különböző forrásfájlokban. (Vagy most kezelheti ezeket a problémákatERDDAP™keresztülEDDGridFromNcFilesUnpackEz egy változataEDDGridFromNcFiles, amelyek csomagolt adatokat csomagolnak, és alacsony szinten szabványosítják az időértékeket annak érdekében, hogy kezeljék a gyűjtőfájlokat, amelyek eltérőekscale\_factorésadd\_offsetvagy különböző időegységek.)
NCOIngyenes és nyílt forráskódú szoftver, amely aGPL 3.0licenc.
Példa # 1: Egységek konzisztens készítése
EDDGridFromFiles és EDDTable A Files ragaszkodik ahhoz, hogy az egy adott változó egységei azonosak legyenek az összes fájlban. Ha néhány fájl triviálisan (nem funkcionális) másoktól eltérő (pl. időegységek
"Seconds 1970-01-01 00:00 UTC" versus
"seconds since 1970-01-01T00:00:00Z"HasználhatnádNCOANövény. megváltoztatni az egységeket az összes fájlban, hogy azonos legyen
nco/catted - egy egység, idő, o,c, másodpercek 1970-01-01T00:00Z \*.nc
\[Sok probléma, mint ez az EDDTableFrom... Files adatkészletek, most használhatjaszabványosítás AmitMondd elERDDAPszabványosítani a forrásfájlokat, ahogy olvassákERDDAP...\]
Korlátozza az adatkészlet méretét
Sok hivatkozást fogsz látni a "2 milliárd" alatt. Pontosabban, ez egy hivatkozás 2,147,483,647 (2^31-1) amely a 32 bites aláírt integrál maximális értéke. Egyes számítógépes nyelveken példáulJava (melyikERDDAP™be van írva) Ez a legnagyobb adattípus, amelyet sok adatstruktúrára lehet használni (például egy tömb mérete) ...
Erős értékek (például a változó nevek, a tulajdonság nevek, a String attribute értékek és a String adatértékek) , a legnagyobb számú karakter per String inERDDAP™2 milliárd. De szinte minden esetben kicsi vagy nagy probléma lesz, ha a String meghaladja az ésszerű méretet (pl. 80 karakter a változó nevekhez és a tulajdonságnevekhez, és 255 karakter a legerősebb tulajdonsági értékekhez és adatértékekhez) ... Például olyan weboldalak, amelyek hosszú változó neveket jelenítenek meg, kényelmetlenül szélesek lesznek, és a hosszú változó neveket kivonják, ha túllépik a válaszfájltípus határát.
A rácsos adatkészletek esetében:
- A maximális számaxisVariableS ~2 milliárd. A maximális számdataVariableS ~2 milliárd. De ha egy adatkészletnek van >100 változója, akkor nehéz lesz használni a felhasználókat. És ha egy adatkészletnek 1 millió változója van, akkor a szervernek sok fizikai memóriára van szüksége, és más problémák is lesznek.
- Az egyes dimenziók maximális mérete (axisVariable) 2 milliárd érték.
- Azt hiszem, a cellák maximális teljes száma (az összes dimenziós méret terméke) korlátlan, de lehet ~9e18.
A tabuláris adatkészletek esetében:
- A maximális számdataVariableS ~2 milliárd. De ha egy adatkészletnek van >100 változója, akkor nehéz lesz használni a felhasználókat. És ha egy adatkészletnek 1 millió változója van, akkor a szervernek sok fizikai memóriára van szüksége, és más problémák is lesznek.
- A legtöbb forrás (például fájlok) Ez összesíthető - 2 milliárd.
- Bizonyos esetekben az egyéni forrásból származó sorok maximális száma (Például egy fájl, de nem adatbázis) 2 milliárd sor.
- Nem hiszem, hogy vannak más határok.
Mind a rácsos, mind a mentő adatkészletek esetében vannak belső határértékek az aljzat méretére vonatkozóan, amelyet a felhasználó kérhet egyetlen kérelemben. (gyakran kapcsolódik a >2 milliárd valami vagy ~9e18 valami) , de sokkal valószínűbb, hogy a felhasználó eléri a fájltípusspecifikus határokat.
- NetCDFverzió 3.ncA fájlok 2GB byte-re korlátozódnak. (Ha ez valóban problémát jelent valakinek, hadd tudjam: Hozzáadhatnám a támogatástNetCDFverzió 3.nc64 bites kiterjesztés vagyNetCDFA 4. verzió, amely jelentősen növelné a határt, de nem végtelenül.)
- Böngésző összeomlik csak ~ 500 MB adat, ígyERDDAP™korlátozza a válaszot.htmlTable~400MB adatkérés.
- Számos adatelemzési program hasonló korlátokkal rendelkezik (Például a méret maximális mérete gyakran ~ 2 milliárd érték) Tehát nincs ok arra, hogy keményen dolgozzon a fájltípusspecifikus határok körül.
- A fájltípus-specifikus határok hasznosak abban, hogy megakadályozzák a naiv kérelmek valóban hatalmas mennyiségű adat (Például: "add meg nekem az összes adatkészletet", amikor az adatkészlet 20TB adatkészlettel rendelkezik) , amely heteket vagy hónapokat vesz igénybe a letöltéshez. Minél hosszabb a letöltés, annál valószínűbb, hogy sokféle ok miatt kudarcot vall.
- A fájltípus-specifikus határok hasznosak abban, hogy arra kényszerítik a felhasználót, hogy kezelje ésszerűen méretű alkatrészeket (például egy nagy hálózatú adathalmaz kezelése fájlokon keresztül, egy alkalommal adatokkal, minden alkalommal) ...
Váltás ACDD-1.3
Mi vagyunk (nevezetesenGenerateDatasetsXml) Jelenleg ajánlottACDD verzió 1.3, amelyet 2015 elején ratifikáltak, és amelyet „ACDD-1.3”-nak neveznek a globális egyezményekben. ElőzőERDDAP™verzió 1.62 (megjelent 2015 júniusában) ,ERDDAP™használt/ajánlotta az eredeti, 1.0 verziót,NetCDFAttribute Convention for Dataset Discoveryamelyet "-nak" neveztek.UnidataDataset Discovery v1.0" a globális egyezményekben ésMetadata\_Conventionstulajdonságok.
Ha az adatkészletek az ACDD korábbi verzióit használják, akkor RECOMMEND-re váltunk az ACDD-1.3-ra. Nem nehéz. Az ACDD-1.3 nagyon visszafelé kompatibilis az 1.0 verzióval. Átváltani minden adatkészletet (kivéve, kivéveEDDGridFromErddap és EDDTable FromErdp adatkészletek) :
- Távolítsa el az újonnan deprekált globálisMetadata\_Conventionsattribútum hozzáadása (vagy a meglévő megváltoztatásávalMetadata\_Conventionstulajdonság)
<att name="Metadata\\_Conventions">null</att>
az adatkészlet globális<addAttributes>. 2. Ha az adatkészlet rendelkezik a globálisan jellemző egyezményekkel<addAttributes> változtassa meg az összes "UnidataDataset Discovery v1.0" hivatkozások az "ACDD-1.3"-ra. Ha az adatk észlet nem rendelkezik a globális egyezményekkel<addAttributes> aztán hozzáadjuk az ACDD-1.3-at. Például,
<att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>
3. Ha az adatkészlet globálisstandard\_name\_vocabularyattribútum, kérjük, változtassa meg az érték formátumát, például,
<att name="standard\\_name\\_vocabulary">CF Standard Name Table v65</att>
Ha a hivatkozás egy régebbi verzióra vonatkozikCF standard névtáblázat... valószínűleg jó ötlet a jelenlegi verzióra váltani (65, ahogy ezt írjuk) Mivel az új szabványos neveket hozzáadjuk az asztalhoz a későbbi verziókkal, de a régi szabványos neveket ritkán deprekálják, és soha nem távolítják el. 4. Bár az ACDD-1.0 globális tulajdonságokat tartalmazottcreator\_name,creator\_email,creator\_url,GenerateDatasetsXmlnem tette automatikusan hozzá őket, amíg valamikor körülERDDAP™v1.50. Ez fontos információ:
- creator\_namelehetővé teszi a felhasználók számára, hogy ismerjék/meghatározzák az adatkészlet létrehozását.
- creator\_emailelmondja a felhasználóknak a preferált e-mail címet az adatkészlet létrehozásához, például, ha kérdéseik vannak az adatkészlettel kapcsolatban.
- creator\_urllehetőséget ad a felhasználóknak arra, hogy többet megtudjanak az alkotóról.
- ERDDAP™az összes információt az FGDC és az ISO 19115-2/19139 metaadat-dokumentumok generálásakor használja minden adatkészlethez. Ezeket a dokumentumokat gyakran külső keresési szolgáltatások használják.
Kérjük, adja hozzá ezeket a tulajdonságokat az adatkészlet globális<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>
Ez az. Remélem, ez nem túl nehéz.
Zarr
2.25 verzióERDDAP™olvasható helyi Zarr fájlok használatávalEDDTableFromNcFilesésEDDGridFromNcFiles...
(2019 augusztusától) Könnyen tévedhetünk, de még nem vagyunk meggyőződve arról, hogyZarrvagy hasonló rendszerek, amelyek az adatfájlokat kisebb darabokra bontják, nagyszerű megoldások a probléma aERDDAP™a felhőszolgáltatásokban tárolt adatok, mint az Amazon AWS S3. Zarr egy nagyszerű technológia, amely számos helyzetben megmutatta hasznosságát, nem vagyunk biztosak abban, hogyERDDAP+S3 lesz az egyik ilyen helyzet. Többnyire azt mondjuk: mielőtt sietnénk, hogy az összes adatot Zarrban tároljuk, végezzünk teszteket, hogy lássuk, valójában jobb megoldás.
Az adatokhoz való hozzáféréssel kapcsolatos problémák a felhőben a latencia (a lag, hogy először kap adatokat) fájlszintű hozzáférés (a blokkszintű hozzáférés helyett) ... Zarr megoldja a fájlszintű hozzáférési problémát, de semmit sem tesz a latencia. Összehasonlítva, hogy csak letöltse a fájlt (így lehet olvasni, mint egy helyi fájlt blokk szintű hozzáféréssel) Zarr még súlyosbíthatja a latencia problémát, mert Zarr-val a fájl olvasása most számos hívássorozatot tartalmaz a fájl különböző részei olvasásához (mindegyik saját laggal) ... A latenciaproblémát a kérések párhuzamosan meg lehet oldani, de ez egy magasabb szintű megoldás, nem Zarrtól függ.
Zárral (mint a kapcsolati adatbázisokkal) Elveszítjük azt a kényelmet, hogy egy adatfájl egy egyszerű, egyetlen fájl, amely könnyen ellenőrizheti az integritását, vagy letöltés egy példányt.
ERDDAP™ (mint v2) rendszerrel rendelkezik a helyi fájlok tárolására egy URL forrásból (pl. S3) (lásd)<cacheFromUrl> és<cacheMaxGB>] (#cachefromurl) ). Az új [<nThreads>] (#nthreads) minimalizálja a latencia problémát az adatátvitel magas szintű párhuzamosságával.<A cacheFromUrl> nagyon jól működik sok forgatókönyv esetében. (Nem vagyunk biztosak abban, hogy mennyire hasznosak vagyunk<nThreads> további tesztek nélkül.) Bevalljuk, hogy nem végeztünk időzítési teszteket egy AWS-en, jó hálózati kapcsolattal, de sikeresen teszteltünk különböző távoli URL-forrásokkal. ÉsERDDAPA<cacheFromUrl> bármilyen típusú adatfájllal működik (pl.:.nc,.hdf, .csv,.jsonlCSV) még akkor is, ha külsőleg tömörített (pl.:.gz) , a fájlok módosítása nélkül (pl. Zarr gyűjteményként újraírni őket) ...
Valószínű, hogy a különböző forgatókönyvek különböző megoldásokat, például csak egy fájl egy részét kell elolvasni egyszer (Zarr győzni fog) vs. egyszer el kell olvasnia az összes fájlt, vs.-nek ismételten el kell olvasnia a részét vagy az összes fájlt.<cacheFromUrl> győzni fog.
Többnyire azt mondjuk: mielőtt sietnénk, hogy az összes adatot Zarrban tároljuk, végezzünk teszteket, hogy lássuk, valójában jobb megoldás.
A típusok adatbázisainak listája
Ha segítségre van szüksége a megfelelő adatkészlet kiválasztásában, lásdAz adatkészlet típusának kiválasztása...
Az adatkészletek típusai két kategóriába tartoznak. (Miért?)
EDDGrid
- EDDGrid Az adatkészletek kezelik a hálózati adatokat.
- InkábbEDDGridadatkészletek, adatok változói többdimenziós adatsorok.
- Ott lehet egy tengely változó minden dimenzióban. Axis változók MUST van meghatározva annak érdekében, hogy az adatok változók használja őket.
- InkábbEDDGridadatkészletek, minden adatváltozat MUST használat (Részvény) az összes tengely változó. (Miért? Mi van, ha nem?)
- Osztott dimenziós értékek - MindenEDDGridadatkészletek, minden dimenzió MUST rendezett rendben (Felemelkedés vagy leszármazás) ... Mindegyik szabálytalanul helyet foglalhat. Nem lehetnek kapcsolatok. Ez a követelmény aCF metaadat szabvány... Ha bármely dimenzió értéke nem rendezett rendben van, az adatkészlet nem lesz betöltve ésERDDAP™azonosítja az első fel nem szorított értéket a logfájlban, bigParentDirectory[szerkesztés] /logs/log.txt .
Néhány alosztálynak további korlátozásai vannak (különösen,EDDGridAz AggregateExistingDimension megköveteli, hogy a külső (balra, első) dimenzió felemelkedjen.
A nem szorított dimenziós értékek szinte mindig problémát jelentenek a forrásadatokkal. Ez a leggyakrabban akkor fordul elő, amikor egy tévhit vagy nem megfelelő fájl szerepel a gyülekezetben, ami egy szorulatlan idő dimenzióhoz vezet. A probléma megoldásához lásd a hibaüzenetetERDDAP™log.txt fájl, hogy megtalálja a megsértő időértéket. Ezután nézze meg a forrásfájlokat, hogy megtalálja a megfelelő fájlt (vagy egy előtt vagy után) ez nem tartozik a gyülekezetbe.
- Lásd a teljesebb leírástEDDGridadatmodell...
- AEDDGridadatkészlettípusok:
- EDDGridFromAudioFilesösszesíti az adatokat egy csoport helyi audio fájlokat.
- EDDGriddalszövegkezeli a rácsos adatokatDAPszerverek.
- EDDGridFromEDDTablelehetővé teszi, hogy egy mesés adatállományt egy rácsolt adatkészletbe konvertáljon.
- EDDGridFromErdaprajtolt adatok kezelése egy távolbólERDDAP...
- EDDGridFromEtopocsak kezeli a beépített ETOPO topográfiai adatokat.
- EDDGridFájlokaz összes szuperosztályEDDGridA... Files osztályok.
- EDDGridFromMergeIRFilesösszesíti a helyi MergeIR csoport adatait.gzfájlok.
- EDDGridFromNcFilesösszesíti az adatokat egy helyi csoportbólNetCDF (v3 vagy v4) .ncés kapcsolódó fájlok.
- EDDGridFromNcFilesUnpackvariáns, haEDDGridFromNcFiles, amely adatokat is gyűjt egy helyi csoportbólNetCDF (v3 vagy v4) .ncés kapcsolódó fájlok, amelyekERDDAP™alacsony szintű csomagok.
- EDDGridLonPM180módosítja a gyermek hosszúsági értékeitEDDGridhogy a -180-180-as tartományban vannak.
- EDDGridLon0360módosítja a gyermek hosszúsági értékeitEDDGridhogy a 0-360-as tartományban vannak.
- EDDGridSideBySideaggregál két vagy többEDDGridadatkészletek oldalról oldalra.
- EDDGridAggregateExistingDimenzióaggregál két vagy többEDDGridadatkészletek, amelyek mindegyikének különböző értékei vannak az első dimenzióban, de azonos értékek a többi dimenzió számára.
- EDDGridMásoláslétrehozhat egy másik helyi másolatotEDDGridAz adatok és szolgálja az adatokat a helyi másolatból.
- MindenEDDGridAz adatkészletek támogatják az nThreads beállítást, ami azt mondjaERDDAP™hány szálat kell használni, amikor válaszol egy kérésre. Lásd:nHáromdokumentáció a részletekért.
EDDTable
- EDDTable Az adatkészletek kezelik a mesés adatokat.
- A tabuláris adatok adatbázis-szerű táblázatként szolgálhatnak sorokkal és oszlopokkal. Minden oszlop (egy adat változó) van egy név, egy sor tulajdonság, és tárol csak egy típusú adat. Minden sornak van egy megfigyelése (vagy a kapcsolódó értékek csoportja) ... Az adatforrás más adatstruktúrában, bonyolultabb adatstruktúrában és/vagy több adatfájlban is rendelkezhet, deERDDAP™képesnek kell lennie arra, hogy a forrásadatokat adatbázisszerű táblázatba helyezze annak érdekében, hogy az adatokat takaró adatkészletként jelenítse meg a felhasználók számáraERDDAP...
- Lásd a teljesebb leírástEDDTable adatmodell...
- Az EDDTable adatkészlet típusai:
- EDDTableFromAllDatasetsegy magasabb szintű adatkészlet, amely információkkal rendelkezik az összes többi adatkészletről az ÖnbenERDDAP...
- EDDTableFromAsciiFilesösszesíti az adatokat a comma-tól, a tab-tól, a szemicolon-tól, vagy az űrválasztott tabuláris ASCII adatfájloktól.
- EDDTableFromAsciiServiceaz összes EDDTableFromAsciiService... osztályok szuperosztálya.
- EDDTableFromAsciiServiceNOSadatokat kezel egyesektőlNOAANOS webszolgáltatások.
- EDDTableFromAudioFilesösszesíti az adatokat egy csoport helyi audio fájlokat.
- EDDTableFrom AwsXmlFilesösszesíti az adatokat egy sor Automatic Weather Station (AWS) XML fájlok.
- EDDTableFromCassandrakezeli a mesés adatokat egy Cassandra asztalról.
- EDDTableFromColumnarAsciiFilesösszesíti a tabuláris ASCII adatfájlok adatait rögzített szélességi adatoszlopokkal.
- EDDTableFromDapSequencekezeli a mentő adatokatDAPSequence szerverek.
- EDDTableFromDatabasekezeli a mentő adatokat egy adatbázis táblából.
- EDDTableFromEDDGridlehetővé teszi, hogy létrehozzon egy EDDTable adatkészletet egyEDDGridadatkészlet.
- EDDTableFromErddapkezeli a mesés adatokat távolrólERDDAP...
- EDDTableFromFileNamesAdatkészletet hoz létre a szerver fájlrendszerében lévő fájlok csoportjáról, de nem szolgálja az adatokat a fájlokban.
- EDDTableFromFilesaz összes EDDTableF felülete... Files osztályok.
- EDDTableFromHttpGetazERDDAP„Csak az adatimport és az adatexport rendszere.
- EDDTableFromHyraxFiók (Meghatározva) összesíti a fájlok adatait több változóval, amelyeket megosztott dimenziók szolgálnak egyHyrax OPeNDAPszerver...
- EDDTableFromInvalidCRAFilesösszesített adatokNetCDF (v3 vagy v4) .ncfájlok, amelyek egy adott, érvénytelen, változata a CF DSG Contiguous Ragged Array (CRA) fájlok. BárERDDAP™támogatja ezt a fájltípust, ez egy érvénytelen fájltípus, amelyet senkinek nem kell használnia. Azok a csoportok, amelyek jelenleg ezt a fájltípust használják, erősen ösztönzik a használatraERDDAP™hiteles CF DSG CRA fájlok generálására, és hagyja abba ezeket a fájlokat.
- EDDTableFromJsonlCSVFilesösszesített adatokJSON Lines CSV fájlok...
- EDDTableFromMultidimNcFilesösszesített adatokNetCDF (v3 vagy v4) .nctöbb változóval rendelkező fájlok közös dimenziókkal.
- EDDTableFromNcFilesösszesített adatokNetCDF (v3 vagy v4) .nctöbb változóval rendelkező fájlok közös dimenziókkal. Jó, ha továbbra is használja ezt az adatkészlettípust a meglévő adatkészletekhez, de új adatkészletek esetében inkább az EDDTableFromMultidimNcFiles használatát javasoljuk.
- EDDTableFromNcCFFilesösszesített adatokNetCDF (v3 vagy v4) .ncfájlokat, amelyek az egyik fájlformátumot használják, amelyet aCF Discrete Sampling Geometries (DSG) egyezmények. De az egyik multidimenzionális CF DSG változatot használó fájlokhoz, használjonEDDTableFromMultidimNcFilesEhelyett.
- EDDTableFromNccsvFilesösszesített adatokNCCSVASCII .csv fájlok.
- EDDTableFromNOS (Meghatározva) kezeli a mentő adatokat az NOS XML szerverektől.
- EDDTableFromOBISkezeli a mentő adatokat az OBIS szervereitől.
- EDDTableFromParquetFilesadatok kezeléseParquet...
- EDDTableFromSOSkezeli a mentő adatokatSOSszerverek.
- EDDTableFromThreddsFiles (Meghatározva) összesíti a fájlok adatait több változóval, amelyeket megosztott dimenziók szolgálnak egyHírekOPeNDAPszerver...
- EDDTableFromWFSFiók (Meghatározva) helyi másolatot készít az összes adatról egyArcGISMapServerWFSszerver, így az adatok gyorsan továbbíthatókERDDAP™felhasználók.
- EDDTableAggregateRowsEDDTable adatkészletet készíthet egy EDDTable adatkészletből.
- EDDTableCopyhelyi másolatot készíthet sokféle EDDTable adatkészletből, majd gyorsan megőrizheti az adatokat a helyi másolatból.
Adatkészlettípusok részletes leírása
EDDGriddalszöveg
EDDGriddalszöveg kezeli a hálózati változókatDAPszerverek.
- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Összegyűjtheti azokat az információkat, amelyekre szüksége van, hogy csípjen vagy létrehozza a saját XML-jét egyEDDGridFromDap adatkészlet a forrásadatlap DDS és DAS fájlok megtekintésével a böngészőben (.das és .dds hozzáadásasourceUrlPéldául, https://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day.dds ) ...
- EDDGridFromDap adatokat kaphat bármilyen többdimenziós változóbólDAPadatkiszolgáló. (Korábban,EDDGridFromDap korlátozott volt a változók kijelölt "széles", de ez már nem követelmény.)
- Osztott dimenziós értékek - Az értékek minden dimenzióban MUST lehet rendezett rendben (Felemelkedés vagy leszármazás) ... Az értékek szabálytalanul helyreállhatnak. Nem lehetnek kapcsolatok. Ez a követelmény aCF metaadat szabvány... Ha bármely dimenzió értéke nem rendezett rendben van, az adatkészlet nem lesz betöltve ésERDDAP™azonosítja az első fel nem szorított értéket a logfájlban, bigParentDirectory[szerkesztés] /logs/log.txt .
A nem szorított dimenziós értékek szinte mindig problémát jelentenek a forrásadatokkal. Ez a leggyakrabban akkor fordul elő, amikor egy tévhit vagy nem megfelelő fájl szerepel a gyülekezetben, ami egy szorulatlan idő dimenzióhoz vezet. A probléma megoldásához lásd a hibaüzenetetERDDAP™log.txt fájl, hogy megtalálja a megsértő időértéket. Ezután nézze meg a forrásfájlokat, hogy megtalálja a megfelelő fájlt (vagy egy előtt vagy után) ez nem tartozik a gyülekezetbe.
EDDGridFromDap csontváz XML
<dataset type="EDDGridFromDap" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromDap, this gets the remote .dds and then gets the new
leftmost (first) dimension values. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
</dataset>
EDDGridFromEDDTable
EDDGridFromEDDTable lehetővé teszi, hogy egy EDDTable tabuláris adatállományt egyEDDGridmegrúgott adatkészlet. Ne feledje, hogyERDDAP™kezeli az adatkészleteket, mint akárHálózott adatkészletek (alosztályokEDDGrid) vagy mesés adatkészletek (EDDTable alosztályai) ...
- Normális esetben, ha megrúgta az adatokat, csak egyEDDGridadatkészlet közvetlenül. Néha ez nem lehetséges, például, ha van olyan adat, amelyet egy kapcsolati adatbázisban tárolnakERDDAP™csak az EDDTableFromDatabase-on keresztül érhető el.EDDGridFromEDDTable osztály lehetővé teszi, hogy orvosolja ezt a helyzetet.
- Nyilvánvaló, hogy a mögöttes EDDTable adatkészletben szereplő adatoknak az alapul szolgáló EDDTable adatkészletben kell szerepelniük. (alapvetően) fúrt adatok, de takaró formában. Például az EDDTable adatkészletnek CTD-adatai lehetnek: a keleti és északi jelenlegi mérések, több mélységben, többször. Mivel a mélységek minden alkalommal azonosak,EDDGridFromEDDTable hozhat létre egy rácsos adatkészletet egy időben és egy mélység dimenzióval, amely az adatokat az alapul szolgáló EDDTable adatkészleten keresztül éri el.
- GenerateDatasets Xml -- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Összegyűjtheti azokat az információkat, amelyekre szüksége van a durva tervezet javítására.
- Forrás tulajdonságok -- Mint minden más típusú adatkészlet esetében,EDDGridFromTable van az ötlet, hogy vannak globális forrásAttributes ésglobálisaddAttributes (meghatározottdatasets.xml) kombinálva a globális kombináltságot tulajdonságok, melyeket a felhasználók látnak. A globális forrásAttributes,EDDGridFromEDDTable használja a globális kombinált Az alapul szolgáló EDDTable adatkészlet tulajdonságai. (Ha egy percig gondolsz rá, akkor van értelme.)
Hasonlóképpen, mindenki számáraaxisVariableésdataVariableAaddAttributes,EDDGridFromEDDTable használja a változó kombinált Az alapul szolgáló EDDTable adatkészlet tulajdonságai, mintEDDGridFromEDDTable változó forrásAttributes. (Ha egy percig gondolsz rá, akkor van értelme.)
Következésképpen, ha az EDDTable jó metaadatokkal rendelkezik, azEDDGridFromEDDTable gyakran szüksége van nagyon kevésaddAttributesmetadata - csak néhány csípő itt és ott.
-
dataVariableversusaxisVariableS - A mögöttes EDDTable csakdataVariableS. EgyEDDGridFromEDDTable adatkészlet lesz néhányaxisVariables (az EDDTable közül néhánydataVariables) NéhánydataVariables (a fennmaradó EDDTabledataVariables) ...GenerateDatasetsXmlkitalálja, hogy melyik EDDTabledataVariableS váljonEDDGridFromEDDTableaxisVariableS, de csak egy kitalált. A GenerateDatasetsXml kimenetét módosítania kell annak meghatározására, hogy melyikdataVariableleszaxisVariables, és melyik sorrendben.
-
AxisValues - Nincs semmi a mögöttes EDDTable-ről, hogy elmondjaEDDGridFromEDDTable a lehetséges értékek aaxisVariables az adatkészlet rácsos változatában, így minden egyes információt megadjaaxisVariableezen tulajdonságok egyikén keresztül:
- axisValues - lehetővé teszi, hogy meghatározza az értékek listáját. Például, <att name="axisValues"dalszöveg: DoubleList2,5, 3,3.5, 4</att> Vegye figyelembe egy használatátadattípusplusz a lista sz ó. Szintén a lista típusa (például kettős) MUST megfelel az adatoknak A változó típusa az EDDTable ésEDDGridFromEDDTable adatkészletek.
- axisValuesStartStrideStop - lehetővé teszi, hogy megjelölje a rendszeres terhelt értékek sorozatát azáltal, hogy meghatározza a kezdetet, a szélsőséget és az értékeket. Itt van egy példa, amely egyenértékű a tengelyValues példa fent: <att name="axisValuesStartStrideStop"dalszöveg: DoubleList\>2, 0,5, 4</att> Ismét vegye figyelembe egy lista adattípus használatát. Szintén a lista típusa (például kettős) MUST megfelel az adatoknak A változó típusa az EDDTable ésEDDGridFromEDDTable adatkészletek.
Frissítések - Ahogy nincs mód arra, hogyEDDGridFromEDDTable, hogy meghatározza a tengelyValues az EDDTable kezdetben, nincs megbízható módja annak, hogy aEDDGridFromEDDTable, hogy meghatározza az EDDTable, amikor a tengelyValues változott (különösen, ha új értékek vannak az idő változójához) ... Jelenleg az egyetlen megoldás az, hogy megváltoztassa az axisValues tulajdonságátdatasets.xmlés újratöltse az adatkészletet. Például írhatsz egy forgatókönyvet
- Keresésdatasets.xmlMert datasetIDÓ ADatasetID "..." így a megfelelő adatkészlettel dolgozol.
- Keresésdatasets.xmla következő előfordulásért
AVariablesSourceName
így a helyes változóval dolgozol. - Keresésdatasets.xmla következő előfordulásért
<att name="axisValuesStartStrideStop" type="doubleList">
így ismeri a címke kezdeti pozícióját. 4. Keresésdatasets.xmla következő előfordulásért
</att>
így ismeri a tengelyértékek végső pozícióját. 5. Helyettesítse a régi indulást, merüljön fel, állítsa le az értékeket az új értékekkel. 6. Kapcsolatfelvétel azászló URLaz adatkészlet számára, hogy elmondjaERDDAP™az adatkészlet újratöltéséhez.
Ez nem ideális, de működik.
- precizitás - MikorEDDGridFromEDDTable válaszol a felhasználó kérésére az adatok, ez mozog egy sor adatot az EDDTable válasz táblába aEDDGridválasz rács. Ehhez ki kell találni, hogy az adott sorban lévő "axis" értékek egy adott sorban megfelelnek-e a tengelyértékek kombinációjának a hálózatban. Az integrált adattípusok esetében könnyen meghatározható, hogy két érték egyenlő-e. De az úszók és a duplák esetében ez felveti a lebegő pontszámok szörnyű problémájátnem egyezik pontosan... (például 0,2 versus 0.19999999996) ... Hogy (próbálkozni) foglalkozz ezzel,EDDGridFromTable lehetővé teszi, hogy meghatározza a pontos tulajdonság bármelyike számáraaxisVariables, amely meghatározza a decimális számjegyek teljes számát, amelyeknek azonosnak kell lenniük.
- Például,<att name="precision" típusú="int">5</att>
- A különböző típusú adatok változói, vannak különböző alapértelmezett pontossági értékek. Az alapértelmezések általában megfelelőek. Ha nem, meg kell határoznia a különböző értékeket.
- MertaxisVariablei.Idő vagy idő Stamp változókAz alapértelmezés teljes pontosságú (pontos mérkőzés) ...
- MertaxisVariables amelyek úszók, az alapértelmezett pontosság 5
- MertaxisVariableduplák, az alapértelmezett pontosság 9.
- MertaxisVariableaz integrált adattípusok,EDDGridAz FromEDDTable figyelmen kívül hagyja a pontosságot, és mindig teljes pontosságot használ (pontos mérkőzés) ...
- FIGYELEM! Amikor egy csomó tabuláris adatot átváltoztat egy zsúfolt adatokba, haEDDGridAz FromEDDTable nem tud egy EDDTable "axis" értéket elérni az egyik várhatóanEDDGridFromEDDTable axis értékek,EDDGridFromEDDTable csendesen (Nincs hiba) dobja el az adatokat az asztal sorából. Például lehetnek más adatok (nem a rácson) az EDDTable adatkészletben. (És ha sztride > 1, nem nyilvánvaló, hogyEDDGridA táblázatból, amely a tengelyértékek kívánt értékek, és melyek azok, akiket a törzs miatt kell kihagyni.) Tehát, ha a pontossági értékek túl magasak, a felhasználó hiányzó értékeket lát az adatválaszban, amikor az érvényes adatértékek ténylegesen léteznek.
Ezzel szemben, ha a pontossági értékek túl alacsonyak, EDDTable "axis" értékeket állítanak fel, amelyeknek nem kell megfelelniükEDDGridFromEDDTable axis értékek (tévesen) Meccs.
Ezek a potenciális problémák szörnyűek, mert a felhasználó rossz adatokat kap (vagy hiányzó értékek) ha megfelelő adatokat kell kapniuk (vagy legalább hibaüzenet) ... Ez nem egy hibásEDDGridFromTable.EDDGridFromTable nem tudja megoldani ezt a problémát. A probléma a tabuláris adatok áttérésében rejlik a rácsos adatokba (kivéve, ha más feltételezéseket lehet tenni, de nem tehetik itt) ... Ez rajtad múlik,ERDDAP™adminisztrátor, teszteljeEDDGridFromEDDTable alaposan annak biztosítása érdekében, hogy a pontossági értékek elkerüljék ezeket a potenciális problémákat.
gapThreshold
- gapThreshold- Ez egy nagyon szokatlan adatkészlet. Mivel a lekérdezések típusai, amelyeket meg lehet tenni (kezeli) egyEDDGridadatkészlet (a tartományokhoz és a merényletekhez kapcsolódóanaxisVariables) nagyon különböznek attól a típusú kérdésektől, amelyeket meg lehet tenni (kezeli) EDDTable adatkészlet (csak néhány változó tartományához kapcsolódik) , a teljesítményEDDGridAz FromEDDTable adatkészletek nagymértékben változnak attól függően, hogy milyen pontos kérésre kerül sor, és az alapul szolgáló EDDTable adatkészlet sebessége. Olyan kérelmek esetében, amelyeknek szilárd értéke van > 1,EDDGridFromEDDTable kérheti a mögöttes EDDTable egy viszonylag nagy mennyiségű adat (ha sztride=1) Ezután az eredményeken keresztül, bizonyos sorokból tartva az adatokat, és eldobva az adatokat másoktól. Ha sok adatot kell átszűrnie, hogy megkapja a szükséges adatokat, a kérés hosszabb időt vesz igénybe.
HaEDDGridFromEDDTable elmondhatja, hogy nagy hiányosságok lesznek (nem kívánt adatok sorával) a kívánt adatokkal rendelkező sorok között,EDDGridFromEDDTable úgy dönthet, hogy több albekezdést tesz az alapjául szolgáló EDDTable-nek, ahelyett, hogy egy nagy kérés lenne, ezáltal kihagyva az adatok nem kívánt sorát a nagy szakadékokban. A döntés érzékenységét a gapThreshold érték irányítja, amint azt a<gapThreshold> címke (default=1000 sor forrásadatok) ... A gapThreshold beállítása egy kisebb számhoz vezet az adatkészletkészítéshez (általában általában) további alkérdések. A gapThreshold beállítása egy nagyobb számhoz vezet az adatkészletkészítéshez (általában általában) Kevésbé kérelmek.
Ha a gapThreshold túl kicsi,EDDGridAz FromEDDTable lassabban működik, mert a többszörös kérések túlnyomó része nagyobb lesz, mint az által, hogy túlzott adatokat kapjon. Ha a gapThreshold túl nagy,EDDGridAz FromEDDTable lassan működni fog, mert az EDDTable-ből annyi túlzott adat kerül visszakerülésre, csak el kell távolítani. (Ahogy a Goldilocks felfedezte, a közép "csak helyes".) A különböző típusú EDDTable adatkészletek túlnyomórésze nagyban változik, így az egyetlen módja annak, hogy megismerje az adatkészlet tényleges legjobb beállítását kísérletezéssel. De nem fog túl rosszul ragaszkodni az alapértelmezéshez.
Egy egyszerű példa: Képzelj el egyetEDDGridTable csak egyaxisVariable (idő, mérete 100000) EgydataVariable (hőmérséklet) , és az alapértelmezett gapThreshold 1000.
- Ha egy felhasználó hőmérsékletet kér\[0💯5000\]A sztride 100, így a szakadék mérete 99, ami kevesebb, mint a gapThreshold. SzóvalEDDGridAz FromTable csak egy kérést tesz lehetővé az EDDTable számára a kérelemhez szükséges összes adatért (a hőmérséklet\[0:5000\]) és dobja el az összes adatsort, amire nincs szüksége.
- Ha egy felhasználó hőmérsékletet kér\[0:2500:5000\]Ez a sztride 2500, így a szakadék mérete 2499, ami nagyobb, mint a gapThreshold. SzóvalEDDGridA táblázat külön kéréseket tesz az EDDTable-hez, amelyek megfelelnek a hőmérsékletnek\[0 0\], hőmérséklet\[2500\], hőmérséklet\[5000\]...
A szakadék méretének kiszámítása bonyolultabb, ha több tengely van.
Minden felhasználó kérésére,EDDGridFromEDDTable nyomtatás diagnosztikai üzenetek ezzel kapcsolatban ebben aLog.txtfájl.
- [[Ha]]<logLevel>] (#loglevel) bennedatasets.xmlInfo-ra van beállítva, ez olyan üzenetet nyomtat, mint \* nOuterAxes=1 4 nOuterRequests=22 Ha az nOuterAxes=0, a gapThresholdat nem haladták meg, és csak egy kérést fognak tenni az EDDTable-hez. Ha a nOuterAxes>0, a gapThresholdat túllépték, és a nOuterRequests az EDDTable-hez kerül, amely megfelel a baloldali nOuterAxes minden kért kombinációjának. Például, ha az adatkészlet 4axisVariableésdataVariablemint kelet\[Idő\]\[magasság\]\[hosszúság\]\[mélység\]A baloldal (először) A tengely változó az idő.
- Ha<LogLevel> bennedatasets.xmlbe van állítva, további információkat írnak a log.txt fájlra.
EDDGridFromEDDTable csontváz XML
<dataset type="EDDGridFromEDDTable" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromEDDTable, this only works if the underlying EDDTable
supports updateEveryNMillis. -->
<gapThreshold>...</gapThreshold> <!-- 0 or 1. The default is 1000. >
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
<dataset>...</dataset> <!-- The underlying source EDDTable dataset. -->
</dataset>
ED*AERDDAP
EDDGridFromErdap rajtolt adatok kezelése egy távolbólERDDAP™szerver. EDDTableFromErddap kezeli a mesés adatokat távolrólERDDAP™szerver.
- EDDGridFromErddap és EDDTableFromErddap másképp viselkednek az összes többi adatkészletbőlERDDAP...
- Mint más típusú adatkészletek, ezek az adatkészletek információkat kapnak a forrásból származó adatkészletről, és emlékezetben tartják.
- Mint más típusú adatkészletek, amikorERDDAP™adatkészletek keresése, megjeleníti az adathozzáférési formanyomtatványt ( datasetID .html) vagy megjeleníti a Make A Graph forma ( datasetID .gráf) ,ERDDAP™a memóriában található adatkészlettel kapcsolatos információkat használja.
- EDDGridFromErddap és EDDTable FromErddap az alapjahálók/klaszterek/szövetségekaERDDAPs, amely hatékonyan terjeszti a CPU használatát (többnyire térképek készítéséhez) memóriafelhasználás, adatkészlet-tárolás és sávszélesség egy nagy adatközpont használatával.
Átirányítás
- Más típusú adatkészletekkel ellentétben, amikorERDDAP™kérelmet kap ezekből az adatokból vagy képekből,ERDDAP átirányítása távoli kérelemERDDAP™szerver. Az eredmény:
- Ez nagyon hatékony (CPU, memória és sávszélesség) mert egyébként
- A kompozitERDDAP™meg kell küldeni a kérést a másiknakERDDAP™ (amely időt vesz igénybe) ...
- A másikERDDAP™meg kell szereznie az adatokat, meg kell reformálnia, és továbbítja az adatokat az összetettnekERDDAP...
- A kompozitERDDAP™meg kell kapni az adatokat (sávszélesség) megreformálja (CPU és memória használata) és továbbítja az adatokat a felhasználónak (sávszélesség) ... A kérelem átirányításával és a másik engedélyezésévelERDDAP™a válasz közvetlenül a felhasználóra, az összetettERDDAP™lényegében nincs CPU idő, memória vagy sávszélesség a kérésre.
- Az átirányítás átlátható a felhasználó számára az ügyfélszoftvertől függetlenül (böngésző vagy más szoftver vagy parancssor eszköz) ...
- Ez nagyon hatékony (CPU, memória és sávszélesség) mert egyébként
- ElmondhatjaERDDAP™nem átirányítani minden felhasználói kérelmet a beállítással<Átirányítás>hamis</redirect>, de ez negates a legtöbb előnye a ...FromErddap adatkészlet típus (nevezetesen, szétszórva a terhelést a front végénERDDAP™a távoli / backendERDDAP) ...
Előfizetések
Normális esetben, ha egyEDDGridFromErddap és EDDTable FromErddap (Újra) Töltsd be magadERDDAPPróbálnak feliratot adni a távoli adatkészlethez távolrólERDDAPe-mail/URL előfizetési rendszer. Így, amikor a távoli adatkészlet megváltozik, a távoliERDDAP™Kapcsolatok asetDataset Flag URLa teERDDAP™Annak érdekében, hogy a helyi adatkészlet újratöltse az ASAP-ot, és hogy a helyi adatkészlet mindig tökéletesen naprakész legyen, és bevándorolja a távoli adatkészletet. Tehát, az első alkalommal, amikor ez megtörténik, kap egy e-mailt, amely arra kéri, hogy érvényesítse az előfizetést. Ha azonban a helyiERDDAP™nem küldhet e-mailt, vagy ha a távoliERDDAP"Az e-mail / URL előfizetési rendszer nem aktív, el kell küldenie a távoliERDDAP™adminisztrátor és kéri, hogy a s/he manuálisan adja hozzá [[szerkesztés]]]<onChange>] (#onchange) ...</onChange> címkék az összes releváns adatkészlethez, hogy felhívja az adatkészletétsetDataset Flag URL-ek... Lásd:ERDDAP™napi jelentés a setDataset listájáról zászló URL-ek, de csak küldje el aEDDGridFromErddap és EDDTableFromErddap adatkészletek a távoliERDDAP™adminisztrátor.
Ez nem működik? A helyi adatkészletek nem maradnak szinkronban a távoli adatkészletekkel? Számos dolognak helyesen kell működnie ehhez a rendszerhez ahhoz, hogy az adatkészletek naprakészek maradjanak. Ellenőrizze ezeket a dolgokat rendben:
- AERDDAP™Képesnek kell lennie e-maileket küldeni. Lásd az e-mail beállításokat a setup.xml-ben.
- Általában (de nem mindig) A teERDDAPA<alapUrl> és<baseHttpsUrl> nem rendelkezik portszámmal (pl.:8080, :8443) ... Ha igen, használjon egyProxypasstávolítsa el a kikötőt az Urltól.
- A beállításban.xml,<Az SubscribeToRemoteErddapDataset>-t igaznak kell alávetni.
- Amikor a helyi EDD... FromErddap adatkészlet újratöltése, meg kell küldeni a kérést a távoliERDDAP™feliratkozni a távoli adatkészletre. Nézze meg a log.txtot, hogy megnézze, ez megtörténik-e.
- Kell kapni egy e-mail kéri, hogy érvényesítse az előfizetési kérést.
- Kattintson az e-mailben lévő linkre az előfizetési kérelem érvényesítéséhez.
- A távoliERDDAP™Azt kell mondani, hogy az érvényesítés sikeres volt. Bármikor kérhet egy e-mailt a távolitólERDDAP™a függő és érvényes előfizetések listájával. Lásd a formát Távol-ErddapBase Url /erddap/subscriptions/list.html .
- Amikor a távoli adatkészlet megváltozik (pl. további adatokat kap) A távoliERDDAP™Próbáljon meg kapcsolatba lépni a flagURL-rel az ÖnénERDDAP... Nem ellenőrizheti ezt, de megkérdezheti a távoli adminisztrátortERDDAP™ellenőrizni ezt.
- AERDDAP™kérelmet kell kapnia annak megállapítására, hogy a flagURL. Nézze meg a log.txtot a "setDatasetFlag.txt?" kérésre (s) és nézze meg, hogy van-e hibaüzenet a kérelmekkel kapcsolatban.
- AERDDAP™meg kell próbálni újratölteni ezt az adatkészletet (talán nem azonnal, de ASAP) ...
up-to-date max (Idő) ?
EDDGrid/TableFromErddap adatkészletek csak megváltoztatja a tárolt információkat minden forrás adatkészlet, ha a forrás adatkészlet"Reload"és néhány metaadat megváltozik (pl. az idő változójaactual\_range) Ezáltal előfizetési értesítést generál. Ha a forrásadatlap olyan adatokkal rendelkezik, amelyek gyakran változnak (például minden második új adat) és használja a"frissítés"rendszer, hogy észrevegyük a gyakori változásokat az alapul szolgáló adatok,EDDGrid/TableFromErddap nem értesíti ezeket a gyakori változásokat, amíg a következő adatkészlet "reload", így aEDDGrid/TableFromErddap nem lesz tökéletesen naprakész. Ezt a problémát minimalizálhatja a forrásadatlap megváltoztatásával<ReloadEveryNMinutes> egy kisebb értékhez (60? 15?) hogy több előfizetési értesítést kapjon, hogy elmondja aEDDGrid/TableFromErddap, hogy frissítse az információt a forrás adatkészlet.
Vagy ha az adatkezelő rendszere tudja, hogy a forrásadatbázisnak új adatai vannak (pl. egy olyan forgatókönyven keresztül, amely másol egy adatfájl helyére) És ha ez nem szuper gyakori (pl. minden 5 percben, vagy kevésbé gyakori) Van egy jobb megoldás:
- Ne használja<frissítésEveryNMillis> a forrásadat naprakész tárolására.
- Állítsa be a forrásadatkészletet<ReloadEveryNMinutes> egy nagyobb számba (1440?) ...
- Vedd fel a forgatókönyvet a forrásadatkészlettelzászló URLközvetlenül, miután másol egy új adatfájl helyére.
Ez vezet a forrásadathoz, hogy tökéletesen naprakész legyen, és azt eredményezi, hogy előfizetési értesítést generáljon, amelyet elküldnekEDDGrid/TableFromErddap adatkészlet. Ez vezetni fogEDDGrid/TableFromErddap adatkészlet, hogy tökéletesen naprakész (jól, 5 másodpercen belül az új adatok hozzáadása) ... És mindez hatékonyan fog történni (felesleges adatkészlet-reloads nélkül) ...
NemaddAttributes,axisVariablevagydataVariable
Ellentétben más típusú adatkészletek, EDDTableFromErddap ésEDDGridFromErddap adatkészletek nem teszik lehetővé a globális<addAttributes>,<axisVariableGt; vagy<dataVariableGt; szakaszok adatasets.xmlaz adatkészlethez. A probléma az, hogy lehetővé tegyék, hogy ezek ellentmondásokhoz vezetjenek:
- Tegyük fel, hogy megengedett, és hozzáadott egy új globális tulajdonságot.
- Amikor egy felhasználó kériERDDAP™a globális tulajdonságok tekintetében az új tulajdonság megjelenik.
- De amikor egy felhasználó kériERDDAP™egy adatfájl, az ÖnERDDAP™átirányítja a forrás iránti kérelmetERDDAP... AzERDDAP™nem ismeri az új tulajdonságot. Tehát, ha létrehoz egy adatfájlot metaadatokkal, pl. egy.ncfájl, a metaadatnak nem lesz új tulajdonsága.
Két munkakörnyezet van:
- Konvince a forrás adminjaERDDAP™a metaadatára vonatkozó változásokat.
- Az EDDTableFromErddap helyett használjaEDDTableFromDapSequence... Vagy helyetteEDDGridFromErddap, használatEDDGriddalszöveg... Ezek az EDD típusok lehetővé teszik, hogy hatékonyan kapcsolódjon egy adatkészlethez egy távolrólERDDAP™ (de adatkérések átirányítása nélkül) és lehetővé teszik, hogy globális<addAttributes>,<axisVariableGt; vagy<dataVariableGt; szakaszok adatasets.xml... Egy másik különbség: manuálisan kell feliratkoznia a távoli adatkészletre, hogy az adatkészlet az Ön számáraERDDAP™értesülni fognak (keresztülzászló URL) amikor változások vannak a távoli adatkészletben. Így új adatkészletet hoz létre, ahelyett, hogy egy távoli adatkészlethez kapcsolódna.
Egyéb jegyzetek
- Biztonsági okokból,EDDGridFromErddap és EDDTable FromErddap nem támogatja a [[szerkesztés]]]<hozzáférhetőTo> (#Ccessibleto) címke és nem használható távoli adatkészletekkel, amelyek bejelentkezést igényelnek (mert használnak).<hozzáférhetőTo> (#Ccessibleto) ). LásdERDDAPAbiztonsági rendszerbizonyos adatkészletekhez való hozzáférés korlátozása bizonyos felhasználók számára.
- KezdőlapERDDAP™v2.10,EDDGridFromErddap és EDDTableFromErddap támogatja a [[szerkesztés]]<hozzáférhetőViaFiles>] (#Ccessibleviafiles) Tag. Ellentétben más típusú adatkészletek, az alapértelmezett igaz, de az adatkészlet fájlok lesz hozzáférhetőViaFiles csak akkor, ha a forrás adatkészlet is rendelkezik<hozzáférhetőViaFiles> az igazhoz.
- Használhatja aGenerateDatasets Xml programHogy adatasets.xmlcunk az ilyen típusú adatkészlethez. De ezeket a típusú adatkészleteket könnyen kézzel teheti meg.
EDDGridFromErddap csontváz XML
- EDDGridFromErddap csontváz Az XML adathalmaz nagyon egyszerű, mert a szándék csak a távoli adathalmazt jelenti, amely már alkalmas a használatra.ERDDAP:
<dataset type="EDDGridFromErddap" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<accessibleViaFiles>...</accessibleViaFiles> <!-- 0 or 1, default=true. -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1
For EDDGridFromErddap, this gets the remote .dds and then gets
the new leftmost (first) dimension values. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<redirect>true(default)|false</redirect> <!-- 0 or 1; -->
</dataset>
EDDTableFromErddap csontváz XML
- A Skeleton XML egy EDDTableFromErddap adatkészlethez nagyon egyszerű, mert a szándék csak a távoli adatkészletet jelenti, amely már alkalmas a használatra.ERDDAP:
<dataset type="EDDTableFromErddap" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<redirect>true(default)|false</redirect> <!-- 0 or 1; -->
</dataset>
EDDGridFromEtopo
EDDGridFromEtopo Csak szolgálja aETOPO1 Global 1-Minute Gridded Elevation Adatkészlet (Ice Surface, grid regisztrált, bináris, 2byte int: etopo1\_ice\_g\_i2.zip) amely szét van osztvaERDDAP...
- Csak kettődatasetIDtámogatást nyújtanakEDDGridFromEtopo, így hozzáférhet az adatokhoz a hosszúsági értékek -180-180, vagy a hosszúsági értékek 0-360.
- Soha nincsenek alcímek, mivel az adatok már leírtakERDDAP...
- Tehát a két lehetőség aEDDGridFromEtopo adatkészletek (szó szerint) :
<!-- etopo180 serves the data from longitude -180 to 180 -->
<dataset type="EDDGridFromEtopo" datasetID="etopo180" />
<!-- etopo360 serves the data from longitude 0 to 360 -->
<dataset type="EDDGridFromEtopo" datasetID="etopo360" />
EDDGridFájlok
EDDGridFájlok az összes szuperosztályEDDGridA... Files osztályok. Nem használhatodEDDGridFromFiles közvetlenül. Ehelyett használjon egy alosztálytEDDGridFromFiles kezelni az adott fájltípust:
- EDDGridFromMergeIRFileskezeli az adatokat a hálózatbólMergeIR.gzfájlok.
- EDDGridFromAudioFilesösszesíti az adatokat egy csoport helyi audio fájlokat.
- EDDGridFromNcFileskezeli az adatokat a hálózatbólGRIB .grbfájlok,HDF (v4 vagy v5) .hdffájlok,.ncml mlfájlok ésNetCDF (v3 vagy v4) .ncfájlok. Ez működhet más fájltípusokkal (Például a BUFR) Mi csak nem teszteltük - kérjük, küldjön nekünk néhány minta fájlokat, ha érdekel.
- EDDGridFromNcFilesUnpackegy változataEDDGridFromNcFiles, amely kezeli az adatokat a rácsosNetCDF (v3 vagy v4) .ncés kapcsolódó fájlok, amelyekERDDAP™alacsony szintű csomagok.
Jelenleg nem támogatnak más fájltípusokat. De általában viszonylag könnyű támogatni más fájltípusokat. Lépjen kapcsolatba velünk, ha van kérése. Vagy, ha az adatai egy régi fájlformátumban vannak, amelyet el akarsz költözni, javasoljuk, hogy a fájlok átalakítása legyenNetCDFv3.ncfájlok.NetCDFszéles körben támogatott, bináris formátum, lehetővé teszi a gyors véletlenszerű hozzáférést az adatokhoz, és már támogatottERDDAP...
Files részletekből
A következő információ az összes alosztályra vonatkozikEDDGridFromFiles.
Egy létező dimenzió aggregációja
Minden variációEDDGridFromFiles összesítheti az adatokat a helyi fájlokból, ahol minden fájl 1 (vagy többet) különböző értékek a baloldal számára (először) dimenzió, általában\[Idő\], amely összesítve lesz. Például a dimenziók lehetnek\[Idő\]\[magasság\]\[magasság\]\[hosszúság\], és a fájlok lehetnek az adatok egy (vagy néhány) Időérték (s) egy fájl. Az ebből eredő adatkészlet úgy tűnik, mintha az összes fájl adatát kombinálták volna. Az aggregáció nagy előnyei:
- Az összesített adatkészlet mérete sokkal nagyobb lehet, mint egy fájl kényelmesen (2GB) ...
- A közeli valós idejű adatokhoz könnyű új fájlt hozzáadni a legfrissebb adatcsomaggal. Nem kell újraírnia az egész adatkészletet.
Az aggregáció követelményei:
- A helyi fájloknak nem kell azonosakdataVariables (az adatkészletben meghatározottak szerintdatasets.xml) ... Az adatkészletnek leszdataVariabledefiniáltdatasets.xml... Ha egy adott fájlnak nincs egy adottdataVariable,ERDDAP™szükség szerint hozzáadja a hiányzó értékeket.
- MindendataVariableMUST ugyanazt használjaaxisVariables/dimenziók (az adatkészletben meghatározottak szerintdatasets.xml) ... A fájlokat az első alapján összesítik (baloldali) dimenzió, rendezve felemelkedő sorrendben.
- Minden fájl MAY van adatok egy vagy több értéke az első dimenzió, de nem lehet átfedés között fájlokat. Ha egy fájlnak több mint egy értéke van az első dimenzióban, a MUST értékeket felemelkedő sorrendben kell rendezni, kötelék nélkül.
- Minden fájl MUST pontosan ugyanazokat az értékeket az összes többi dimenzióban. A vizsgálat pontosságát a tesztelés határozza megAxisNDigits...
- Minden fájl MUST pontosan ugyanazegységMetaadata mindennekaxisVariableésdataVariableS. Ha ez egy probléma, akkor használható lehetNcMLvagyNCOa probléma megoldására.
Aggregáció File Names vagy Global Metadata
Minden variációEDDGridAz FromFiles is összesítheti a fájlok egy csoportját azáltal, hogy új baloldalt ad hozzá (először) dimenzió, általában idő, az egyes fájlnévből származó érték alapján, vagy az egyes fájlokban található globális tulajdonság értékétől függően. Például a fájlnév magában foglalhatja az adatok időértékét a fájlban.ERDDAP™akkor hozzon létre egy új idő dimenziót.
Ellentétben a hasonló jellemző a THREDDS,ERDDAP™mindig teremtaxisVariablenumerikus értékekkel (a CF által előírt) Soha nem erős értékek (amelyet nem engedélyeznek a CF) ... SzinténERDDAP™rendezi a fájlokat a számon alapuló összességébenaxisVariableaz egyes fájlokhoz rendelt érték, hogy a tengely változója mindig a CF által előírt értékeket rendezze. A THREDS megközelítése, hogy egy lexikográfiai fajta, amely a fájlnéveken alapul, aggregációkhoz vezet, ahol a tengelyértékek nem rendeződnek (amelyet nem engedélyeznek a CF) ha a fájl nevek másképp rendeződnek, mint amilyennek a származottaxisVariableértékek.
Az egyik ilyen aggregáció létrehozásaERDDAP™Új baloldalt fogsz meghatározni (először) axisVariablekülönleges, pseudo<sourceName>, amely azt mondjaERDDAP™hol és hogyan találjuk meg az új dimenzió értéket minden fájlból.
- A Pseudo formátumasourceNameamely megkapja az értéket egy fájlnévből (Just filename.ext) az \\" fájlName, adatok típus , KivonatRegex , ElfogadásGroupNumber*
- A Pseudo formátumasourceNameamely megkapja az értéket egy fájl abszolút útnevéről \\" PathName, adatok típus , KivonatRegex , ElfogadásGroupNumber* \[Ehhez az út neve mindig használja'/'mint a rendezői szeparátor karakter, soha nem ''.\]
- A Pseudo formátumasourceNameamely az értéket globális tulajdonságból szerezi, \\" globális: tulajdonság név , adatok típus , KivonatRegex , ElfogadásGroupNumber*
- Ez a pseudosourceNamemásképp működik a többiektől: ahelyett, hogy új baloldalt hoznánk létre (először) axisVariableEz helyettesíti a jelenlegi értékétaxisVariablea fájlnévből kivont értékkel (Just filename.ext) ... A formátum az \\" helyettesítő FromFileName, adatok típus , KivonatRegex , ElfogadásGroupNumber*
A megadott alkatrészek leírása:
- tulajdonság név - a globális tulajdonság neve, amely minden fájlban van, és amely tartalmazza a dimenzió értéket.
- adatok típus - Ez meghatározza azokat az adattípusokat, amelyeket az értékek tárolására használnak. Lásd a standard listátadatok típusokazERDDAP™támogatás, kivéve, hogy a String nem engedélyezett itt a tengelyváltoztatások ótaERDDAP™Nem lehet String változók.
Van egy további pseudo adattípus, időFormat= Szilárd TimeFormat Amit mondERDDAP™az érték egy sztring időStampA szigorú időkre alkalmas egységek... A legtöbb esetben a stringTimeFormat lesz egy variáció az egyik ilyen formátumban:
- yyyy-MM-ddT'HH:mm:ss.SSSZ - amely ISO 8601:2004 (EZ) dátumidő formátum. Szüksége lehet egy rövidített verzióra, például,yyyy-MM-ddT'HH:mm:ss vagyyyyy-MM-dd...
- yyyMddHHmmss.SSS - amely az ISO 8601 dátumidő formátumának kompakt verziója. Lehet, hogy szüksége van egy rövidített változata ennek, például yyyMMddHmmss vagy yyyMMMdd.
- M/d/yyyy H:mm:ss.SSS - ami az amerikai slash dátumformátum. Szükség lehet egy rövidített változata ennek, pl. M/d/yyyy.
- yyyDDHHmmssSSS - ez az év, plusz az év nulla beadott napja (pl, 001 = Jan 1, 365 = Dec 31 egy nem-levő évben; ez néha tévesen nevezik Julian dátum) ... Szüksége lehet egy rövidített változata ennek, például yyyyDD.
Ha ezt a pseudo adattípust használja, add hozzá ezt az új változóhoz<addAttributes>:
<att name="units">seconds since 1970-01-01T00:00:00Z</att>
Ha el akarja cserélni az összes időértéket, változtassa az időértéket az egységekben, pl. 1970-01-01T12:00Z.
- KivonatRegex - Ez azrendszeres kifejezés (tutorial) amely magában foglalja a rögzítő csoportot (parentheses) amely leírja, hogyan lehet kivonni az értéket a fájlnévből vagy a globális tulajdonságértékből. Például egy fájlnév, mint S19980011998031.L3b\_MO\_CHL.nc, rögzítő csoport #1, "\dtutorial„A rendszeres kifejezésben S ("\dtutorial) "\dtutorial\.L3b.\* az első 7 számjegyet a „S” után fogja megragadni: 1998001.
- ElfogadásGroupNumber - Ez a rögzítő csoport száma (egy pár parentheses) a rendszeres kifejezésben, amely tartalmazza az érdeklődésre vonatkozó információkat. Általában 1, az első rögzítő csoport. Néha a rögzítő csoportokat más célokra kell használnia a regexben, így a fontos rögzítő csoportszám 2 lesz (a második rögzítő csoport) vagy 3 (a harmadik) stb.
Teljes példa egyaxisVariableamely összesített adatkészletet hoz létre egy új idős tengelyrel, amely az egyes fájlok fájlnévből származó időértékeket kapja
<axisVariable>
<sourceName>\\*\\*\\*fileName,timeFormat=yyyyDDD,S(\\d{7})\\.L3m.\\*,1</sourceName>
<destinationName>time</destinationName>
</axisVariable>
Amikor a "timeFormat=" pseudo adatait használja típus,ERDDAP™2 tulajdonságot ad hozzáaxisVariableúgy tűnik, hogy a forrásból jönnek:
<att name="standard\\_name">time</att>
<att name="units">seconds since 1970-01-01T00:00:00Z</att>
Tehát ebben az esetben,ERDDAP™létrehoz egy új tengelyt, amelyet megneveztek"time"kettős értékekkel (másodpercek 1970-01-01T00:00Z) a 7 számjegy kivonásával a "S" után és a ".L3m" előtt a fájlnévben, és értelmezve azokat, mint az yyyyDDD formátumú időértékeket.
Felírhatja az alapértelmezett bázisidőt (1970-01-01T00:00Z) hozzáadásával egyaddAttributeamely különböző egységeket határoz meg, más alapidővel. Közös helyzet: vannak olyan adatfájlok, amelyek mindegyike egy 1 napos műholdas adatkészlettel rendelkezik, ahol azt szeretné, hogy az időértéke a fájlnévben említett nap déle legyen. (minden nap középpontjában) és szeretné a változótlong\_name"Centered Time" -nak lenni. Egy példa, ami ezt teszi:
<axisVariable>
<sourceName>\\*\\*\\*fileName,timeFormat=yyyyDDD,S(\\d{7})\\.L3m.\\*,1</sourceName>
<destinationName>time</destinationName>
<addAttributes>
<att name="long\\_name">Centered Time</att>
<att name="units">seconds since 1970-01-01T12:00:00Z</att>
</addAttributes>
</axisVariable>
Megjegyzés órák=12 az alapidőben, amely hozzáad 12 órát az eredeti alapidő 1970-01-01T00:00Z.
Teljes példa egyaxisVariableami aggregált adatállományt egy új "run" tengely segítségével teszi (int értékekkel) amely a "runID" globális tulajdonságból származó futási értékeket kapja minden fájlban (olyan értékekkel, mint a "r17\_global", ahol 17 a futó szám) az
<axisVariable>
<sourceName>\\*\\*\\*global:runID,int,(r|s)(\\d+)\\_global,2</sourceName>
<destinationName>run</destinationName>
<addAttributes>
<att name="ioos\\_category">Other</att>
<att name="units">count</att>
</addAttributes>
</axisVariable>
Vegye figyelembe a 2. számú rögzítő csoport használatát, hogy rögzítse a "r" vagy "s" után bekövetkező számjegyeket, és mielőtt "\_global". Ez a példa azt is mutatja, hogyan kell hozzáadni további tulajdonságokat (pl.:ioos\_categoryés egység) a tengely változó.
Külsőleg elnyomott fájlok
-
Adatkészletek, amelyek alkatrészeiEDDGridFromFiles és EDDTable Az FromFiles közvetlenül külsőleg tömörített adatfájlokból szolgálhat adatokat, köztük.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2és .Z fájlok.
-
Ez meglepően jól működik!
A legtöbb esetben a kis- és közepes méretű adatfájlokkal kapcsolatos lassulás kisebb. Ha lemezterületet kell őriznie, erősen bátorítjuk ezt a funkciót, különösen az idősebb fájlok esetében, amelyek ritkán érhetők el. -
Ments pénzt!
Ez az egyik a kevés funkciókbanERDDAP™ez lehetőséget kínál arra, hogy sok pénzt takarítson meg (bár a kissé csökkent teljesítmény költségénél) ... Ha a tömörítési arány pl. 6:1 (Néha sokkal magasabb lesz) Ezután az adatkészlet adatfájljai csak 1/6-ra lesznek szükségük a lemezterületre. Akkor lehet, hogy 1 RAID (egy adott méretből) 6 RAIDS helyett (azonos méretű) ... Ez egy hatalmas költségmegtakarítás. Remélhetőleg a képesség, hogy tömörítsen néhány fájlt egy gyűjteményben (Az idősebbek?) és ne tömöríts másokat (az újak?) , és ezt bármikor megváltoztatni, minimalizáljuk a hátrányt, hogy tömörítsünk néhány fájlt (lassabb hozzáférés) ... És ha a választás a fájlok tárolása a szalagon (és csak kérésre érhető el, késés után) vs tárolja őket egy RAID-on (és elérhetőERDDAP) , akkor van egy hatalmas előnye, hogy használja a tömörítést, hogy a felhasználók interaktív és (viszonylag) gyors hozzáférés az adatokhoz. És ha ez megmentheti Önt egy további RAID vásárlásától, ez a funkció körülbelül 300 000 dollárt takaríthat meg. -
MindenEDDGridFromFiles alosztályok, ha az adatfájlok egy kiterjesztés jelzi, hogy azok külsőleg tömörített fájlok (Jelenleg:.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2vagy .Z) ,ERDDAP™elnyomja a fájlokat az adatkészlet gyorsítótárának, amikor olvassa őket (ha már nem szerepelnek a cache-ban) ... Ugyanez igaz a bináris fájlra (pl.:.nc) EDDTableFromFiles alosztályai.
-
EDDTableFromFiles alosztályok nem bináris fájlok (pl.: .csv) , adatfájlok egy kiterjesztéssel jelezve, hogy külsőleg tömörített fájlokat fognak dekompresszálni, mivel a fájl olvasható.
-
KÉRDÉS: Ha a külsőleg tömörített fájl típusa (pl.:.tgzvagy.zip) több mint 1 fájlt támogat a tömörített fájlon belül, a tömörített fájlnak csak 1 fájlt kell tartalmaznia.
-
KÉRDÉS: Ez a funkció feltételezi, hogy a külsőleg tömörített fájlok tartalma nem változik, hogy egy csésze depressziós fájl újrahasznosítható. Ha néhány vagy az összes adatkészlet adatfájlja néha megváltozik, ne tömörítse ezeket a fájlokat. Ez összhangban van a közös használattal, mivel az emberek általában nem tömörítik a fájlokat, amelyeket néha meg kell változtatniuk.
-
<fájlNameRegex> Hogy ez a munka, az adatkészlet<fájlNameRegex> meg kell felelnie a tömörített fájlok nevét. Nyilvánvalóan olyan regexek, mint .\Minden fájl nevet illeszt. Ha specifikus fájltípust ad meg, pl.\↑.ncEzután módosítania kell a regexet, hogy tartalmazza a tömörítés kiterjesztését is, pl. ↑.nc↑.gz(ha az összes fájl lesz valami*.nc.gzfájlok)
-
Jó, ha az adatkészlet tartalmaz egy kompressált és nem tömörített fájlok keverékét. Ez hasznos lehet, ha úgy gondolja, hogy egyes fájlok (pl. régebbi fájlok) Kevesebbet fognak használni, ezért hasznos lenne a lemezterület megmentése azáltal, hogy tömörítené őket. Hogy ez a munka, a<fájlNameRegex> meg kell felelnie a tömörített és nem tömörített fájlok nevét, például.\vagy .\↑.nc (|↑.gz) (ahol a rögzítő csoport ennek végén meghatározza, hogy.gzopcionális.
-
Jó, ha tömöríti vagy dekompresszálja a gyűjteményben lévő konkrét fájlokat bármikor. Ha az adatkészlet nem használja [<frissítésEveryNMillis> (#updateeverynmillis) Állítsa be az adatkészletetzászlóMondd elERDDAP™az adatkészlet újratöltéséhez, és így észreveheti a változásokat. Érdekes módon különböző tömörítő algoritmusokat és beállításokat használhat a különböző fájlokhoz ugyanazon adatkészletben (pl.:.bz2ritkán használt fájlok esetében,.gznem gyakran használt fájlok, és nem tömörítés gyakran használt fájlok) , csak győződjön meg róla, hogy a regex támogatja az összes olyan fájl kiterjesztését, amelyek használatban vannak, például .\* \.nc (|↑.gz|↑.bz2) ...
-
Természetesen a tömörítési arányok és sebességek a különböző tömörítési algoritmusok változnak a forrásfájl és a beállítások között (pl. kompressziós szint) ... Ha szeretné optimalizálni ezt a rendszert a fájlok számára, végezzen tesztet a különböző tömörítési módszerekről a fájlokkal, és számos tömörítési beállítással. Ha megbízhatóan jót akarsz (nem feltétlenül a legjobb) beállítás, kissé javasoljukgzip (.gz) ...gzipnem teszi a legkisebb tömörített fájlt (ésszerűen közel van) , de nagyon gyorsan tömöríti a fájlt és (fontosabb a fontosabbERDDAP™felhasználók) Nagyon gyorsan elnyomja a fájlt. Plusz,gzipszoftver jön szabványos minden Linux és Mac OS telepítés, és könnyen elérhető a Windows ingyenes eszközökkel, mint a 7Zip és a Linux kiegészítők, mint a Git Bash. Például, hogy tömörítsen egy forrásfájlt a.gzA fájl verziója (ugyanazon fájlnév, de.gzMegjelent) Használat (Linux, Mac OS és Git Bash)
gzip sourceName
Dekompresszálni egy.gzfájl vissza az eredeti, használat gunzip sourceName.gz
A forrásfájlok mindegyikének tömörítése a könyvtárban és az aláírókban, ismételten, használat gzip-r rendezőName
Dekompresszálni az egyeseket.gzfájlok a könyvtárban és az aláírók , ismételten, használat gunzip -r rendezőName
-
WARNING: Ne tömörítse külsőleg (gzip) olyan fájlokat, amelyek már belsőleg tömörítettek! Számos fájl már belsőleg tömörítette az adatokat. Ha te vagygzipEzek a fájlok, a kapott fájlok nem lesznek sokkal kisebbek (<5%) ésERDDAP™pazarolja az időt, hogy depressziós őket, amikor el kell olvasni őket. Például:
- adatfájlok: pl.,.nc4 és.hdf5 fájl: Néhány fájl belső tömörítést használ; néhány nem. Hogyan lehet elmondani: a tömörített változók "\_ChunkSize" tulajdonságokkal rendelkeznek. Továbbá, ha egy csoport rácsos.ncvagy.hdfA fájlok mind különböző méretűek, valószínűleg belsőleg tömörítettek. Ha ők mind ugyanazok a méretek, nem belsőleg tömörülnek.
- képfájlok: pl., .gif, .jpg és .png
- audio fájlok: pl., .mp3 és .ogg.
- videofájlok: pl. .mp4, .ogv és .webm.
Egy szerencsétlen furcsa eset: .wav audio fájlok hatalmasak és nem belsőleg tömörítettek. Jó lenne tömöríteni (gzip) Ezek, de általában nem szabad, mert ha megteszi, a felhasználók nem tudják játszani a kompressált fájlokat a böngészőben.
-
Test Case: tömörítés (velegzip) adatkészlet 1523 rácsos.ncfájlok.
- A forrásfájlokban szereplő adatok sparse (sok hiányzó érték) ...
- A teljes lemezterület 57 GB-ból indult, mielőtt a tömörítés 7 GB-ra kerülne.
- Az 1 időpontból származó sok adat kérése<1 s a tömörítés előtt és után.
- 1 adatpont kérése 365 időponthoz (a legrosszabb helyzet) 4-ről 71-re ment.
Számomra ez minden adatkészlet ésszerű kikapcsolása, és minden bizonnyal olyan adatkészletek esetében, amelyeket gyakran használnak.
-
Belső versus külső kompresszió - Összehasonlítva a belső fájlkompresszió által kínált.nc4 és.hdf5 fájl,ERDDAPA külsőleg tömörített bináris fájlok megközelítése előnyökkel és hátrányokkal jár. A hátrány az, hogy egy alkalommal olvassa el egy kis részét egy fájl, belső tömörítés jobb, mertEDDGridA Files csak néhány darabot kell dekompresszálni (s) a fájl, nem az egész fájl. DeERDDAPA megközelítésnek van néhány előnye:
- ERDDAP™támogatja az összes adatfájl tömörítését (bináris és nem bináris, pl..nc3 és .csv) nem csak.nc4 és.hdf4. 4.
- Ha egy fájl tömegét rövid idő alatt többször kell olvasni, akkor időt takarít meg a fájl lebontására egyszer, és sokszor olvassa el. Ez történikERDDAP™ha egy felhasználó használja a Make-A-Graph-ot az adatkészlethez, és egy sor apró változtatást tesz a grafikonra.
- Az a képesség, hogy tömörített fájlokat, és nem tömörített fájlokat ugyanabban a gyűjteményben, lehetővé teszi, hogy több ellenőrzést, amelyen a fájlok tömörülnek, és amelyek nem. És ez a hozzáadott ellenőrzés nem igazán módosítja a forrásfájlot (mivel tömöríthet egy fájlt pl..gzEzután dekompresszálja, hogy megkapja az eredeti fájlt) ...
- Az a képesség, hogy bármikor megváltoztassa, hogy egy adott fájlt tömörítenek-e, és hogyan tömörítik (különböző algoritmusok és beállítások) nagyobb ellenőrzést biztosít a rendszer teljesítménye felett. És könnyedén visszaállíthatja az eredeti elnyomatlan fájlt bármikor.
Bár a megközelítés sem győztes minden helyzetben, egyértelmű, hogyERDDAP"A külsőleg tömörített fájlokból származó adatok kiszolgálásának képessége a külső tömörítést ésszerű alternatívá teszi a belső kompresszióval.nc4 és.hdf5. 5. 5. Ez jelentős, mivel a belső tömörítés az egyik fő oka annak, hogy az emberek használják.nc4 és.hdf5. 5. 5.
Dekompresszált Cache
ERDDAP™a tömörített bináris depressziós változata (pl.:.nc) adatfájl, ha el kell olvasnia a fájlt. A depressziós fájlokat az adatkészlet könyvtárában tartják bigParentDirectory[szerkesztés] /dekompresszált/ A nemrégiben nem használt depressziós fájlokat törölni fogják, hogy felszabadítsák a helyet, amikor a kumulatív fájlméret > 10 GB. Ezt megváltoztathatja a beállítással<DekompressedCacheMaxGB> (default=10) adatkészletekben Xml.xml, pl.
<decompressedCacheMaxGB>40</decompressedCacheMaxGB>
Továbbá, az elmúlt 15 percben nem használt depressziós fájlokat törölni fogják minden jelentős adatkészlet-visszatöltés kezdetén. Ezt megváltoztathatja a beállítással<DekompressedCacheMaxMinutesOld> (default=15) adatkészletekben Xml.xml, pl.
<decompressedCacheMaxMinutesOld>60</decompressedCacheMaxMinutesOld>
Nagyobb számok szépek, de a depressziós fájlok kumulatív mérete okozhat bigParentDirectory[szerkesztés] kifutni a lemezterületről, ami súlyos problémákat okoz.
- Mivel a fájl dekompresszálása jelentős időt vehet igénybe (0,1-10 másodpercig) A tömörített fájlokkal rendelkező adatkészletek előnyösek lehetnek az adatkészlet beállításában [<nThreads>] (#nthreads) egy magasabb szám beállítása (2? 3? 4?) ... Még magasabb számok hátrányai (pl. 5? 6? 7?) csökkenti a visszatéréseket, és az egyik felhasználó kérése a rendszer erőforrásainak nagy százalékát használhatja, így jelentősen lelassítja a többi felhasználó kérésének feldolgozását. Így nincs ideális nThreads beállítás, csak különböző következmények különböző helyzetekben különböző beállításokat.
Osztott dimenziós értékek
Az értékek minden dimenzióban MUST lehet rendezett rendben (felemelkedő vagy leszármazott, kivéve az elsőt (baloldali) olyan dimenzió, amelyet fel kell emelkedni) ... Az értékek szabálytalanul helyreállhatnak. Nem lehetnek kapcsolatok. Ez a követelmény aCF metaadat szabvány... Ha bármely dimenzió értéke nem rendezett rendben van, az adatkészlet nem lesz betöltve ésERDDAP™azonosítja az első fel nem szorított értéket a logfájlban, bigParentDirectory[szerkesztés] /logs/log.txt .
A nem szorított dimenziós értékek szinte mindig problémát jelentenek a forrásadatokkal. Ez a leggyakrabban akkor fordul elő, amikor egy tévhit vagy nem megfelelő fájl szerepel a gyülekezetben, ami egy szorulatlan idő dimenzióhoz vezet. A probléma megoldásához lásd a hibaüzenetetERDDAP™log.txt fájl, hogy megtalálja a megsértő időértéket. Ezután nézze meg a forrásfájlokat, hogy megtalálja a megfelelő fájlt (vagy egy előtt vagy után) ez nem tartozik a gyülekezetbe.
Rendezők
A fájlok MAY lehet egy könyvtárban, vagy egy könyvtárban és az aláírók (ismétlődően) ... Ha nagyszámú fájl van (Például:>1,000) , operációs rendszer (és ígyEDDGridFájlok) sokkal hatékonyabban fog működni, ha a fájlokat egy sor aláíróban tárolja (egy évente, vagy havonta egy adatkészletek nagyon gyakori fájlokkal) Annak érdekében, hogy soha ne legyen sok fájl egy adott könyvtárban.
<cacheFromUrl>
MindenEDDGridFromFiles és az összes EDDTableFromFiles adatkészlet támogatja egy sor címkét, amelyek elmondjákERDDAP™letölteni és fenntartani egy másolatot az összes távoli adatkészlet fájlok, vagy egy csésze néhány fájl (letöltve, amennyire szükséges) ... Ez hihetetlenül hasznos lehet. Lásd:Húsvét FromUrl dokumentáció...
Távoli könyvtárak és HTTP Range kérések
(AKA Byte Serving, Byte Range kéri, elfogadja a szabályokathttpFejlesztő)
EDDGridFromNcFiles, EDDTableFromMultidimNcFiles, EDDTableFromNcFiles és EDDTableFromNcCFFiles, can can Néha néha szolgáltatott adatok.ncfájlok távoli szervereken és a HTTP-n keresztül elérhetők, ha a szerver támogatjaByte ServingHTTP tartományi kérések (HTTP mechanizmus a byte szolgáló) ... Ez azért lehetséges, mert netcdf-java (melyikERDDAP™Használat az olvasáshoz.ncfájlok) támogatja az adatok távolról történő olvasását.ncfájlok HTTP tartomány kérések.
Ne csináld ezt! Ez szörnyen nem hatékony és lassú. Ehelyett használja a [[szerkesztés]]]<cacheFromUrl> rendszer (#cachefromurl) ...
HozzáférésERDDAP™adatkészletek, mint fájlok byte range kéréseken keresztül - Flipping ezt körül, mert lehet (elmélet) Gondolj egy adatkészletreERDDAP™mint óriás.ncfájlt a "Csak" beállításával.nc"Az OPen bázisraDAPURL egy adott adatkészlethez (pl.: https://myserver.org/erddap/griddap/datasetID.nc és egy ?query hozzáadása után is, hogy megadja az aljzatot) Talán ésszerű megkérdezni, hogy használhatja-e a netcdf-java-t,Ferretvagy másNetCDFkliens szoftver az adatok olvasásához HTTP Range kérésekERDDAP... A válasz nem, mert nincs igazán hatalmas ".nc"fájl. Ha ezt akarod csinálni, ehelyett tedd meg az egyik ilyen lehetőséget:
- Használat(OPeN)DAPügyfélszoftver, hogy csatlakozzon a griddap szolgáltatások által kínáltERDDAP... Ez az, amiDAP (és ígyERDDAP) tervezték. Nagyon hatékony.
- Vagy letöltse a forrás fájlt (s) a"files"rendszerrendszer (vagy subset fájl egy.nc? Lekérdezés) a számítógépére, és netcdf-java-t használ,Ferretvagy másNetCDFügyfél szoftver olvasni (most) helyi fájl (s) ...
Cached File Információ
Amikor egyEDDGridFromFiles adatkészlet első betöltése,EDDGridFromFiles az összes releváns fájlból olvas információt, és táblákat hoz létre (Egy sor minden fájlhoz) minden érvényes fájlról és minden "rossz" (különböző vagy érvénytelen) fájl.
- Az asztalokat is tárolják a lemezen, mintNetCDFv3.ncfájlok bigParentDirectory[szerkesztés] /dataset/ Last2CharsOfDatasetID / datasetID / fájlok neve: dirTable.nc (amely az egyedi könyvtár nevek listáját tartalmazza) , fájl táblázat.nc (amely az asztalt minden érvényes fájl információjával tartja) , rosszfiókok.nc (amely az asztalt minden rossz fájl információjával tartja) ...
- A hozzáférés gyorsítása egyEDDGridFromFiles adatkészlet (de több memóriát használva) Használhatja
true
Mondd elERDDAP™tartsa a fájlinformációs táblák másolatát az emlékezetben.
- A lemezen található fájlinformációs táblák másolata akkor is hasznos, haERDDAP™le van zárva és újraindítva: megmentEDDGridA Files-től, hogy újra kell olvasnia az összes adatfájlot.
- Amikor egy adatkészletet újratöltik,ERDDAP™csak az adatokat kell olvasni az új fájlokban és fájlokban, amelyek megváltoztak.
- Ha egy fájlnak más szerkezete van a többi fájlból (Például egy másik adattípus az egyik változó számára, vagy egy másik érték a "egység- tulajdonság) ,ERDDAPhozzáadja a fájlt a "rossz" fájlok listájához. Információk a probléma a fájl lesz írva a bigParentDirectory[szerkesztés] /logs/log.txt fájl.
- Soha nem kell törölnie vagy dolgoznia ezeket a fájlokat. Az egyik kivétel: ha még mindig megváltoztatja az adatkészletetdatasets.xmlbeállítás, lehet, hogy törölni ezeket a fájlokat kényszeríteniERDDAP™az összes fájl újraindítása, mivel a fájlokat másképp olvassák/értelmezik. Ha valaha is törli ezeket a fájlokat, akkor megteheti, haERDDAP™fut. (Ezután állítsa be azászlóaz adatkészlet újratöltése ASAP.) Azonban,ERDDAP™általában észreveszi, hogy adatasets.xmlaz információ nem egyezik a fájllal Asztalinformációk és a fájltáblák automatikusan törlése.
- Ha bátorítani akarszERDDAP™a tárolt adatkészlet információjának frissítése (például, ha csak hozzáadott, eltávolított vagy módosított néhány fájlt az adatkészlet adattárához) Használja azászlórendszerKényelemERDDAP™a csatolt fájlinformációk frissítése.
Kérések kezelése
Amikor az ügyfél adatkérelme feldolgozásra kerül,EDDGridA Files gyorsan megvizsgálhatja az asztalt az érvényes fájlinformációkkal, hogy megnézze, mely fájlok rendelkeznek a kért adatokkal.
A Cached File információ frissítése
Amikor az adatkészletet újratöltik, a csésze fájlinformációkat frissítik.
- Az adatkészletet rendszeresen újratöltik, amint azt a<reloadEveryNMinutes> az adatkészlet információibandatasets.xml...
- Az adatkészletet a lehető leghamarabb újratöltik, haERDDAP™kimutatja, hogy hozzáadott, eltávolított,touch'd (a fájl utolsó módosítása Módosított idő) vagy módosított egy adatszűrőt.
- Az adatkészlet a lehető leghamarabb újratöltődik, ha használjazászlórendszer...
Amikor az adatkészletet újratöltik,ERDDAP™összehasonlítja a jelenleg rendelkezésre álló fájlokat a csatolt fájlinformációs táblákhoz. Új fájlokat olvasnak és hozzáadnak az érvényes fájlok táblázatához. Azok a fájlok, amelyek már nem léteznek, az érvényes fájlok táblájából származnak. Azok a fájlok, ahol a fájl-időmérő változott, olvashatók, és az információjuk frissül. Az új táblák felváltják a régi táblákat a memória és a lemezen.
Bad Files
A rossz fájlok táblázata és az okok, amelyeket a fájlok rossznak nyilvánították (korrupt fájl, a változók hiánya stb.) e-mailben van az e-mailben Minden E-mail cím (valószínűleg te) Minden alkalommal, amikor az adatkészletet újratöltik. A lehető leghamarabb fel kell cserélnie vagy javítania ezeket a fájlokat.
Elhagyni a változókat
Ha néhány fájl nem rendelkezik néhányatdataVariableaz adatkészletben meghatározottdatasets.xmlcunk, ez rendben van. MikorEDDGridFromFiles elolvassa az egyik ilyen fájlt, úgy fog működni, mintha a fájl volt a változó, de minden hiányzó értékek.
FTP hiba / tanács
Ha FTP új adatfájlokat készítERDDAP™szerver,ERDDAP™fut, van esély arra, hogyERDDAP™az FTP folyamat során újratölti az adatkészletet. Gyakrabban fordul elő, mint gondolnád! Ha ez megtörténik, a fájl úgy tűnik, hogy érvényes (érvényes neve) , de a fájl még nem érvényes. HaERDDAP™megpróbálja elolvasni az adatokat ebből az érvénytelen fájlból, az ebből eredő hiba okozza a fájlt az érvénytelen fájlok táblázatához. Ez nem jó. A probléma elkerülése érdekében használjon ideiglenes fájlnévet, amikor az FTP a fájlt, például az ABC2005.nc\_TEMP . Ezután a fájlNameRegex teszt (lásd alább) jelzi, hogy ez nem releváns fájl. Miután az FTP folyamat befejeződött, nevezze át a fájlt a helyes névre. A megnevezési folyamat azt fogja okozni, hogy a fájl egy pillanat alatt releváns legyen.
"0 fájl" hibaüzenet
Ha futszGenerateDatasetsXmlvagyDasDdsvagy ha megpróbálsz betölteni egyEDDGridFiles adatkészletERDDAP™, és kap egy "0 fájl" hibaüzenetet, amely jelzi, hogyERDDAP™talált 0 megfelelő fájlokat a könyvtárban (ha úgy gondolja, hogy van egyező fájlok ebben a könyvtárban) :
- Ellenőrizze, hogy a fájlok valóban ebben a könyvtárban vannak.
- Ellenőrizze a könyvtár neve varázslatát.
- Ellenőrizze a fájlNameRegex. Valójában nagyon könnyű hibákat hibáztatni a regexekkel. Tesztcélok esetén próbálja meg a regex .\*-t, amely minden fájlnévhez illeszkedik. (Lásd eztregex dokumentációésregex bemutató...)
- Ellenőrizze, hogy a felhasználó, aki fut a program (pl. felhasználó=tomcat (?) Tomcat/ERDDAP) "olvassa" az engedélyt ezekre a fájlokra.
- Egyes operációs rendszerekben (például SELinux) és a rendszerbeállításoktól függően a felhasználónak, aki futtatja a programot, „olvassa” a könyvtárak egész láncolatát, amely a fájlokat tartalmazó könyvtárhoz vezet.
EDDGridFromFiles csontváz XML
- A csontváz XML mindenkinekEDDGridFromFiles alosztályok:
<dataset type="EDDGridFrom...Files" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
EDDGridFromFiles subclasses, this uses Java's WatchDirectory system
to notice new/deleted/changed files quickly and efficiently. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<fileDir>...</fileDir> <-- The directory (absolute) with the
data files. -->
<recursive>true|false</recursive> <!-- 0 or 1. Indicates if
subdirectories of fileDir have data files, too. -->
<pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
match the pathRegex (default=".\") will be accepted. -->
<fileNameRegex>...</fileNameRegex> <-- 0 or 1. A
regular expression (tutorial) describing valid data
file names, for example, ".\\.nc" for all .nc files. -->
<accessibleViaFiles>true|false(default)</accessibleViaFiles>
<!-- 0 or 1 -->
<metadataFrom>...</metadataFrom> <-- The file to get
metadata from ("first" or "last" (the default) based on file's
lastModifiedTime). -->
<fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or
false (the default)) -->
<cacheFromUrl>...</cacheFromUrl> <!-- 0 or 1 -->
<cacheSizeGB>...</cacheSizeGB> <!-- 0 or 1 -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
</dataset>
EDD*AudioFiles
EDDGridFromAudioFiles és EDDTableFromAudioFiles összesített adatok a helyi audiofájlok gyűjteményéből. (Ezek az első megjelentekERDDAP™v1.82.) A különbség az, hogyEDDGridAz FromAudioFiles az adatokat többdimenziós adatkészletként kezeli (általában 2 dimenzióval:\[fájl indítása Idő\]és\[elapadt Idő egy fájlon belül\]) , mivel az EDDTableFromAudioFiles az adatokat takaró adatokként kezeli (általában oszlopok a fájl indítása, az elapsedTime a fájl, és az adatok az audio csatornák) ...EDDGridFromAudioFiles megköveteli, hogy minden fájl ugyanazon számú mintával rendelkezik, így ha ez nem igaz, akkor EDDTableFromAudioFiles-t kell használnia. Ellenkező esetben az EDD-típus használatának választása teljesen a választás. Az EDDTableFromAudioFiles egyik előnye: más változókat is hozzáadhat más információkkal, példáulstationID, állomásType. Mindkét esetben az egységes időváltozat hiánya nehezebbé teszi az ilyen EDD-típusok adataival való együttműködést, de nem volt jó módja annak, hogy egységes időváltozatot hozzon létre.
Lásd ezeket az osztályokat,EDDGridFájlokésEDDTableFromFilesÁltalános információk arról, hogyan működik ez az osztály, és hogyan kell használni.
Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Mivel az audiofájlok nem rendelkeznek más metaadatokkal, mint a hangadatok kódolásával kapcsolatos információk, meg kell szerkeszteni a kimenetet a GenerateDatasets-től Xml, hogy alapvető információkat nyújtson (pl. cím, összefoglaló,creator\_name, intézmény, történelem) ...
Részletek:
- Számos audio fájlformátum létezik. Jelenleg,ERDDAP™olvashat adatokat a legtöbb .wav és .au fájlból. Jelenleg nem olvashat más típusú audio fájlokat, például .aiff vagy .mp3. Ha támogatásra van szüksége más audio fájlformátumok vagy más változatok .wav és .au, kérjük, küldje el a kérését Chris. John at noaa.gov. Vagy, mint egy munkakör, amit most használhat, átalakíthatja az audio fájlokat PCM\_ SIGNED (Integrációs adatok) PCM\_FLOAT (lebegő pont adatok) .wav fájlok, hogyERDDAP™dolgozhat velük.
- Jelenleg,ERDDAP™elolvashatja az audio fájlokat azzal, amitJava"Az AudioFormat osztály PCM\_FLOAT, PCM\_SIGNED, PCM\_UNSIGNED, ALAW és ULAW kódolásokat hív.ERDDAP™átalakítja a PCM\_UNSIGNED értékeket (pl. 0-255) aláírt értékek (pl.: 128-128) a bitek átrendezése az adatértékekben.ERDDAP™átalakítja az ALAW és az ULAW kódolt az őshonos kódolt byte formátumból rövidre (Int16) értékek. ótaJavabigEndian=igazi adatokat akar,ERDDAP™átrendezi a bigEndian=false-vel tárolt adatok byteáit (kis endian) annak érdekében, hogy helyesen olvassa el az értékeket. Minden más kódoláshoz (PCM) ,ERDDAP™olvassa el az adatokat, mint az.
- MikorERDDAP™elolvassa az adatokat az audio fájlokból, a fájl elérhető audio metaadatát globális tulajdonságokra konvertálja. Ez mindig tartalmazza (mintaértékekkel)
Hangszóró audioBigEndian "hamis"; //igaz vagy hamis Int audio Csatornák 1; Hangsúlyozva a "PCM\_SIGNED" -t; Float audioFrameRate 96000.0; //per második az audioFrameSize 2; //# adat bytes per frame Float audioSampleRate 96000.0; //per második int audioSampleSizeInBits 16; //# bits / csatorna / minta
MertERDDAPA cél, a keret szinonimája egy mintával, ami az adatok egy időben. A tulajdonságok aERDDAP™lesz az információ, amely leírja az adatokat, mivel a forrásfájlokban volt.ERDDAP™Gyakran megváltoztatta ezt az adatokat, például a PCM\_UNSIGNED, az ALAW és az ULAW kódolt adatok átalakulnak a PCM\_SIGNED-re, és a bigEndian=hamis adatok átalakulnak a bigEndian=true adatokra (Így vanJavael akarja olvasni) ... A végén az adatértékek aERDDAP™mindig lesz azPCM kódolvaadatértékek (azaz a hanghullám egyszerű digitalizált mintái) ...
- MikorERDDAP™elolvassa az adatokat az audio fájlokból, az egész fájlt olvassa el.ERDDAP™csatornánként körülbelül 2 milliárd mintát olvashat. Például, ha a mintavételi ráta másodpercenként 44.100 minta, 2 milliárd minta lefordítható körülbelül 756 percnyi hangadattal. Ha több audió fájlja van, mint ez az adatmennyiség, meg kell szakítania a fájlokat kisebb darabokra, hogyERDDAP™olvassa el őket.
- MertERDDAP™teljes audiofájlokat olvas,ERDDAP™nagy mennyiségű memóriához kell hozzáférnie ahhoz, hogy nagy audiofájlokkal dolgozzon. LásdERDDAPmemória beállítások... Ismét, ha ez egy probléma, egy munkakör, amelyet most használhat, az, hogy a fájlokat kisebb darabokra bontja, hogyERDDAP™kevesebb memóriával olvashatjuk őket.
- Egyes audiofájlokat helytelenül írtak.ERDDAP ™kis erőfeszítést tesz az ilyen esetek kezelésére. De általában, ha van egy hiba,ERDDAP™dob egy kivételt (és elutasítja ezt a fájlt) vagy (ha a hiba észrevehetetlen) olvassa el az adatokat (de az adatok helytelenek lesznek) ...
- ERDDAP™nem ellenőrzi vagy megváltoztatja a hang mennyiségét. Ideális esetben az integrált audio adatok az adattípus teljes skáláját használják.
- Az Audio fájlok és az audio szereplők nem rendelkeznek rendszerrel a hiányzó értékekhez (pl. -999 vagy Float.NaN) ... Tehát az audio adatoknak nincs hiányzó értékük. Ha hiányzik az értékek (pl. ha meg kell hosszabbítani egy audio fájlt) Használjon egy 0-as sorozatot, amelyet tökéletes csendként értelmeznek.
- MikorERDDAP™adatokat olvas az audio fájlokból, mindig létrehoz egy elapsed nevű oszlopot Idő minden mintához, másodpercekben (duplákként tárolva) , az első mintához képest (kitűzött Time=0.0 s) ... EzzelEDDGridFromAudioFiles, ez lesz az elapsedTime tengely változó.
- EDDGridFromAudioFiles előírja, hogy minden fájl ugyanazt a számú mintát. Tehát ha ez nem igaz, akkor EDDTableFromAudioFiles-t kell használnia.
- MertEDDGridFromAudioFiles, javasoljuk, hogy állítsa be [[szerkesztés]]<dimenzióValuesInMemory>] (#dimenziós érzelmek) hamis (a GenerateDatasets által ajánlott Xml) Mivel az időméretnek gyakran számos értéke van.
- MertEDDGridFromAudioFiles, szinte mindig használja aEDDGridFromFiles rendszerAggregáció keresztül File nevek- szinte mindig a felvételi dátum kivonásával Idő a fájlnévből. Például,
<sourceName>\\*\\*\\*fileName,"timeFormat=yyyyMMdd'\\_'HHmmss",aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>
GenerateDatasets Az Xml ezt ösztönzi, és ezzel segít.
- Az EDDTableFromAudioFiles számára szinte mindig használja az EDDTableFromFiles rendszert\\\*fileName pseudosourceNamesinformáció kivonása a fájl nevét (szinte mindig az indulási dátum Idő a felvételhez) és népszerűsítse azt, hogy az adatok oszlopa legyen. Például,
<sourceName>\\*\\*\\*fileName,aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>
Ezután meg kell határozni az időformátumot, mint az egységeket:<att name="units" - YyMMdd'\_'HHmmss</att>
EDDGridFromMergeIRFiles
EDDGridFromMergeIRFiles összesíti a helyi adatok adatait,MergeIRfájlok, amelyek aTrópusi Rainfall mérési misszió (TRMM) , amely közös küldetés a NASA és a Japán Aerospace Exploration Agency között (JAXA) ... Merge Az IR fájlok letölthetőkNASA...
EDDGridFromMergeIRFiles.java írta és hozzájárult aERDDAP™Jonathan Lafite és Philippe Makowski R.Tech Engineering (licenc: szerzői jogi nyílt forráskód) ...
EDDGridFromMergeIRFiles egy kicsit szokatlan:
- EDDGridFromMergeIRFiles támogatja a tömörített vagy elnyomott forrásadat fájlokat, bármilyen kombinációban, ugyanazon adatkészletben. Ez lehetővé teszi például, hogy tömörítse az idősebb fájlokat, amelyek ritkán elérhetők, de az új fájlokat gyakran hozzáférnek. Vagy megváltoztathatja az eredeti tömörítés típusát. Z például,.gz...
- Ha ugyanazon adatfájlok tömörített és elnyomatlan verziói vannak ugyanabban a könyvtárban, győződjön meg róla, hogy<fájlNameRegex> az adatkészlet illeszti a fájlnéveket, hogy azt akarja, hogy megfeleljen, és nem egyezik fájlnévvel, hogy nem akarja, hogy megfeleljen.
- A nem elnyomott forrásadat fájloknak nem kell fájl kiterjesztése (i.e., nem ". a fájlnévben) ...
- A kompressált forrásadatfájloknak fájl kiterjesztéssel kell rendelkezniük, deERDDAP™meghatározza a tömörítés típusát a fájl tartalmának ellenőrzésével, nem pedig a fájl kiterjesztésének megtekintésével (Például: ".Z") ... A támogatott kompressziós típusok magukban foglalják a "gz", "bzip2", "xz", "lzma", "snappy-raw", "snappy-framed", "pack200" és "z". MikorERDDAP™tömörített fájlokat olvas, decompresses on-the-fly, írás nélkül egy ideiglenes fájlt.
- Minden forrásadatfájlnak az eredeti fájl elnevezési rendszert kell használnia: azaz a merg\_ YYYMMDHH \_4km-pixel (ahol YYYMMDHH jelzi az adatokhoz kapcsolódó időt a fájlban) , plusz egy fájl kiterjesztése, ha a fájlt tömörítik.
Lásd ezt az osztályt,EDDGridFájlokÁltalános információk arról, hogyan működik ez az osztály, és hogyan kell használni.
Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti ezt, hogy finomhangolja azt.
EDDGridFromNcFiles
EDDGridFromNcFiles aggregálja az adatokat a helyi, rácsos,GRIB .grb és .grb2fájlok,HDF (v4 vagy v5) .hdffájlok,.ncml mlfájlok,NetCDF (v3 vagy v4) .ncfájlok ésZarrfájlok (2.25 verzió) ... A Zarr fájlok kissé eltérő viselkedéssel rendelkeznek, és megkövetelik a fájltNameRegex vagy az útRegex, hogy tartalmazza a "zarr".
Ez működhet más fájltípusokkal (Például a BUFR) Csak nem teszteltük - kérjük, küldjön nekünk néhány minta fájlt.
- GRIB fájlokhoz,ERDDAP™.gbx index fájlt készít, először olvassa el az összes GRIB fájlt. Tehát a GRIB-fájloknak olyan könyvtárban kell lenniük, ahol a "felhasználó", amely ran Tomcat olvasott + írásbeli engedélyt.
- Lásd ezt az osztályt,EDDGridFájlokinformáció arról, hogyan működik ez az osztály, és hogyan kell használni.
- KezdőlapERDDAP™v2.12,EDDGridFromNcFiles ésEDDGridFromNcFiles A nem csomagolt adatok a "struktúrákból" olvashatók.nc4 és.hdf4 fájl. A változó azonosítása, amely egy szerkezetből származik,<sourceName> > > > használja a formátumot: fullstructureName | tagName Például a csoport1/myStruct|myMember.
- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti ezt, hogy finomhangolja azt.
Csoportok Gridded Nc fájlokban
A Netcdf4 fájlok csoportokat tartalmazhatnak. ERDDAP™csak egy adathalmazt készít az egyik csoportban és az összes szülőcsoportban lévő változókból. Megadhat egy adott csoport nevét a GenerateDatasets-ben Xml (Elhagyni a nyomvonalat) vagy használjon "" GenerateDatasets Xml keresse meg az összes csoportot a változókhoz, amelyek a legtöbb dimenziót használják, vagy használja a "\[gyökér\]"A GenerateDatasets csak a változókat keresi a gyökércsoportban.
Az első dolog, amit a GenerateDatasetsXml tesz az ilyen típusú adatkészlethez, miután válaszol a kérdésekre, kinyomtatja a minta fájl ncdump-szerű szerkezetét. Tehát, ha belépsz néhány goofy válaszra az első hurok számára GenerateDatasets Xml, legalább látni fogja, hogyERDDAP™olvassa el a fájlt, és nézze meg, hogy milyen dimenziók és változók vannak a fájlban. Ezután jobb választ adhat a második hurok számára a GenerateDatasetsXml-en keresztül.
EDDGridFromNcFilesUnpack
EDDGridFromNcFilesUnpack egy változataEDDGridFromNcFilesamely összegyűjti az adatokat a helyi, megfogottNetCDF (v3 vagy v4) .ncés kapcsolódó fájlok. A különbség az, hogy ez az osztály minden adatfájlot kicsomagol, mielőttEDDGridFromFiles a fájlokat nézi:
- Kicsomagolja a változókat, amelyek tele vannakscale\_factorvagyadd\_offset...
- Megtéríti a \_FillValue-t ésmissing\_valueA NaN értékei (vagy MAX\_VALUE az integrált adattípusokhoz) ...
- Idő- és ütemértékeket alakít át"seconds since 1970-01-01T00:00:00Z"...
Ennek az osztálynak a nagy előnye, hogy utat biztosít a különböző értékek kezelésérescale\_factor,add\_offset\_FillValue,missing\_valuevagy időegységek különböző forrásfájlokban egy gyűjteményben. Ellenkező esetben olyan eszközt kell használnia, mintNcMLvagyNCOmódosítani minden fájlt, hogy távolítsa el a különbségeket, hogy a fájlokat lehet kezelniEDDGridFromNcFiles. Ahhoz, hogy ez az osztály megfelelően működjön, a fájloknak követniük kell a kapcsolódó tulajdonságok CF szabványait.
- Ha megpróbálsz csinálniEDDGridFromNcFiles Csomagolatlan egy olyan fájlcsoportból, amellyel korábban kipróbált és nem használtEDDGridFromNcFiles, cd to bigParentDirectory[szerkesztés] /dataset/ Last2Letters / datasetID / ahol Last2Letters az utolsó 2 betűdatasetID, és törölje az összes fájlt ebben a könyvtárban.
- KezdőlapERDDAP™v2.12,EDDGridFromNcFiles ésEDDGridFromNcFiles A nem csomagolt adatok a "struktúrákból" olvashatók.nc4 és.hdf4 fájl. A változó azonosítása, amely egy szerkezetből származik,<sourceName> > > > használja a formátumot: fullstructureName | tagName Például a csoport1/myStruct|myMember.
- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti ezt, hogy finomhangolja azt.
A Netcdf4 fájlok csoportokat tartalmazhatnak. Lásdez a dokumentáció...
Az első dolog, amit a GenerateDatasetsXml tesz az ilyen típusú adatkészlethez, miután válaszol a kérdésekre, kinyomtatja a mintafájl ncdump-szerű szerkezetét előtte kicsomagolatlan. Tehát, ha belépsz néhány goofy válaszra az első hurok számára GenerateDatasets Xml, legalább látni fogja, hogyERDDAP™olvassa el a fájlt, és nézze meg, hogy milyen dimenziók és változók vannak a fájlban. Ezután jobb választ adhat a második hurok számára a GenerateDatasetsXml-en keresztül.
EDDGridLonPM180
EDDGridLonPM180 módosítja a gyermek hosszúsági értékeit (bezárt) EDDGridolyan adatkészlet, amely több mint 180 (például 0-360) hogy ők a tartományban -180-180 (Longitude Plus vagy Minus 180, így a név) ...
- Ez lehetőséget ad arra, hogy olyan adatkészleteket hozzanak létre, amelyeknek hosszúsági értékei nagyobbak, mint 180 megfelelnek / aOGCSzolgáltatások (PéldáulWMSszerverERDDAP) Mint mindenOGCA szolgáltatások hosszúsági értékeket igényelnek -180 és 180 között.
- A szüntelenséghez közeli munka problémákat okoz, függetlenül attól, hogy a szüntelenség hosszúságú 0 vagy hosszúságú 180. Ez az adatkészlet típus lehetővé teszi, hogy elkerülje ezeket a problémákat mindenki számára, két változata ugyanazt az adatkészletet: a 0–360 közötti tartományban lévő hosszúsági értékek ("Pacificentric"?) , az egyik hosszúsági értékek a tartományban -180-180 ("Atlanticentric"?) ...
- A 180-nál nagyobb, hosszúsági értékű gyermekadatok esetében az új hosszúsági értékek mindössze 360 fokkal alacsonyabbak. Például egy 180-240-es szélességi értékű adatkészlet az -180–120 közötti hosszúsági értékekkel rendelkező adatkészlet lesz.
- Gyermekadatkészletek, amelyek hosszúságú értékek az egész világon (durván 0-360) Az új hosszúsági érték újrarendezésre kerül, hogy (durván) 180–180: Az eredeti 0–180 érték változatlan. Az eredeti 180-360 értékek átalakulnak -180-0-ra, és a hosszúsági sor kezdetére változnak.
- A 180-as gyermekadatok esetében, de ne fedje le a világot,ERDDAP™beilleszti a hiányzó értékeket, amelyek szükségesek ahhoz, hogy egy adatkészletet hozzanak létre, amely lefedi a világot. Például egy 140-200-as hosszúsági értékű gyermekadat az 180–180-as évek hosszúsági értékű adatkészletévé válik. A 180-200-as gyermekértékek -180-160-ra válnak. Az új hosszúsági értékek -160-tól 140-ig terjednek. A megfelelő adatértékek \_FillValues lesznek. A 140-180-as gyermekértékek változatlanok lesznek. A hiányzó értékek beillesztése furcsának tűnhet, de elkerüli számos problémát, ami azt eredményezi, hogy a hosszúsági értékek hirtelen ugranak. (pl.: -160 és 140) ...
- InkábbGenerateDatasetsXmlvan egy speciális "adatkészlet",EDDGridLonPM180FromErddapCatalog, amely lehetővé teszi, hogy létrehozza adatasets.xmlMertEDDGridLonPM180 adatkészletek mindegyikétőlEDDGridadatkészletek egyERDDAPolyan hosszúsági értékek, amelyek 180-nál nagyobbak. Ez megkönnyíti ezen adatkészletek két változatát: az eredeti, hosszúsági értékekkel a 0–360 tartományban, és az új adatkészlet, a hosszúsági értékek a -180-180 tartományban.
A gyermek adatkészlete minden egyesbenEDDGridLonPM180 adatkészlet leszEDDGridFromErddap adatkészlet, amely az eredeti adatkészletre vonatkozik. Az új adatkészletdatasetIDlesz az eredeti adatkészlet neve, plusz "\_LonPM180". Például,
<dataset type="EDDGridLonPM180" datasetID="erdMBsstdmday\\_LonPM180" active="true">
<dataset type="EDDGridFromErddap" datasetID="erdMBsstdmday\\_LonPM180Child">
<!-- SST, Aqua MODIS, NPP, 0.025 degrees, Pacific Ocean, Daytime
(Monthly Composite) minLon=120.0 maxLon=320.0 -->
<sourceUrl>https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdMBsstdmday
</sourceUrl>
</dataset>
</dataset>
Tedd le aEDDGridLonPM180 adatkészlet alább az eredeti adatkészletdatasets.xml... Ez elkerüli néhány lehetséges problémát.
Alternatívaként helyettesítheti aEDDGridFromErddap gyermek adatkészlet az eredeti adatkészletteldatasets.xml... Ezután az adatkészlet csak egy verziója lesz: az egy, amelynek hosszúsági értékei vannak -180 és 180 között. Ezt azért elriasztjuk, mert vannak olyan idők, amikor az adatkészlet minden verziója kényelmesebb.
- Ha egy adatkészlet két verzióját kínálja, például egy, 0-360-as hosszúsággal, és egy hosszúsággal -180-180-as 180-as:
- Használhatja az opcionális [<hozzáférhető ViaWMS> Hamis</Csak elérhető ViaWMS>>>>>> (#Ccessibleviawms) a 0-360 adatkészlettel, amely erõsen letiltja aWMSszolgáltatás erre az adatkészletre. Ezután csak az adatkészlet LonPM180 verziója elérhető leszWMS...
- Van néhány módja annak, hogy a LonPM180 adatállomány naprakész legyen a mögöttes adatkészlet változásaival:
- Ha a gyermek adatkészlete egyEDDGridFromErddap adatkészlet, amely ugyanazon adatkészletre hivatkozikERDDAP™A LonPM180 adatkészlet közvetlenül feliratkozik az alapjául szolgáló adatkészletre, hogy mindig naprakész legyen. A közvetlen előfizetések nem generálnak olyan e-maileket, amelyek arra kérik Önt, hogy érvényesítse az előfizetést - az érvényesítést automatikusan meg kell tenni.
- Ha a gyermek adatkészlete nemEDDGridFromErddap adatkészlet, amely ugyanazonERDDAP™A LonPM180 adatkészlet megpróbálja használni a rendszeres előfizetési rendszert az alapul szolgáló adatkészletre. Ha rendelkezik az előfizetési rendszerrel az ÖnbenERDDAP™fordult, meg kell kapni e-mailek kéri, hogy érvényesítse az előfizetést. Kérlek, tedd meg!
- Ha rendelkezik az előfizetési rendszerrel az ÖnbenERDDAP™Kikapcsolva, a LonPM180 adatkészlet néha elavult metaadatokkal rendelkezhet, amíg a LonPM180 adatkészletet újratöltik. Tehát, ha az előfizetési rendszer le van kapcsolva, be kell állítania a [[szerkesztés]]<újratöltés MindenNMinutes>] (#reloadeveryn percek) a LonPM180 adatkészlet kisebb számra történő beállítása, így nagyobb valószínűséggel elkapja a gyermek adatkészletének változásait.
EDDGridLonPM180 csontváz XML
<dataset type="EDDGridLonPM180" datasetID\="..." active\="..." >
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
EDDGridFromDap, this gets the remote .dds and then gets the new
leftmost (first) dimension values. -->
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<dataset>...</dataset> <!-- The child EDDGrid dataset. -->
</dataset>
EDDGridLon0360
EDDGridLon0360 módosítja a gyermek hosszúsági értékeit (bezárt) EDDGridolyan adatkészlet, amely kevesebb, mint 0 (például -180-180) hogy a 0-360-as tartományban vannak (Ezért a neve) ...
- A szüntelenséghez közeli munka problémákat okoz, függetlenül attól, hogy a szüntelenség hosszúságú 0 vagy hosszúságú 180. Ez az adatkészlet típus lehetővé teszi, hogy elkerülje ezeket a problémákat mindenki számára, két változata ugyanazt az adatkészletet: az egyik hosszúsági értékek a tartományban -180-180 ("Atlanticentric"?) ... a 0–360 közötti tartományban lévő hosszúsági értékek ("Pacificentric"?) ,
- A gyermekek adatkészleteinél kevesebb, mint 0, az új hosszúsági értékek mindössze 360 fokkal magasabbak. Például a -180–120 közötti hosszúsági értékű adatkészlet 180–240-es szélességi értékű adatkészlet lesz.
- Gyermekadatkészletek, amelyek hosszúságú értékek az egész világon (durván -180-180) Az új hosszúsági érték újrarendezésre kerül, hogy (durván) 0-360: Az eredeti -180-0 értékek 180–360-ra változnak, és a hosszúsági sor végére változnak. Az eredeti 0–180 érték változatlan.
- A lon=0-as gyermekadatok esetében, de ne fedje le a világot,ERDDAP™beilleszti a hiányzó értékeket, amelyek szükségesek ahhoz, hogy egy adatkészletet hozzanak létre, amely lefedi a világot. Például a -40-2020 közötti hosszúsági értékű gyermekadat egy 0-360-as hosszúsági értékű adatkészlet lesz. A 0-20 éves gyermekértékek változatlanok lesznek. Az új hosszúsági értékek 20-tól 320-ig lesznek beillesztve. A megfelelő adatértékek \_FillValues lesznek. A -40-0 gyermekértékei 320-ról 360-ra válnak. A hiányzó értékek beillesztése furcsának tűnhet, de elkerüli számos problémát, ami azt eredményezi, hogy a hosszúsági értékek hirtelen ugranak. (pl. 20 és 320 között) ...
- InkábbGenerateDatasetsXmlvan egy speciális "adatkészlet",EDDGridLon0360 ErddapCatalog, amely lehetővé teszi, hogy létrehozza adatasets.xmlMertEDDGridLon0360 adatkészletek mindegyikébőlEDDGridadatkészletek egyERDDAPolyan hosszúsági értékek, amelyek 180-nál nagyobbak. Ez megkönnyíti ezen adatkészletek két változatát: az eredeti, hosszúsági értékekkel a 0–360 tartományban, és az új adatkészlet, a hosszúsági értékek a -180-180 tartományban.
A gyermek adatkészlete minden egyesbenEDDGridLon0360 adatkészlet leszEDDGridFromErddap adatkészlet, amely az eredeti adatkészletre vonatkozik. Az új adatkészletdatasetIDlesz az eredeti adatkészlet neve, plusz "\_Lon0360". Például,
<dataset type="EDDGridLon0360" datasetID="erdMBsstdmday\\_Lon0360" active="true">
<dataset type="EDDGridFromErddap" datasetID="erdMBsstdmday\\_Lon0360Child">
<!-- SST, Aqua MODIS, NPP, 0.025 degrees, Pacific Ocean, Daytime
(Monthly Composite) minLon=-40.0 maxLon=20.0 -->
<sourceUrl>https://coastwatch.pfeg.noaa.gov/erddap/griddap/erdMBsstdmday
</sourceUrl>
</dataset>
</dataset>
Tedd le aEDDGridLon0360 adatkészlet alább az eredeti adatkészletdatasets.xml... Ez elkerüli néhány lehetséges problémát.
Alternatívaként helyettesítheti aEDDGridFromErddap gyermek adatkészlet az eredeti adatkészletteldatasets.xml... Ezután az adatkészlet csak egy verziója lesz: az egy, 0-360-on belüli hosszúsági értékekkel. Ezt azért elriasztjuk, mert vannak olyan idők, amikor az adatkészlet minden verziója kényelmesebb.
- Ha egy adatkészlet két verzióját kínálja, például egy, 0-360-as hosszúsággal, és egy hosszúsággal -180-180-as 180-as:
- Használhatja az opcionális [<hozzáférhető ViaWMS> Hamis</Csak elérhető ViaWMS>>>>>> (#Ccessibleviawms) a 0–360 adatkészlettel, hogy könnyedén letiltsa aWMSszolgáltatás erre az adatkészletre. Ezután csak az adatkészlet -180–180 verziója elérhető leszWMS...
- Van néhány módja annak, hogy a Lon0360 adatállományt naprakészen tartsa a mögöttes adatállomány változásaival:
- Ha a gyermek adatkészlete egyEDDGridFromErddap adatkészlet, amely ugyanazon adatkészletre hivatkozikERDDAP™A Lon0360 adatkészlet közvetlenül feliratkozik a mögöttes adatkészletre, hogy mindig naprakész legyen. A közvetlen előfizetések nem generálnak olyan e-maileket, amelyek arra kérik Önt, hogy érvényesítse az előfizetést - az érvényesítést automatikusan meg kell tenni.
- Ha a gyermek adatkészlete nemEDDGridFromErddap adatkészlet, amely ugyanazonERDDAP™A Lon0360 adatkészlet megpróbálja használni a rendszeres előfizetési rendszert az alapul szolgáló adatkészletre. Ha rendelkezik az előfizetési rendszerrel az ÖnbenERDDAP™fordult, meg kell kapni e-mailek kéri, hogy érvényesítse az előfizetést. Kérlek, tedd meg!
- Ha rendelkezik az előfizetési rendszerrel az ÖnbenERDDAP™Kikapcsolva, a Lon0360 adatkészlet néha elavult metaadatokkal rendelkezhet, amíg a Lon0360 adatkészletet vissza nem töltik. Tehát, ha az előfizetési rendszer le van kapcsolva, be kell állítania a [[szerkesztés]]<újratöltés MindenNMinutes>] (#reloadeveryn percek) a Lon0360 adatkészlet kisebb számra történő beállítása, így nagyobb valószínűséggel fogja elkapni a gyermek adatkészletének változásait.
EDDGridLon0360 csontváz XML
<dataset type="EDDGridLon0360" datasetID\="..." active\="..." >
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
EDDGridFromDap, this gets the remote .dds and then gets the new
leftmost (first) dimension values. -->
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<dataset>...</dataset> <!-- The child EDDGrid dataset. -->
</dataset>
EDDGridSideBySide
EDDGridSideBySide aggregál két vagy többEDDGridadatkészletek (gyerekek) oldalról oldalra.
- Az ebből eredő adatkészlet minden változóval rendelkezik az összes gyermek adatkészletből.
- A szülői adatkészlet és az összes gyermek adatkészlet MUST eltérődatasetIDS. Ha a család bármely neve pontosan ugyanaz, az adatkészlet nem terheli (a hibaüzenet, hogy az összesített tengely értékei nem rendezett rendben vannak) ...
- Minden gyereknek ugyanaz a forrásértéke vanaxisVariables\[1+\] (Például a magasság, a hosszúság) ... A vizsgálat pontosságát a tesztelés határozza megAxisNDigits...
- A gyerekeknek különböző forrásértékei lehetnekaxisVariables\[0 0\] (például az idő) De általában nagyjából ugyanazok.
- A szülői adatkészlet úgy tűnik, hogy az összesaxisVariables\[0 0\]forrásértékek az összes gyermektől.
- Például ez lehetővé teszi, hogy egy forrásadatot egy vektor komponensével és egy másik forrásadatot egy vektor v-komponensével kombináljon, így a kombinált adatok szolgálhatnak.
- A módszer által létrehozott gyermekeket magántulajdonban tartják. Nem külön hozzáférhető adatkészletek (például az ügyféladatkérések vagy azzászló fájlok) ...
- A világméretű metaadat és a szülői beállítások a globális metaadatból származnak, és az első gyermek beállításai.
- Ha van egy kivétel az első gyermek létrehozása közben, a szülő nem jön létre.
- Ha van egy kivétel, miközben más gyerekeket hozunk létre, ez egy e-mailt küld az EverythingTo-nak. (a megadottsetup.xml) és folytatódik a többi gyerekkel.
EDDGridSideBySide csontváz XML
<dataset type="EDDGridSideBySide" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<dataset>...</dataset> <!-- 2 or more -->
</dataset>
EDDGridAggregateExistingDimenzió
EDDGridAggregateExistingDimenzió aggregál két vagy többEDDGridadatkészletek, amelyek mindegyike különböző értékek az első dimenzió, de azonos értékek a többi dimenzióban.
- Például egy gyermek adatkészletnek 366 értéke lehet (2004-re) az idő dimenziója és egy másik gyermeknek 365 értéke lehet (2005-re) az idő dimenziója.
- Az összes többi dimenzió értéke (Például a magasság, a hosszúság) MUST legyen azonos minden gyermek számára. A vizsgálat pontosságát a tesztelés határozza megAxisNDigits...
- Osztott dimenziós értékek - Az értékek minden dimenzióban MUST lehet rendezett rendben (Felemelkedés vagy leszármazás) ... Az értékek szabálytalanul helyreállhatnak. Nem lehetnek kapcsolatok. Ez a követelmény aCF metaadat szabvány... Ha bármely dimenzió értéke nem rendezett rendben van, az adatkészlet nem lesz betöltve ésERDDAP™azonosítja az első fel nem szorított értéket a logfájlban, bigParentDirectory[szerkesztés] /logs/log.txt .
A nem szorított dimenziós értékek szinte mindig problémát jelentenek a forrásadatokkal. Ez a leggyakrabban akkor fordul elő, amikor egy tévhit vagy nem megfelelő fájl szerepel a gyülekezetben, ami egy szorulatlan idő dimenzióhoz vezet. A probléma megoldásához lásd a hibaüzenetetERDDAP™log.txt fájl, hogy megtalálja a megsértő időértéket. Ezután nézze meg a forrásfájlokat, hogy megtalálja a megfelelő fájlt (vagy egy előtt vagy után) ez nem tartozik a gyülekezetbe.
- A szülői adatkészlet és a gyermek adatkészlete eltérődatasetIDS. Ha a család bármely neve pontosan ugyanaz, az adatkészlet nem terheli (a hibaüzenet, hogy az összesített tengely értékei nem rendezett rendben vannak) ...
- Jelenleg a gyermek adatkészlete MUST lehet egyEDDGridFromDap adatkészlet és MUST van a legalacsonyabb értékek az összesített dimenzió (általában a legrégebbi időértékek) ... Az összes többi gyereknek szinte azonos adatkészletnek kell lennie (különbözik csak az első dimenzió értékeiben) és csak sajátjuk határozza megsourceUrl...
- Az összesített adatkészlet az első gyermektől kapja a metaadatát.
- AGenerateDatasets Xml programdurva tervezetet készíthetdatasets.xmlegyEDDGridAggregateExistingDimension egy sor fájl alapján, amelyet egyHyraxvagy THREDS szerver. Például használja ezt a bemenetet a programhoz (az URL "1988" példája gyorsabb) :
EDDType? EDDGridAggregateExistingDimension
Server type (hyrax, thredds, or dodsindex)? hyrax
Parent URL (for example, for hyrax, ending in "contents.html";
for thredds, ending in "catalog.xml")
? https://opendap.jpl.nasa.gov/opendap/ocean\\_wind/ccmp/L3.5a/data/
flk/1988/contents.html
File name regex (for example, ".\\*\\.nc")? month.\\*flk\\.nc\\.gz
ReloadEveryNMinutes (for example, 10080)? 10080
Használhatja az eredményt<sourceUrl> címkék vagy törölje őket, és kommentálja a<sourceUrl> címke (így az új fájlokat minden alkalommal észreveszik, amikor az adatkészletet újratöltik.
EDDGridAggregateExistingDimension csontváz XML
<dataset type="EDDGridAggregateExistingDimension" datasetID\="..."
active\="..." >
<dataset>...</dataset> <!-- This is a regular EDDGridFromDap dataset
description child with the lowest values for the aggregated
dimensions. -->
<sourceUrl>...</sourceUrl> <!-- 0 or many; the sourceUrls for
other children. These children must be listed in order of
ascending values for the aggregated dimension. -->
<sourceUrls serverType="..." regex="..." recursive="true"
pathRegex\=".\"
>https://someServer/someDirectory/someSubdirectory/catalog.xml</sourceUrls>
<!-- 0 or 1. This specifies how to find the other children,
instead of using separate sourceUrl tags for each child. The
advantage of this is: new children will be detected each time
the dataset is reloaded. The serverType must be "thredds",
"hyrax", or "dodsindex". An example of a regular expression (regex) (tutorial) is .\\.nc
recursive can be "true" or "false".
Only directory names which match the
<pathRegex>
(default=".\*") will be accepted.
A thredds catalogUrl MUST include "/thredds/catalog/".
An example of a thredds catalogUrl is
https://thredds1.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/
chla/catalog.xml
An example of a hyrax catalogUrl is
https://opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/
flk/1988/contents.html
An example of a dodsindex URL is
https://opendap.jpl.nasa.gov/opendap/GeodeticsGravity/tellus/L3/mascon/RL06/JPL/v02/CRI/netcdf/contents.html
(Note the "OPeNDAP logo at the top of the page.)
When these children are sorted by filename, they must be in
order of ascending values for the aggregated dimension. -->
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
</dataset>
EDDGridMásolás
EDDGridMásolás létrehozza és fenntartja a másik helyi másolatátEDDGridAz adatok és szolgálja az adatokat a helyi másolatból.
- EDDGridMásolás (és a mesés adatok esetében,EDDTableCopy) nagyon könnyen használható és nagyon hatékony
megoldás néhány legnagyobb probléma az adatok távoli adatforrásból történő kiszolgálásával:
- A távoli adatforrásból származó adatokhoz való hozzáférés lassú lehet.
- Lassú lehet, mert őszintén lassú (például egy nem hatékony típusú szerver) ,
- mert túl sok kérés túlterhelt,
- vagy mert a szerver vagy a távoli szerver korlátozott a sávszéless ég.
- A távoli adatkészlet néha nem elérhető (ismét, különböző okok miatt) ...
- Az adatok egyik forrására való támaszkodás nem mérlegeli jól (Például, amikor sok felhasználó és sokERDDAPHasználja) ...
- A távoli adatforrásból származó adatokhoz való hozzáférés lassú lehet.
- Hogyan működik -EDDGridA másolat ezeket a problémákat automatikusan megoldja és fenntartja az adatok helyi másolatát, és adatokat szolgáltat a helyi másolatból.ERDDAP™nagyon gyorsan szolgálhat a helyi másolatból származó adatokat. És a helyi másolat megkönnyíti a terhet a távoli szerveren. És a helyi másolat az eredeti mentés, amely hasznos abban az esetben, ha valami történik az eredeti.
Nincs semmi új az adatkészlet helyi másolatának elkészítéséről. Mi az új itt, hogy ez az osztály teszi\*könnyű\*létrehozni és létrehozni\*Fenntartás\*az adatok helyi másolata egy\*változat\*távoli adatforrások és\*Metaadat\*az adatok másolása közben.
- Adatgyűjtés -EDDGridA másolat az adatok helyi másolatát azáltal teszi, hogy a távoli adatcsomagokat kéri<adatkészlet> Lesz egy darab a baloldal minden értékére (először) axis változó.EDDGridA másolat nem támaszkodik a távoli adatkészlet indexszámára a tengelyre - ezek változhatnak.
FIGYELMEZTETÉS: Ha egy darab adat mérete olyan nagy (> > > > 2GB) ez problémákat okoz,EDDGridA másolat nem használható. (Sajnáljuk, reméljük, hogy megoldást találunk erre a problémára a jövőben.)
- \[alternatívaEDDGridMásolás - Ha a távoli adatok letölthető fájlokon keresztül érhetők el, nem webes szolgáltatás, használatHúsvét FromUrl opcióEDDGridFájlok, amely helyi másolatot készít a távoli fájlokról, és szolgálja az adatokat a helyi fájlokból.\]
- Helyi fájlok - Az adatok minden része külön tárolódikNetCDFfájl egy aláírásban bigParentDirectory[szerkesztés] /copy/ datasetID / (a megadottsetup.xml) ... A tengelyértékekből létrehozott tüzelőanyagokat módosítják, hogy fájlnév-biztonságot hozzanak létre (Például a hyphenseket "x2D" helyettesíti) - ez nem befolyásolja a tényleges adatokat.
- Új adatok - Minden alkalommalEDDGridA másolatot újratöltik, ellenőrzi a távoli<adatkészlet> megnézni, hogy milyen zsákok állnak rendelkezésre. Ha a fájl egy darab adat nem létezik, a kérés, hogy a zsákmány hozzáadott egy sor.ERDDAP„Thread feldolgozza az összes megkeresett kérelmet az adatcsomagok, egy-egy. Láthatja a statisztikákat a Thread tevékenységéhezStatus oldalés aNapi jelentés... (Igen,ERDDAP™több feladatot rendelhetne erre a folyamatra, de ez sok távoli adatforrás sávszélességét, memóriáját és CPU időt használna, és sok helyiERDDAP"Sávszélesség, memória és CPU idő, amelyek egyike sem jó ötlet.)
MEGJEGYZÉS: Az első alkalomEDDGridA másolatot betöltik, (ha minden jól megy) Számos adatkérés kerül hozzáadásra a feladathozHárom sorrendje, de nem hoztak létre helyi adatfájlokat. Tehát a konstrukció kudarcot vall, de a feladatThread továbbra is dolgozik, és létrehozza a helyi fájlokat. Ha minden jól megy, a feladatThread néhány helyi adatfájlot készít, és a következő kísérletet, hogy újratöltse az adatkészletet (~15 perc) sikeres lesz, de kezdetben nagyon korlátozott mennyiségű adattal.
MEGJEGYZÉS: A helyi adatkészlet után van néhány adat, és megjelenik az Ön adataibanERDDAPHa a távoli adatkészlet ideiglenesen vagy állandóan nem hozzáférhető, a helyi adatkészlet továbbra is működik.
WARNING: Ha a távoli adatkészlet nagy, és / vagy a távoli szerver lassú (Ez a probléma, nem?!) Hosszú időbe telik, hogy teljes helyi másolatot készítsen. Bizonyos esetekben a szükséges idő elfogadhatatlan lesz. Például 1 TB adatátvitel egy T1-es vonalon keresztül (0,15 GB/s) legalább 60 napot vesz igénybe, optimális körülmények között. Ráadásul sok sávszélességet, memóriát és CPU időt használ a távoli és helyi számítógépeken. A megoldás az, hogy kemény meghajtót küldjön a távoli adatok adminisztrátorához, hogy a s / ő készítsen egy példányt az adathalmazról, és elküldje a merevlemezt vissza. Használja ezt az adatokat kiindulópontként ésEDDGridA másolás hozzáadja az adatokat. (Ez egy módja annak, hogyAz Amazon EC2 Cloud Servicekezeli a problémát, bár rendszerüknek sok sávszélessége van.)
WARNING: Ha egy adott érték a baloldal számára (először) axis változó eltűnik a távoli adatkészletből,EDDGridA másolat nem töröli a helyi másolt fájlt. Ha akarod, törölheted magad.
Grid Copy ellenőrzés Adatok
Adatasets.xmlez az adatkészlet lehet egy opcionális címke
<checkSourceData>true</checkSourceData>
Az alapértelmezett érték igaz. Ha/ha hibáztatja, az adatkészlet soha nem fogja ellenőrizni a forrásadatlapot, hogy megnézze, van-e további adatok.
Csak
ElmondhatjaEDDGridMásolás, hogy készítsen egy másolatot a forrásadatkészlet, ahelyett, hogy a teljes forrásadat, azáltal, hogy hozzá egy címke formájában<JustSince> Néhány Érték </onlySince> az adatkészlethezdatasets.xmlcunk.EDDGridA másolat csak az első dimenzió értékeivel kapcsolatos adatértékeket fogja letölteni (általában az idő dimenziója) ami nagyobb, mint Néhány Érték ... Néhány Érték lehet:
-
A relatív idő, amelyet anow- nUnits ... Például,<JustSince>now-2 év</onlySince> azt mondja az adatkészletnek, hogy csak helyi másolatokat készítsen az adatokhoz, ahol a külső dimenzió értékei (rendszerint időértékek) az elmúlt 2 évben (amely minden alkalommal újraértékelődik, az adatkészletet újratöltik, ami az, amikor új adatokat keres másolni) ... Lásd:now- nUnits Szintax leírás... Ez akkor hasznos, ha az első dimenziónak van időadata, amit általában tesz.
EDDGridA másolat nem törli azokat a helyi adatfájlokat, amelyeknek idővel adatai vannak, idősebbek lesznek, mintnow- nUnits ... E fájlokat bármikor törölheti, ha úgy dönt. Ha igen, akkor erősen javasoljuk, hogy állítson be egyzászlóMiután törölte a fájlokat, hogy elmondjaEDDGridMásolja a csípett fájlok listájának frissítését.
-
Az ISO 8601 sztringként meghatározott időben rögzített pontyyyy-MM-ddTHH:mm:ssZ... Például,<JustSince>2000-01-01T00:00Z</onlySince> csak az adatkészletet mondja el, hogy olyan helyi adatmásolatokat készítsen, ahol az első dimenzió értéke \>=2000-01-01T00:00Z. Ez akkor hasznos, ha az első dimenziónak van időadata, amit általában tesz.
-
Egy lebegő pontszám. Például,<JustSince>946684800.0</onlySince> Az egységek lesznek az első dimenzió úti egységei. Például az idő dimenziók esetében az egységekERDDAP™mindig"seconds since 1970-01-01T00:00:00Z"... 946684800.0"seconds since 1970-01-01T00:00:00Z"egyenértékű a 2000-01-01T00:00Z. Ez mindig hasznos lehetőség, de különösen hasznos, ha az első dimenziónak nincs időadata.
EDDGridCopy Recomended használat
- Hozzon létre<adatkészlet> Belépés (az őshonos típus, nemEDDGridMásolás) a távoli adatforráshoz. Szerezd megfelelően, beleértve az összes kívánt metaadatot is.
- Ha túl lassú, add hozzá az XML kódot, hogy csomagolja be egyEDDGridMásolási adatkészlet.
- Használjon mástdatasetID (talán megváltoztatvadatasetIDa régidatasetIDkissé) ...
- Másolja a<hozzáférhető>>,<ReloadEveryNMinutes> és<onChange> távolrólEDDGridXML aEDDGridCopy XML. (ÉrtékeikEDDGridMásolási anyag; a belső adatkészlet értékei irrelevánsak.)
- ERDDAP™az adatok helyi másolatát készíti és tartsa fenn.
- WARNING:EDDGridA másolás azt feltételezi, hogy az egyes részegek adatértékei soha nem változnak. Ha / ha megteszik, manuálisan törölnie kell a chunk fájlokat bigParentDirectory[szerkesztés] /copy/ datasetID / amely megváltozott észászlóaz adatkészletet újra kell tölteni, hogy a törölt darabokat lecseréljék. Ha van egy e-mail előfizetése az adatkészlethez, akkor két e-mailt kap: az egyik, amikor az adatkészlet először újratölti és elkezdi másolni az adatokat, és egy másik, amikor az adatkészlet ismét betölti (automatikusan) és észleli az új helyi adatfájlokat.
- Minden tengelyértéknek egyenlőnek kell lennie. Minden tengelyre, kivéve a baloldalt (először) Az összes értéknek egyenlőnek kell lennie minden gyermek számára. A vizsgálat pontosságát a tesztelés határozza megAxisNDigits...
- Beállítások, Metadata, változók -EDDGridA másolat a zárt forrásadatból származó beállításokat, metaadatokat és változókat használja.
- Metadata megváltoztatása - Ha meg kell változtatniaddAttributesvagy megváltoztatja a forrásadatokkal kapcsolatos változók sorrendjét:
- Változtasd megaddAttributesa forrásadatkészlethezdatasets.xmlszükség szerint.
- Törölje az egyik másolt fájlt.
- Állj be egyzászlóaz adatkészlet azonnali újratöltéséhez. Ha egy zászlót használ, és e-mail előfizetése van az adatkészlethez, két e-mailt kap: az egyik, amikor az adatkészlet először visszatölti és elkezdi másolni az adatokat, és egy másik, amikor az adatkészlet ismét betöltődik (automatikusan) és észleli az új helyi adatfájlokat.
- A törölt fájlt az új metaadatokkal fogják regenerálni. Ha a forrásadatbázis valaha elérhető, azEDDGridA másolási adatkészlet metaadatot kap a regenerált fájlból, mivel ez a legfiatalabb fájl.
EDDGridMásolási csontváz XML
<dataset type="EDDGridCopy" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaFiles>true|false(default)</accessibleViaFiles>
<!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<matchAxisNDigits>...</matchAxisNDigits> <!-- 0 or 1 -->
<fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or false
(the default)) -->
<checkSourceData>...</checkSourceData> <!-- 0 or 1 -->
<onlySince>...</onlySince> <!-- 0 or 1 -->
<dataset>...</dataset> <!-- 1 -->
</dataset>
EDDTableFromCassandra
EDDTableFromCassandra adatokat kezel egybőlCassandraasztal. A Cassandra egy NoSQL adatbázis.
- ERDDAP™Cassandra v2-vel és v3-val dolgozhat a beállítások változásai vagy különbségei nélkül. TeszteltünkCassandra v2 és v3 Apache... Valószínű, hogyERDDAP™Cassandra-val is dolgozhat a DataStax-ból.
- Aug 2019 - május 2021, baj volt, hogy Cassandra dolgozni AdoptOpenJdkJavav8. Ez egy EXCEPTION\_ACCESS\_VIOLATION-t vezetett be. De most (2021 május) Ez a probléma eltűnt: sikeresen használhatjuk a Cassandra v2.1.22-et és az AdoptOpenJdk jdk8u292-b10-et.
Egy asztal
A Cassandra nem támogatja a "joins"-t abban, ahogyan a kapcsolati adatbázisok teszik. EgyetlenERDDAP™EDDTableFromCassandra adatkészlet térképek egy (talán egy aljzat) Cassandra asztal.
Cassandradatasets.xml
- ERDDAP™jön a CassandraJavasofőr, így nem kell külön telepíteni.
- Óvatosan olvassa el a dokumentum összes információját az EDDTableFromCassandra-ról. Néhány részlet nagyon fontos.
- A CassandraJavaA sofőr az Apache Cassandra-val dolgozik (1.2+) DataStax Enterprise (3.1+) ... Ha Apache Cassandra 1.2.x-t használ, szerkesztenie kell a cassandra.yaml fájlt minden csomó számára, hogy beállítsa az induló\_transportot: igaz, majd indítsa újra az egyes csomópontokat.
- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti azt, hogy finomhangolja azt (különösen [<partíció KeySourceNames>] (#partitionkeysourcenames) ). Összegyűjtheti az XML létrehozásához szükséges információkat az EDDTableFromCassandra adatkészlethez, kapcsolatba lépve a Cassandra adminisztrátorral és az internet keresésével.
GenerateDatasets Az Xml-nek két speciális lehetősége van az EDDTableFromCassandra számára:
- Ha belépsz "!!!LIST!!!" (idézetek nélkül) a kulcstér számára a program megjeleníti a kulcsszók listáját
- Ha belép egy konkrét kulcstérbe, majd lépjen be a "!!!LIST!!!" (idézetek nélkül) az asztalnév számára a program megjeleníti az asztalok listáját a kulcstérben és az oszlopokban.
Eset érzékenység
- Az eset-érzékeny kulcstér és asztali nevek - Cassandra kezeli a kulcstér és az asztal nevek egy eset-érzékeny módon. Emiatt soha nem használsz fenntartott szót (más esetekkel,) Cassandra kulcstérként vagy asztali névként.
- Az eset-inszenzitív oszlop nevek - Alapértelmezés szerint Cassandra eset-érzékeny módon kezeli az oszlopneveket. Ha Cassandra egyik fenntartott szavait oszlop névként használja (Kérlek, ne!) Használata
<columnNameQuotes>"<columnNameQuotes>
bennedatasets.xmla Cassandra ésERDDAP™kezelni fogja az oszlop neveket esetérzékeny módon. Ez valószínűleg egy hatalmas fejfájás lesz az Ön számára, mert nehéz meghatározni az oszlopnevek érzékeny változatait - Cassandra szinte mindig az oszlopneveket mutatja, mint az összes alacsonyabb esetet, függetlenül az igaz esettől.
- szorosan együttműködik a Cassandra adminisztrátorával, akinek releváns tapasztalatai lehetnek. Ha az adatkészlet nem terheli, olvassa elhibaüzenetalaposan megtudni, miért.
Cassandra<kapcsolat Property & Gt;
Cassandra olyan kapcsolati tulajdonságokkal rendelkezik, amelyeket meg lehet határoznidatasets.xml... Ezek közül sokan befolyásolják a Cassandra-díj teljesítményétERDDAP™kapcsolat. Sajnos a Cassandra tulajdonságokat programszerűen kell beállítaniJava, ígyERDDAP™kódot kell tartalmaznia minden ingatlan számáraERDDAP™támogatás. Jelenleg,ERDDAP™támogatja ezeket a tulajdonságokat: (Az alapértelmezettek az, amit látunk. A rendszer alapjai eltérőek lehetnek.)
- Általános lehetőségek
<kapcsolat Tulajdonos neve=" tömörítés ">>> Nem|LZ4|Snappy </összeköttetés Tulajdonság> (eset-insensitive, default=none)
(Általános tömörítési tanács: „nem” használat, ha a Cassandra ésERDDAP™helyi/gyors és használja az LZ4-et, ha a kapcsolat távoli/lassú.)
<kapcsolat Tulajdonos neve=" hitelesítő anyagok ">>> felhasználónév/password </összeköttetés Tulajdonság> (Ez egy szó szerinti'/')
<kapcsolat Tulajdonos neve=" metrikák ">>> Igaz|hamis </összeköttetés Tulajdonság> (2021-01-25 volt alapértelmezett=igaz, most figyelmen kívül hagyták és mindig hamis)
<kapcsolat Tulajdonos neve=" port ">>> anIntegrátor </összeköttetés Tulajdonság> (natív bináris protokoll alapértelmezése=9042)
<kapcsolat Tulajdonos neve=" Súgó ">>> Igaz|hamis </összeköttetés Tulajdonság> (Default=false)
(A gyors próbálkozásom, hogy a ssl sikertelen legyen. Ha sikerül, mondd el nekem, hogyan csináltad.) - Kérdés Opciók
<kapcsolat Tulajdonos neve=" következetesség Szint ">>> Minden|Minden|Minden \_quorum|helyi\_one|Helyi \_quorum|helyi\_serial|Egy|kvórum|Serial|három|kettő </összeköttetés Tulajdonság> (eset-insensitive, default=ONE)
<kapcsolat Tulajdonos neve=" fetchSize ">>> anIntegrátor </összeköttetés Tulajdonság> (default=5000)
(Ne állítsa be a fetchSize-t kisebb értékre.)
<kapcsolat Tulajdonos neve=" dalszöveg: SerialConsistencyLevel ">>> Minden|Minden|Minden \_quorum|helyi\_one|Helyi \_quorum|helyi\_serial|Egy|kvórum|Serial|három|kettő </összeköttetés Tulajdonság> (eset-insensitive, default=SERIAL) - Socket Opciók
<kapcsolat Tulajdonos neve=" connectTimeoutMillis ">>> anIntegrátor </összeköttetés Tulajdonság> (default=5000)
(Ne állítson összeköttetést TimeoutMillis egy kisebb értékre.)
<kapcsolat Tulajdonos neve=" Tartalom ">>> Igaz|hamis </összeköttetés Tulajdonság> <kapcsolat Tulajdonos neve=" dalszöveg: TimeoutMillis ">>> anIntegrátor </összeköttetés Tulajdonság> (Cassandra alapértelmezett olvasmányaTimeoutMillis 12000, deERDDAP™megváltoztatja az alapértelmezettet 120000-re. Ha Cassandra az olvasásTimeouts-ot dobja, akkor ez nem segíthet, mert Cassandra néha ezt megelőzi. A probléma valószínűbb, hogy túl sok adatot tárolsz partíciónként Kulcs kombináció.)
<kapcsolat Tulajdonos neve=" GetBufferSize ">>> anIntegrátor </összeköttetés Tulajdonság> (Nem világos, hogy mi az alapértelmezett GetBufferSize. Ne állítsa be ezt egy kis értékre.)
<kapcsolat Tulajdonos neve=" SoLinger ">>> anIntegrátor </összeköttetés Tulajdonság> <kapcsolat Tulajdonos neve=" tcpNoDelay ">>> Igaz|hamis </összeköttetés Tulajdonság> (Default=null)
Ha más kapcsolati tulajdonságokat kell beállítania, lásd a miénketrész további támogatás megszerzéséről...
A Tomcat egy adott startupja esetében a kapcsolatfeltételeket csak az első alkalommal használják, amikor egy adatkészletet hoznak létre egy adott Cassandra URL-hez. Mindezek az adatkészletek és az összes későbbi adatkészletek, amelyek ugyanazt az URL-t osztják, ezeket az eredeti kapcsolatfeltételeket fogják használni.
CQL
Cassandra Query Nyelv (CQL) felületesen olyan, mint az SQL, a hagyományos adatbázisok által használt lekérdezési nyelv. MertOPeNDAP„A mesés adatok kéréseit az SQL mesés adatok kéréseire tervezték, lehetséges, hogyERDDAP™a tabuláris adatkérelmek CQL Bound/PreparedStatements-be történő átalakítása.ERDDAP™bejelenti a nyilatkozatotLog.txtmint
szövegkénti nyilatkozat: TheStatementAsText
Az Ön által látott nyilatkozat változata a nyilatkozat szöveges képviselete lesz, és csak "?", ahol a korlátozott értékek kerülnek elhelyezésre.
Nem olyan egyszerű - Sajnos a CQL-nak számos korlátozása van, amelyen az oszlopok lekérdezhetők, például a partíciós kulcsfontosságú oszlopokat lehet korlátozni = és IN, ígyERDDAP™bizonyos korlátozásokat küld Cassandra-nak, és minden korlátozást alkalmaz, miután az adatok Cassandra-ból érkeztek. SegítségERDDAP™hatékonyan kezelje a Cassandrát, meg kell határoznia [<partíció KeySourceNames>] (#partitionkeysourcenames) [[szerkesztés]]<clusterColumnSourceNames> (#clustercolumnsourcenames) és [<indexColumnSourceNames> (#indexcolumnsourcenames) bennedatasets.xmlehhez az adatkészlethez. Ezek a legfontosabb módja annak, hogy segítsünkERDDAP™hatékonyan működik Cassandra-val. Ha nem mondodERDDAP™ez az információ, az adatkészlet fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
<partíció KeySourceNames & Gt;
Mivel a partíciós kulcsok központi szerepet játszanak a Cassandra asztalokban,ERDDAP™tudni kellsourceNames és ha releváns, egyéb információk arról, hogyan kell velük dolgozni.
- Ön MUST határozza meg a részecskék fő forráskódú oszlop nevek kombinációs elválasztott listájátdatasets.xmlkeresztül<partíció KeySourceNames>. Egyszerű példa,
<partitionKeySourceNames>station, deviceid<partitionKeySourceNames>
Összetettebb példa,
<partitionKeySourceNames>deviceid=1007, date/sampletime/1970-01-01<partitionKeySourceNames>
- TimeStamp Partition kulcsok - Ha az egyik partíciós kulcsoszlop egy olyan ütemes oszlop, amely egy másik ütemes oszlop koarser verziójával rendelkezik, ezt megadja
PartitionKeySourcName/OtherColumnSourceName/time\_precision
aholtime\_precisionaz egyik aztime\_precisionmáshol használt húrokERDDAP... A Z nyomvonal atime\_precisiona húr az alapértelmezett, így nem számít, ha atime\_precisionA sztring vége Z-ben vagy sem. Például,ERDDAP™tolmácsolja a dátumot/mintaidő/1970-01-01 "A dátumra vonatkozó korlátozásokat a mintavételi korlátozásokból lehet felépíteni, ezzeltime\_precision» A korlátok tényleges átalakítása bonyolultabb, de ez az áttekintés. Használja ezt, amikor releváns. Ez lehetővé tesziERDDAP™hatékonyan dolgozzon Cassandrával. Ha az oszlopok közötti kapcsolat létezik egy Cassandra asztalnál, és nem mondodERDDAP™Az adatkészlet fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat. - Egyedül Value Partition Keys - Ha akarsz egyetERDDAP™adatkészlet, hogy csak egy értékű egy partíciós kulcs, meghatározott partitionKeySourceName=érték ... Ne használjon idézeteket egy numerikus oszlophoz, például az eszközid=1007 Használjon idézeteket egy String oszlophoz, például a Stid="Point Pinos"
- Dataset Default Sort Order -- A partíciós kulcs rendje<dataVariable> adatasets.xmlmeghatározza a Cassandra eredményeinek alapértelmezett rendezését. Természetesen a felhasználók más típusú megrendelést kérhetnek egy adott eredménykészlethez a jóváhagyással ésorderBy ("..." Comma-elválasztott lista a változókról "...") lekérdezésük végére.
- Alapértelmezett, Cassandra ésERDDAP™kezelje az oszlop neveket eset-érzékeny módon. De ha beállítottadoszlopNameQuotes",ERDDAP™kezelni fogja a Cassandra oszlop neveket eset-érzékeny módon.
<partíció KeyCSV>
Ha ez meg van határozva,ERDDAP™használja, ahelyett, hogy Cassandra-t kérne a partícióra Minden alkalommal kulcsfontosságú információkat töltenek be az adatkészlet. Ez biztosítja a különálló partíciós kulcsértékek listáját, annak érdekében, hogy használják őket. Az időket 1970-01-01T00:00Z óta másodpercként kell meghatározni. De van még két különleges alternatív módja annak, hogy meghatározza az időket (minden kódolt, mint egy sztring) :
- idő (aISO8601 Idő) (MAY kódolva, mint egy sztring)
- „idők (anISO8601StartTime, strideSeconds, stopTime) "..." (MUST kódolva, mint egy sztring)
Megáll Az idő lehet ISO8601 Idő vagy egy "now-nUnits" idő (pl.: "now-3 perc”) ... Megáll Az időnek nem kell pontos mérkőzésnek lennie a kezdéshez Idő + x strideSeconds. Egy sor egy alkalommal () az érték több sorba kerül minden lekérdezés előtt, így a partíció listája A kulcsok mindig tökéletesen naprakészek lehetnek. Például,
<partitionKeyCSV>
deviceid,date
1001,"times(2014-11-01T00:00:00Z, 86400, 2014-11-02T00:00:00Z)"
1007,"time(2014-11-07T00:00:00Z)"
1008,time(2014-11-08T00:00:00Z)
1009,1.4154912E9
</partitionKeyCSV>
bővül a partíciós kulcskombinációk ebbe az asztalba:
deviceid,date
1001,1.4148E9
1001,1.4148864E9
1007,1.4153184E9
1008,1.4154048E9
1009,1.4154912E9
<clusterColumnSourceNames & gt;
Cassandra elfogadja az SQL-szerű korlátokat a klaszteroszlopokra, amelyek az elsődleges kulcs második részét képező oszlopok. (a partíciós kulcs után (s) ) ... Tehát elengedhetetlen, hogy azonosítsa ezeket az oszlopokat keresztül<clusterColumnSourceNames>. Ez lehetővé tesziERDDAP™hatékonyan dolgozzon Cassandrával. Ha vannak klaszter oszlopok, és nem mondodERDDAPAz adatkészlet fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
- Például,<clusterColumnSourceNames> myClusterColumn1, myClusterColumn2 </clusterColumnSourceNames>
- Ha egy Cassandra asztalnak nincs klaszteres oszlopa, vagy nem adja meg<clusterColumnSourceNames>, vagy úgy határozza meg, hogy nincs értéke.
- Alapértelmezett, Cassandra ésERDDAP™kezelje az oszlop neveket eset-érzékeny módon. De ha beállítottadoszlopNameQuotes",ERDDAP™kezelni fogja a Cassandra oszlop neveket eset-érzékeny módon.
<indexColumnSourceNames & gt;
Cassandra elfogadja'='a másodlagos index oszlopokra vonatkozó korlátozások, amelyek az oszlopok, amelyeket kifejezetten létrehozott indexek segítségével
CREATE INDEX *indexName* ON *keyspace.tableName* (*columnName*);
(Igen, a parentheses szükséges.)
Tehát nagyon hasznos, ha azonosítja ezeket az oszlopokat keresztül<indexColumnSourceNames> Ez lehetővé tesziERDDAP™hatékonyan dolgozzon Cassandrával. Ha vannak index oszlopok, és nem mondodERDDAPNéhány kérdésre szükségtelenül, fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
- Például,<indexColumnSourceNames> myIndexColumn1, myIndexColumn2 </indexColumnSourceNames>
- Ha egy Cassandra asztalnak nincs indexoszlopa, vagy nem adja meg<indexColumnSourceNames>, vagy úgy határozza meg, hogy nincs értéke.
- WARNING: A Cassandra indexek nem szeretik az adatbázis indexeket. Cassandra indexek csak segítenek'='korlátok. Ők csakajánlottolyan oszlopok esetében, amelyek sokkal kevesebb különböző értékkel rendelkeznek, mint a teljes értékek.
- Alapértelmezett, Cassandra ésERDDAP™kezelje az oszlop neveket eset-érzékeny módon. De ha beállítottadoszlopNameQuotes",ERDDAP™kezelni fogja a Cassandra oszlop neveket eset-érzékeny módon.
<maxRequestFraction & gt;
MikorERDDAP™ (Újra) betölti az adatkészletet,ERDDAP™Cassandra-ból származik a partíciós kulcsok különböző kombinációinak listája. Hatalmas adatkészlet esetében a kombinációk száma hatalmas lesz. Ha meg akarja akadályozni a felhasználók kérését a legtöbb vagy az összes adatkészlet kérésétől (vagy akár egy kérés, amely kérERDDAP™letölteni a legtöbbet vagy az összes adatot annak érdekében, hogy tovább szűrje) ElmondhatodERDDAP™csak olyan kérelmek engedélyezése, amelyek csökkentik a kombinációk számát valamilyen mennyiséggel<maxRequestFraction>, amely egy lebegő pontszám 1e-10 között (ami azt jelenti, hogy a kérelem nem igényelhet több mint 1 kombinációt egy milliárdban) és 1 (az alapértelmezettség, ami azt jelenti, hogy a kérés lehet az egész adatkészlet számára) ... Például, ha egy adatkészlet 10000 különböző kombinációval rendelkezik a partíciós kulcsok és a maxRequestFraction 0,1-re kerül sor, olyan kérelmek, amelyeknek 1001 vagy több kombinációra van szükségük, hibaüzenetet fognak generálni, Azok a kérések, amelyeknek 1000 vagy kevesebb kombinációból származó adatokra van szükségük.
Általában a nagyobb adatkészlet, az alacsonyabb, amit be kell hozni<maxRequestFraction>. Tehát egy kis adatkészletre, 0,1-re állíthatja be egy közepes méretű adatkészletre, 0,01-re egy nagy adatkészletre, és 0.0001-re egy hatalmas adatkészletre.
Ez a megközelítés messze nem tökéletes. Néhány ésszerű kéréshez vezet, amelyeket elutasítanak, és néhány túl nagy kérést engedélyeznek. De ez egy nehéz probléma, és ez a megoldás sokkal jobb, mint semmi.
CassandrasubsetVariables
Mint más EDDTable adatkészletekkel, megadhatja a Comma-elválasztott listáját<dataVariable> > > >destinationNames egy globális attribútumban, amelyet "subsetVariables„A változók azonosítása, amelyek korlátozott számú értékkel rendelkeznek. Az adatkészletnek ezután .subset weboldala lesz, és különböző értékek listáját jeleníti meg az e változók számára számos weboldalon.
A listán szereplő csak partíciós kulcsváltozatok és statikus oszlopok bevonása STRONGLY ENCOURAGED. Cassandra képes lesz arra, hogy a listát a különböző kombinációk nagyon gyorsan és könnyen minden alkalommal, amikor az adatkészletet újratöltik. Az egyik kivétel az időbélyegző partíciós kulcsok, amelyek más ütemű oszlop társuló verziói - valószínűleg a legjobb, ha ezeket kihagyjuk a listából.subsetVariablesMivel számos értéke van, és nem nagyon hasznosak a felhasználók számára.
Ha tartalmazza a nem partíciós kulcsot, a nem statikus változókat a listában, akkor valószínűleg nagyon számításszerűen drága Cassandra számára minden alkalommal, amikor az adatkészletet újratöltik, mertERDDAP™meg kell vizsgálnia az adatkészlet minden sorát, hogy létrehozza az információkat. Valójában a lekérdezés valószínűleg kudarcot vall. Tehát, kivéve a nagyon kis adatkészletek, ez a STRONGLY DISCOURAGED.
Cassandra DataTypes
Mert van néhány kétértelműség arról, hogy melyikCassandra adattípusoktérkép, amelyreERDDAP™adattípusok, meg kell határozni egy [<adatType>] (#datatype) Minden [[Ki]]]<dataVariable>>>>>> (#datavariable) Mondd elERDDAP™melyik adattípust kell használni. A szabványERDDAP™adatok típusok (és a leggyakoribb megfelelő Cassandra adattípusok) a következők:
- boolean (boolean) AmelyERDDAP™Ezután áruházak, mint bytes
- byte (int, ha a tartomány -128-127)
- rövid (int, ha a tartomány -32768-32767)
- Inkább (int, pult?, varint?, ha a tartomány -2147483648 és 2147483647)
- hosszú (bigint, pult?, varint?, ha a tartomány -9223372036854775808 922337203685478)
- Float (Float)
- dupla dupla (dupla, decimal (a pontosság lehetséges elvesztésével) , Timetamp)
- char (ascii vagy szöveg, ha soha nem rendelkeznek több mint 1 karakterrel)
- Hírek (ascii, szöveg, varchar, inet, uuid, timeuid, blokk, térkép, készlet, lista?)
CassandraTimetampkülönleges eset: használatERDDAPdupla adat típus.
Ha egy String adattípust határoz megERDDAP™egy Cassandra térképre, beállított vagy listára, a térképre, beállított vagy listára minden Cassandra sorban egyetlen sorra kerül átalakulásra egyetlen sorban.ERDDAP™asztal.ERDDAP™van egy alternatív rendszer a listák; lásd alább.
típus listák -ERDDAP[[szerkesztés]]<adatType>] (#datatype) Cassandra címkedataVariableS tartalmazhatja a rendszertERDDAP™adatok típusok (lásd fent) plusz számos speciális adatTypes, amely használható Cassandra lista oszlopok: booleanList, byteList, ubyteList, shortList, ushortList, intList, uintList, longList, floatList, duplaList, charList, StringList. Amikor az egyik lista oszlop az eredményeket átadjákERDDAP™A forrásadatok minden sorát kiterjesztik a listára. méret () adatok sorai az adatokbanERDDAPegyszerű adatok típusok (például int) Ebben a forrásadatsorban duplikált lista lesz. méret () Idő. Ha az eredmények több mint egy listát tartalmaznak, az összes lista egy adott adatsorban azonos méretű, és MUST "parallel" listák, vagyERDDAP™hibaüzenetet fog generálni. Például az ADCP jelenlegi méréseire, mélység\[0 0\]UCurrent\[0 0\], vCurrent\[0 0\], és zCurrent\[0 0\]minden kapcsolódik, és mélység\[1\]UCurrent\[1\], vCurrent\[1\], és zCurrent\[1\]minden kapcsolódik, ... Alternatíva, ha nem akarodERDDAP™bővíteni egy listát több sorbanERDDAP™táblázat, határozza meg a Stringet, mintdataVariableadatok Típusú, hogy az egész listát az egyik csapásként ábrázoljákERDDAP...
Cassandra TimeStamp adatok
A Cassandra időbélyegző adatai mindig tisztában vannak az időzónákkal. Ha időbélyegző adatokat ad meg anélkül, hogy meghatározná az időzónát, a Cassandra feltételezi, hogy az időbélyeget a helyi időzónát használja.
ERDDAP™támogatja az időbélyegző adatokat, és mindig bemutatja az adatokatZulu/GMT időzóna. Tehát, ha a Cassandra-i időbélyegző adatokat más időzónával adja megZulu/GMT, ne feledje, hogy minden kérdést meg kell tennie az időbélyegző adatokhozERDDAP™használjaZulu/GMT időzóna. Tehát ne lepődj meg, amikor az időbélyeg értékek jönnek kiERDDAPtöbb órával változnak a helyi időzóna átállása miattZulu/GMT idő.
- InkábbERDDAPAdatasets.xml, a<dataVariable> címke egy időbélyegző változóhoz, set
<dataType>double</dataType>
és<addAttributes> beállítás
<att name="units">seconds since 1970-01-01T00:00:00Z</att>
- Javaslat: Ha az adatok egy időtartomány, hasznos, hogy az időbélyegző értékek utalnak a központja a beágyazott időtartomány (Például, nem) ... Például, ha egy felhasználónak van adatai a 2010-03-26T13:00Z-nak egy másik adatkészletből, és szeretnének a legközelebbi adatokat ebből a Cassandra adatkészletből, amely minden nap adatokkal rendelkezik, akkor a 2010-03-26T12:00Z adatai (a Cassandra adatainak bemutatása ezen időpontban) nyilvánvalóan a legjobb (mint szemben az éjfél előtt vagy után, ahol kevésbé nyilvánvaló, hogy a legjobb) ...
- ERDDAP™haszonnal rendelkezikKonvertáljon Numeric Idő / sztring idő...
- LásdHogyanERDDAP™Üzletek az idővel...
Integer nulls
Cassandra támogatja a nullákat Cassandra intben (ERDDAP™Inkább) Nagy (ERDDAP™hosszú) oszlopok, deERDDAP™nem támogatja az igazi nullákat minden integrált adattípushoz. Alapértelmezés szerint a Cassandra integráló nullák átalakulnakERDDAP™2147483647 int oszlopok, vagy 9223372036854775807 hosszú oszlopok. Ezek „NaN”-ként fognak megjelenni bizonyos típusú szövegkimeneti fájlokban (Például .csv) , "" más típusú szövegkimeneti fájlokban (például,.htmlTable) és az adott szám (2147483647 a hiányzó int értékekért) más típusú fájlokban (például bináris fájlok, mint például.ncés mat) ... A felhasználó az ilyen típusú hiányzó értékű adatsorokat keresheti a "NaN", például " & WindSpeed=NaN" -re hivatkozva.
Ha más integrált értéket használ, hogy jelezze a hiányzó értékeket a Cassandra táblában, kérjük, azonosítsa ezt az értéketdatasets.xml:
<att name="missing\_value" type="int"\>-999</att>
A Cassandra lebegő pontoszlopok esetében a nullák áttérnek a NaN-ekreERDDAP... A Cassandra-adattípusok esetében, amelyek a Strings-be kerülnekERDDAP™A nullák megtérnek az üres vonásokra. Ez nem lehet probléma.
"WARNING: A már elkészített lekérdezés újrakészítése"
- "WARNING: A már előkészített lekérdezés újrakészítése" Tomcat /logs/catalina.out (vagy más Tomcat log fájl)
Cassandra dokumentáció szerint baj van, ha ugyanazt a lekérdezést egy PreparedStatement-be sorolják (vagy többet) ... (Lásd eztbug jelentés...) Hogy elkerüljük Cassandra őrült,ERDDAP™minden PreparedStatements-t, így újra felhasználhatja őket. Ez a gyorsaság elveszett, ha/ha Tomcat/ERDDAP™újraindításra kerül, de úgy gondolom, ez rendben van, mert az PreparedStatements egy adott üléshez kapcsolódik (közöttJavaCassandra) , ami szintén elveszett. Tehát láthatja ezeket az üzeneteket. Nem ismerek más megoldást. Szerencsére figyelmeztetés, nem hiba (Bár Cassandra fenyegeti, hogy teljesítményproblémákhoz vezethet) ...
Cassandra azt állítja, hogy a PreparedStatements örökre jó, ígyERDDAP"A Cached PreparedStatements-nek soha nem szabadna naprakész / érvénytelenné válnia. Ha ez nem igaz, és hibákat kap bizonyos PreparedStatements-ről naprakész / érvénytelen, akkor újra kell indítania.ERDDAP™tisztázniERDDAP„A PreparedStatements jegyzőkönyve.
Cassandra biztonság
Amikor Cassandra-val dolgozol, a lehető legbiztonságosabban és biztonságosan kell tennie a dolgokat, hogy elkerülje, hogy egy rosszindulatú felhasználó károsítsa a Cassandrát, vagy hozzáférést szerezzen azokhoz az adatokhoz, amelyekhez nem kell hozzáférnie.ERDDAP™megpróbálja a dolgokat biztonságos módon is csinálni.
- Bátorítunk benneteket, hogy hozzon létreERDDAP™a Cassandra-hoz, mint Cassandra-felhasználóhoz való csatlakozás, amely csak hozzáférést biztosít releváns asztal (s) és csak READ kiváltságai vannak.
- Arra bátorítunk benneteket, hogy hozzátok létre a kapcsolatotERDDAP™Cassandra, hogy
- mindig használja az SSL-t,
- csak az egyik IP-címből származó kapcsolatokat engedélyezi (vagy a címek egy blokkja) az egyiktőlERDDAP™felhasználó és
- csak átadja a jelszavakat az MD5 formanyomtatványában.
- \[KNOWN PROBLEM\]A kapcsolatfeltételek (beleértve a jelszót!) egyszerű szövegként tároljákdatasets.xml... Nem találtunk módot arra, hogy az adminisztrátor belépjen a Cassandra jelszóbaERDDAPKezdőlap Tomcatban (amely felhasználói bemenet nélkül történik) Így a jelszót egy fájlban hozzáférhetőnek kell lennie. Hogy ezt biztonságosabbá tegyük:
- Te vagy (aERDDAP™adminisztr átor) legyen a tulajdonosadatasets.xmlés van READ és WRITE hozzáférés.
- Készítsen egy csoportot, amely csak felhasználó=tomcatot tartalmaz. Használja a chgrp-t, hogy a csoport legyendatasets.xmlCsak READ kiváltságokkal.
- Használja a chmod-t az o-rwx kiváltságok hozzárendeléséhez (Nincs READ vagy WRITE hozzáférés a "másik" felhasználókhoz) Mertdatasets.xml...
- MikorERDDAP™, a jelszó és más kapcsolati tulajdonságokat "magánban" tároljákJavaváltozók.
- Az ügyfelek kéréseit a Cassandra CQL-kérelmek generálása előtt pótolják és ellenőrzik.
- A Cassandra iránti kérelmek CQL Bound/PreparedStatements-rel készülnek, hogy megakadályozzák a CQL injekciót. Mindenesetre a Cassandra kevésbé érzékeny a CQL injekcióra, mint a hagyományos adatbázisok.SQL injekció...
Cassandra Speed
A Cassandra gyors vagy lassú lehet. Van néhány dolog, amit tehetünk, hogy gyorsan:
- Általános - A CQL természete az, hogy a kérdésekdeklaratív... Pontosan meghatározzák, mit akar a felhasználó. Nem tartalmaznak specifikációt vagy utalásokat arra, hogy a lekérdezést hogyan kell kezelni vagy optimalizálni. Tehát nincs módERDDAP™a lekérdezés olyan módon történő generálása, hogy segít Cassandra optimalizálni a lekérdezést (vagy bármilyen módon meghatározza, hogyan kell kezelni a lekérdezést) ... Általában a Cassandra adminisztrátortól függ, hogy felállítsa a dolgokat (Például indexek) bizonyos típusú kérdések optimalizálása.
- Az időbélyegző oszlopok specifikálása, amelyek a coarser-precision időbélyegző partíciós kulcsokhoz kapcsolódnak [<partíció KeySourceNames>] (#partitionkeysourcenames) a legfontosabb módja annak, hogy segítsünkERDDAP™hatékonyan működik Cassandra-val. Ha ez a kapcsolat egy Cassandra asztalnál létezik, és nem mondodERDDAP™Az adatkészlet fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
- A klaszter oszlopok leírása [<clusterColumnSourceNames> (#clustercolumnsourcenames) a második legfontosabb módja annak, hogy segítsenERDDAP™hatékonyan működik Cassandra-val. Ha vannak klaszter oszlopok, és nem mondodERDDAPAz adatok lehetséges kérdéseinek nagy része szükségtelenül, fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
- Készülj felIndexekközösen konstruált változók számára - Gyorsíthat néhány kérdést azáltal, hogy indexeket hoz létre a Cassandra oszlopokhoz, amelyeket gyakran "="korlátokkal" korlátoznak.
A Cassandra nem hozhat indexeket a listára, a beállításra vagy a térképes oszlopokra.
- Az index oszlopok leírása [<indexColumnSourceNames> (#indexcolumnsourcenames) fontos módja annak, hogy segítsünkERDDAP™hatékonyan működik Cassandra-val. Ha vannak index oszlopok, és nem mondodERDDAPNéhány adatkérés szükségtelenül, fájdalmasan lassú leszERDDAP™és használjon tonna Cassandra erőforrásokat.
Cassandra Stats
- "Cassandra stats" Diagnosztikus üzenetek- MindenERDDAP™felhasználó lekérdez ése egy Cassandra adatkészlethez,ERDDAP™kinyomtat egy sort a logfájlban, bigParentDirectory[szerkesztés] /logs/log.txt, a lekérdezéshez kapcsolódó statisztikákkal, például
\\* Cassandra stats: partitionKeyTable: 2/10000=2e-4 < 0.1 nCassRows=1200 nErddapRows=12000 nRowsToUser=7405
A fenti példában szereplő számok használatával ez azt jelenti:
- MikorERDDAP™utolsó (Újra) betöltötte ezt az adatkészletet, mondta CassandraERDDAP™10000 különböző kombinációja volt a partíciós kulcsoknak.ERDDAP™az összes különböző kombinációt egy fájlban.
- A felhasználó korlátozásai miatt,ERDDAP™2 kombinációt azonosított az 10000-ből, amely a kívánt adatokkal rendelkezhet. Szóval,ERDDAP™2 felhívást tesz Cassandra-ra, az egyik a partíciós kulcsok mindegyik kombinációjára. (Ez az, amit Cassandra igényel.) Nyilvánvaló, hogy nehéz, ha egy nagy adatkészletnek számos kombinációja van a partíciós kulcsoknak, és egy adott kérelem nem drasztikusan csökkenti azt. Megkövetelheti, hogy minden kérelem csökkenti a kulcsterületet a beállítással [<maxRequestFraction> (#maxrequestfraction) ... Itt 2/10000=2e-4, ami kevesebb, mint a maxRequestFraction (0.1) Ezért a kérést engedélyezték.
- a korlátozások alkalmazása a partíciós kulcsokra,Klaszter oszlopokésindex oszlopokamelyet küldtekERDDAP™Cassandra visszatért 1200 sor adathozERDDAP™a ResultSetben.
- Az eredmény A beállításnak kellett volnaadatok Type= dalszöveg listaoszlopok (átlagosan 10 tétel listánként) mertERDDAP™kibővítette a 1200 sort Cassandrából 12000 sorbaERDDAP...
- ERDDAP™mindig a felhasználó összes korlátozását alkalmazza a Cassandra adataira. Ebben az esetben a Cassandra által nem kezelt korlátozások csökkentették a sorok számát 7405-re. Ez a felhasználónak küldött sorok száma.
Ezeknek a diagnosztikai üzeneteknek a legfontosabb használata az, hogy megbizonyosodjon arról, hogyERDDAP™azt csinálja, amit úgy gondolja, hogy csinál. Ha ez nem (Például nem csökkenti a várhatóan eltérő kombinációk számát?) Ezután felhasználhatja az információkat, hogy megpróbálja kitalálni, mi történik rosszul.
- Kutatás és kísérlet a jobb megtalálásához és beállításához [<kapcsolatProperty>] (#cassandra-kapcsolati tulajdon) A.
- Ellenőrizze a Cassandra és a hálózati kapcsolat sebességétERDDAP... Ha a kapcsolat lassú, nézze meg, hogy javíthatja-e. A legjobb helyzet az, amikorERDDAP™fut egy olyan szerveren, amely ugyanazhoz kapcsolódik (Gyors) kapcsolja be, mint a kiszolgáló futtatja a Cassandra csomót, amelyhez kapcsolódik.
- Kérjük, légy türelmes! Olvassa el itt és a Cassandra dokumentációban gondosan. Tapasztalat. Ellenőrizze a munkáját. Ha a CassandraERDDAP™kapcsolat még mindig lassabb, mint várni, kérjük, vegye fel a Cassandra asztal sémáját ésERDDAP™zsákmánydatasets.xmllásd a miénketrész további támogatás megszerzéséről...
- Ha minden más kudarcot vall, fontolja meg az adatok tárolását egy gyűjteménybenNetCDFv3.ncfájlok (különösen különösen.ncfájlok, amelyek aCF Discrete Sampling Geometries (DSG) Contiguous Ragged Array adatstruktúrák és így kezelhetőkERDDAPAEDDTableFromNcCFFiles) ... Ha logikailag megszervezik őket (mindegyik adat egy darab űr és idő) ,ERDDAP™nagyon gyorsan kivonhatja az adatokat tőlük.
EDDTableFromCassandra csontváz XML
<dataset type="EDDTableFromCassandra" datasetID\="..." active\="..." >
<ipAddress>...</ipAddress>
<!-- The Cassandra URL without the port number, for example,
127.0.0.1 REQUIRED. -->
<connectionProperty name="name">value</connectionProperty>
<!-- The names (for example, "readTimeoutMillis") and values
of the Cassandra properties that ERDDAP™ needs to change.
0 or more. -->
<keyspace>...</keyspace> <!-- The name of the keyspace that has
the table. REQUIRED. -->
<tableName>...</tableName> <!-- The name of the table, default = "".
REQUIRED. -->
<partitionKeySourceNames>...<partitionKeySourceNames>
<!-- REQUIRED. -->
<clusterColumnSourceNames>...<clusterColumnSourceNames>
<!-- OPTIONAL. -->
<indexColumnSourceNames>...<indexColumnSourceNames> <!-- OPTIONAL. -->
<maxRequestFraction>...<maxRequestFraction>
<!-- OPTIONAL double between 1e-10 and 1 (the default). -->
<columnNameQuotes>...<columnNameQuotes> <!-- OPTIONAL.
Options: \[nothing\] (the default) or ". -->
<sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<dataVariable>...</dataVariable> <!-- 1 or more.
Each dataVariable MUST include a <dataType> tag. See
Cassandra DataTypes.
For Cassandra timestamp columns, set dataType=double and
units=seconds since 1970-01-01T00:00:00Z -->
</dataset>
EDDTableFromDapSequence
EDDTableFromDapSequence a változók kezelése 1- és 2-szintű sorrendbenDAPszerverek, mint példáulDAPPER (volt https://www.pmel.noaa.gov/epic/software/dapper/ Most megszűnt) ...
-
Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti ezt, hogy finomhangolja azt. Összegyűjtheti a szükséges információkat azáltal, hogy megvizsgálja a forrásadatlap DDS és a DAS fájlokat a böngészőben (a .das és .dds hozzáadásával asourceUrl(Egy példa volt https://dapper.pmel.noaa.gov/dapper/epic/tao\\_time\\_series.cdp.dds ).
-
A változó egyDAPsorrendben, ha a .dds válasz azt jelzi, hogy a változó adatstruktúra "sorozat" (eseti érzéketlenség) ...
-
Bizonyos esetekben, látni fogja a sorrendben, egy 2 szintű sorozat - EDDTableFromDapSequence kezeli ezeket is.
EDDTableFromDapSequence csontváz XML
<dataset type="EDDTableFromDapSequence" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<outerSequenceName>...</outerSequenceName>
<!-- The name of the outer sequence for DAP sequence data.
This tag is REQUIRED. -->
<innerSequenceName>...</innerSequenceName>
<!-- The name of the inner sequence for DAP sequence data.
This tag is OPTIONAL; use it if the DAP data is a two level
sequence. -->
<sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
<sourceCanConstrainStringEQNE>true|false</sourceCanConstrainStringEQNE>
<sourceCanConstrainStringGTLT>true|false</sourceCanConstrainStringGTLT>
<sourceCanConstrainStringRegex>...</sourceCanConstrainStringRegex>
<skipDapperSpacerRows>...</skipDapperSpacerRows>
<!-- skipDapperSpacerRows specifies whether the dataset
will skip the last row of each innerSequence other than the
last innerSequence (because Dapper servers put NaNs in the
row to act as a spacer). This tag is OPTIONAL. The default
is false. It is recommended that you set this to true for
all Dapper sources and false for all other data sources. -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
</dataset>
EDDTableFromDatabase
EDDTableFromDatabase az adatokat egy kapcsolati adatbázis táblából vagynézet.
Egy asztal vagy kilátás
Ha az Ön által szolgált adatok két vagy több táblában vannak (és így szüksége van egy JOIN-re, hogy egyszerre kivonja az adatokat mindkét asztalról) , meg kell tennie egyetdenormalizált (már csatlakozott) asztal vagynézet az összes olyan adattal, amelyet egyetlen adatkészletként szeretne elérhetővé tenniERDDAP...
Nagy, összetett adatbázisok számára értelme lehet, hogy több darabot denormalizált asztalként különítsenek el, mindegyik más típusú adatokkal, amelyek külön adatkészletekké válnak.ERDDAP...
Denormalizált asztal készítése a használathozERDDAP™Úgy hangzik, mint egy őrült ötlet neked. Kérlek benneteket! Több oka van annak, hogy miértERDDAP™denormalizált asztalokkal működik:
- Ez sokkal könnyebb a felhasználók számára. MikorERDDAP™bemutatja az adatkészletet, mint egy, egyszerű, denormalizált, egy táblázat, nagyon könnyű bárki számára megérteni az adatokat. A legtöbb felhasználó soha nem hallott a normalizált asztalokról, és nagyon kevesen értik a kulcsokat, a külföldi kulcsokat vagy az asztali csatlakozásokat, és szinte biztosan nem ismerik a különböző típusú csatlakozások részleteit, vagy hogyan kell meghatározni az SQL-t, hogy csatlakozzon (vagy több csatlakozó) helyesen. A denormalizált asztal használata elkerüli az összes problémát. Ez az ok egyedül igazolja a denormalizált egységes asztal használatát egy adatkészlet bemutatásáraERDDAP™felhasználók.
- Normalizált asztalok (a kulcsfontosságú oszlopok által kapcsolódó több táblázat) Nagyszerűek az adatok tárolása egy adatbázisban. De még az SQL-ben is, a felhasználóhoz visszatérő eredmény denormalizált. (csatlakozik) egyetlen asztal. Tehát ésszerűnek tűnik, hogy az adatkészletet óriási, denormalizált, egyedi táblázatként jelenítse meg, amelyből azután kérhet alkatrészeket (pl.: Mutassa meg az asztal sorait, ahol a hőmérséklet> 30.) ...
- Lehet változtatniERDDAP™anélkül, hogy megváltoztatná az asztalait. ERDDAP™van néhány olyan követelmény, amely különbözhet attól, hogy hogyan hozta létre az adatbázist. Például,ERDDAP™megköveteli, hogy az időbélyegző adatokat „időbélyegző időben” mezőkben tárolják. Egy külön asztal/nézet készítésévelERDDAP™Ezeket a változásokat akkor lehet elvégezni, ha a denormalizált asztalt készítiERDDAP... Így nem kell változtatnia az asztalaiban.
- ERDDAP™újrateremti a normalizált táblák szerkezetét. Megadhatja, hogy mely adatok oszlopai a „külső” táblákból származnak, és ezért korlátozott számú különböző értékkel rendelkeznek.ERDDAP™összegyűjti az értékek összes különböző kombinációját ezekben az oszlopokban, és bemutatja azokat a felhasználóknak egy speciális . olyan weblapot, amely segít a felhasználóknak gyorsan kiválasztani az adatkészlet alkészleteit. Az egyes oszlopok különböző értékei szintén megtalálhatók az adatkészlet többi weboldalán található legördülő listákban.
- Egy denormalizált asztal teszi az adatot kézből az Ön számáraERDDAPAz adminisztrátor egyszerű. Te vagy az adatkészlet szakértője, ezért van értelme, hogy meghozza a döntéseket arról, hogy melyik táblázat és melyik oszlop csatlakozik, és hogyan csatlakozzon hozzájuk. Szóval nem kell nekünk átadnod (vagy rosszabb, a végfelhasználók) Számos táblázat és részletes utasítás, hogy hogyan kell csatlakozni hozzájuk, csak hozzá kell férnünk a denormalizált asztalhoz.
- A denormalizált asztal lehetővé teszi az adatokhoz való hatékony hozzáférést. A denormalizált forma általában gyorsabb a hozzáféréshez, mint a normalizált forma. A csatlakozók lassúak lehetnek. Több csatlakozó nagyon lassú lehet.
Annak érdekében, hogy az adatbázisban két vagy több asztal adatait megkapja az adatbázisbanERDDAP™Három lehetőség van:
- Ajánlott opció: Képes létrehozni egy Comma- vagy tab-választott értékű fájlt a denormalizált asztal adataival. Ha az adatkészlet óriási, akkor értelme van több fájl létrehozására, mindegyik a denormalizált táblázat kohéziós helyettesítésével (például egy kisebb időtartomány adatai) ...
A nagy előny itt az, hogyERDDAP™képes lesz kezelni a felhasználói kérelmeket az adatokat anélkül, hogy további erőfeszítést az adatbázis. SzóvalERDDAP™nem lesz teher az adatbázisában vagy biztonsági kockázatban. Ez a legjobb lehetőség szinte minden körülmények között, mertERDDAP™rendszerint gyorsabban kaphat adatokat a fájlokból, mint egy adatbázisból (ha átalakítjuk az .csv fájlokat.ncCF fájlok) ... (Az ok egy része az, hogyERDDAPA +files egy olvasható rendszer, és nem kell kezelni a változásokat, miközbenACID (Atomicitás, konzisztencia, elszigeteltség, tartósság) ...) Valószínűleg nem lesz szüksége külön kiszolgálóra, mivel az adatokat az egyik RAID-n tárolhatjuk, és hozzáférhetünk egy meglévő szerverhez.ERDDAP™egy meglévő szerveren.
- Okéy Opció: Új adatbázist hoz létre egy másik számítógépen, csak a denormalizált asztallal. Mivel ez az adatbázis lehet egy ingyenes és nyílt forráskódú adatbázis, mint a MariaDB, a MySQL és a PostgreSQL, ez az opció nem kell sokba kerülnie.
A nagy előny itt az, hogyERDDAP™képes lesz kezelni a felhasználói kérelmeket az adatokra anélkül, hogy további erőfeszítéseket tenne a jelenlegi adatbázisában. SzóvalERDDAP™Nem lesz terhet a jelenlegi adatbázisában. Ez sok biztonsági aggályt is megszüntet, mivelERDDAP™nem lesz hozzáférése jelenlegi adatbázisához.
-
Bátorított opció: KapcsolatERDDAP™a jelenlegi adatbázisodhoz. Ehhez:
- Készítsen külön asztalt vagy nézetet az adatok denormalizált táblájával.
- Hozzon létre egy "erddap" felhasználót, aki csak a denormalizált táblázathoz fér hozzá (s) ...
Ez egy lehetőség, ha az adatok nagyon gyakran változnak, és szeretné adniERDDAP™a felhasználók azonnali hozzáférést ezekhez a változásokhoz; de még így is, értelme lehet használni a fájl opciót, és rendszeresen (30 percenként?) helyettesítse a fájlt, amely a mai adatok. Ennek a megközelítésnek a hatalmas hátrányai az, hogyERDDAP™A felhasználói kérelmek valószínűleg elviselhetetlenül nagy terhet jelentenek az adatbázisban, és hogyERDDAP™a kapcsolat biztonsági kockázat (Bár minimalizálhatjuk/ kezelhetjük a kockázatot) ...
A denormalizált asztal vagy nézet készítéseERDDAP™jó lehetőség, hogy néhány változást hozzon,ERDDAP™olyan módon, amely nem befolyásolja az eredeti táblákat:
- Változtassa meg a dátumot és az időmérő mezőket / oszlopokat az adattípus használatára, amelyet a Postgres hívidőbélyegző időzónával (vagy az egyenértékű az adatbázisban) ... A Timestamps időzóna információ nélkül nem működik megfelelőenERDDAP...
- Készítsen indexeket az oszlopok számára, amelyeket a felhasználók gyakran keresnek.
- Légy nagyon tisztában veleda mező/oszlop nevek esete (például használja az összes alsó esetet) amikor beírod őket.
- Ne használjon tartalék szavakat az asztalhoz és a mező/oszlop nevekhez.
Ha segítségre van szüksége a denormalizált asztal vagy nézet készítéséhez, kérjük, vegye fel a kapcsolatot az adatbáziskezelővel. Ha szeretnél beszélni erről az egész megközelítésről, vagy stratégiázni, hogyan lehet a legjobban csinálni, kérlek e-mailt Chris. John at noaa.gov.
adatbázisdatasets.xml
Nehéz létrehozni a helyesdatasets.xmlszükséges információERDDAP™kapcsolatot létesíteni az adatbázissal. Légy türelmes! Légy módszeres!
- Erősen ajánljuk a használatátGenerateDatasets Xml programegy durva tervezetet készítenidatasets.xmlcunk ehhez az adatkészlethez. Ezután szerkesztheti ezt, hogy finomhangolja azt.
GenerateDatasets Az Xml három speciális opcióval rendelkezik az EDDTableFromDatabase számára:
- Ha belépsz "!!!LIST!!!" (idézetek nélkül) a katalógus neve, a program megjeleníti a katalógus nevek listáját.
- Ha belépsz "!!!LIST!!!" (idézetek nélkül) a schema neve esetében a program megjeleníti a schema nevek listáját.
- Ha belépsz "!!!LIST!!!" (idézetek nélkül) az asztalnév számára a program megjeleníti az asztalok és oszlopok listáját. Az első "!!!LIST!!!" bejegyzés, amit csinálsz, az, amit használni fognak.
- Óvatosan olvassa el a dokumentum összes információját az EDDTableFromDatabase-ről.
- Összegyűjtheti az XML létrehozásához szükséges legtöbb információt egy EDDTableFromDatabase adatkészlethez, kapcsolatba lépve az adatbáziskezelővel és az internet keresésével.
- Bár az adatbázisok gyakran kezelik az oszlopneveket és az asztali neveket eset-érzékeny módon, azok esetérzékenyek.ERDDAP... Tehát, ha egy hibaüzenet az adatbázisból azt mondja, hogy egy oszlop neve ismeretlen (Például: "Unknown azonosító= "..." oszlop\_name "") bár tudod, hogy létezik, próbáld meg használni az összes fővárost, például, COLUMN_NAME , amely gyakran az oszlop neve igazi, eset-érzékeny változata.
- szorosan együttműködik az adatbázis-adminisztrátorral, aki releváns tapasztalattal rendelkezik. Ha az adatkészlet nem terheli, olvassa elhibaüzenetalaposan megtudni, miért.
JDBC sofőr
-
[JDBC sofőr és<sofőrName>] (#jdbc-driver) - Meg kell szereznie a megfelelő JDBC 3 vagy JDBC 4 vezető .jar fájlt az adatbázishoz és Tedd be! Tomcat /webapps/erddap/WEB-INF/lib miután telepítettERDDAP... Aztán, a tedatasets.xmlehhez az adatkészlethez meg kell határoznia a<sofőrName> erre a sofőrre, ami (Sajnos) különbözik a fájlnévtől. Keressen az interneten a JDBC sofőr számára az adatbázis és a sofőrName számáraJavahasználnia kell.
- MariaDB számára próbálkozzon https://mariadb.com/kb/en/about-the-mariadb-java-client/
A<sofőrName> használnidatasets.xml (lásd alább) valószínűleg org.mariadb.jdbc. Vezető . - A MySQL és az Amazon RDS számára próbálkozzon https://dev.mysql.com/downloads/connector/j/
A<sofőrName> használnidatasets.xml (lásd alább) valószínűleg com.mysql.jdbc. Vezető . - MertOraclePróbálj ki https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html ... A<sofőrName> használnidatasets.xml (lásd alább) valószínűleg oracle.jdbc.driver.OracleVezető .
- Postgresql számára megkaptuk a JDBC 4-es sofőrt https://mvnrepository.com/artifact/org.postgresql/postgresql
A<sofőrName> használnidatasets.xml (lásd alább) valószínűleg org.postgresql. Vezető . - Az SQL Server számára megkaphatja a JTDS JDBC sofőrt https://jtds.sourceforge.net ... A<sofőrName> használnidatasets.xml (lásd alább) valószínűleg net.sourceforge.jtds.jdbc. Vezető .
- MariaDB számára próbálkozzon https://mariadb.com/kb/en/about-the-mariadb-java-client/
Miután betette a JDBC vezetőjét.jarERDDAP™lib könyvtár, meg kell adni egy hivatkozást, hogy .jar fájl a .bat és / vagy .sh script fájlok a GenerateDatasets Xml, DasDds és ArchiveADataset, amelyek a Tomcat /webapps/erddap/WEB-INF/ könyvtár; különben kapsz egy ClassNotFoundException, amikor futtatod ezeket a forgatókönyveket.
Sajnos a JDBC néha a baj forrása. A szerepe, mint közvetítő közöttERDDAP™és az adatbázis, néha finom változásokat hoz az SQL szabványos/generikus adatbázis kéréséreERDDAP™létrehozza, ezáltal problémákat okozva (például, amelyhez kapcsolódikfelső/alacsonyabb azonosítókés kapcsolódikdátum / időzónák) ... Kérjük, légy türelmes, olvassa el az információkat itt gondosan, ellenőrizze a munkáját, és nézze meg a miénketrész további támogatás megszerzéséről...
Adatbázis<kapcsolat Property & Gt;
- [[szerkesztés]]<kapcsolatProperty>] (#database-kapcsolat) - Adatasets.xmlaz adatkészletéhez több kapcsolatot kell meghatároznia Tulajdonos címkék mondaniERDDAP™Hogyan kapcsolódjon az adatbázishoz (például a felhasználó nevét, jelszót, ssl kapcsolatot ésfetch méret) ... Ezek különbözőek minden helyzetben, és egy kicsit nehéz kitalálni. Keresse meg az internetet például egy JDBC sofőr használatával, hogy csatlakozzon az adatbázishoz. A<kapcsolatProperty> nevek (Például: "felhasználó", "password" és "ssl") , és néhány a kapcsolatProperty értékek megtalálhatók a keresés az interneten a "JDBC kapcsolat tulajdonságok adatbázis típus "..." (például,OracleMySQL, Amazon RDS, MariaDB, PostgreSQL) ...
Névek és esetérzékenységi idézetek
- Field/Kolumn nevek idézetei; esetérzékenység- Az alapértelmezett, EDDTableFromDatabase ANSI-SQL-standard dupla idézeteket ír elő a SELECT nyilatkozataiban, ha egy tartalék szót, mint egy mező / oszlop neve, vagy egy speciális karakter egy mező / oszlop neve. A kettős idézetek az SQL injekciós támadások bizonyos típusait is megnyomják. ElmondhatjaERDDAP™",", vagy nincs idézet<oszlopNameQuotes> bennedatasets.xmlehhez az adatkészlethez.
Számos adatbázis esetében, bármilyen típusú idézet használata miatt az adatbázis olyan érzékeny módon működik a mező/oszlopnevekkel. (az alapértelmezett adatbázis eset helyett érzéketlen módon) ... Az adatbázisok gyakran jelennek meg fájl / oszlop nevek, mint az összes felső eset, amikor a valóságban az eset érzékeny formája más. InkábbERDDAP™Kérjük, mindig kezelje az adatbázis oszlop neveket, mint érzékeny.
- Mária DB, futtatnia kell az adatbázist\-sql-mode=ANSI\_QUOTES...
- A MySQL és az Amazon RDS számára az adatbázist kell futtatnia\-sql-mode=ANSI\_QUOTES...
- Oracletámogatja az ANSI-SQL-standard kettős idézeteitáltal default...
- A PostgreSQL támogatja az ANSI-SQL szabványos kettős idézeteket az alapértelmezés szerint.
Ne használjon tartalék szót egy adatbázishoz, katalógushoz, schema-hoz vagy asztal nevehez.ERDDAP™nem tesz idézeteket körülöttük.
Ha lehetséges, használja az adatbázis, katalógus, schema, asztali nevek és mezőnevek összes alsó esetét az adatbázis táblázat létrehozásakor (vagy nézet) és amikor a mező/oszlop nevekre utaldatasets.xmlbenneERDDAP... Ellenkező esetben hibaüzenetet kaphat, amely szerint az adatbázis, a katalógus, a schema, az asztal és/vagy a mező nem található meg. Ha megkapja ezt a hibaüzenetet, próbálja meg használni az esetérzékeny verziót, az összes felső esetű verziót, és a név összes alsó esetű verzióját a névbenERDDAP... Egyikük dolgozhat. Ha nem, meg kell változtatni az adatbázis neve, katalógus, schema és / vagy táblázat az összes alacsonyabb esetre.
Adatbázis<adatok Type & gt;
- Adatbázis[[szerkesztés]]<adatType>] (#datatype) Tagok - Mert van néhány kétértelműség arról, hogy melyikadatbázis adattípusoktérkép, amelyreERDDAP™adattípusok, meg kell határozni egy [<adatType>] (#datatype) Minden [[Ki]]]<dataVariable>>>>>> (#datavariable) Mondd elERDDAP™melyik adattípust kell használni. A probléma egy része az, hogy a különböző adatkészletek különböző kifejezéseket használnak a különböző adattípusokhoz - így mindig próbálják meg megfelelni a meghatározásoknak, nem csak a neveknek. Lásd a leírástszabványERDDAP™adatok típusok, amely a megfelelő SQL adattípusokra hivatkozik.Dátum és időmérőspeciális esetek: használatERDDAPdupla adat típus.
Adatbázis dátuma Idő adatok
Néhány adatbázis-idő oszlopnak nincs kifejezett időzónája. Az ilyen oszlopok bajokERDDAP... Az adatbázisok támogatják a dátum fogalmát (vagy anélkül egy idő) időzóna nélkül, megközelítő időtartományként. DeJava (és ígyERDDAP) csak azonnali dátum+időkkel foglalkozik egy időzónával. Tehát lehet, hogy tudja, hogy a dátumidő adatai helyi időzónán alapulnak (nappali megtakarítási idővel) vagy a GMT/Zuluidőzóna, deJava (ésERDDAP) ne. Eredetileg azt gondoltuk, hogy dolgozhatunk ebben a problémában (pl. az oszlop időzónájának meghatározásával) , de az adatbázis + JDBC+Javaaz interakciók ezt megbízhatatlan megoldássá tették.
- Szóval,ERDDAP™megköveteli, hogy az adatbázis táblázatban tárolja az összes dátumot és dátumidő adatait olyan adatbázis-adattípussal, amely megfelel a JDBC típusú "időjármű-időzónával" (ideális, hogy használja a GMT /ZuluIdőzóna) ...
- InkábbERDDAPAdatasets.xml, a<dataVariable> címke egy időbélyegző változóhoz, set
és<addAttributes> beállítás
<att name="units">seconds since 1970-01-01T00:00:00Z</att>
- Javaslat: Ha az adatok egy időtartomány, hasznos, hogy az időbélyegző értékek utalnak a központja a beágyazott időtartomány (Például, nem) ... Például, ha egy felhasználónak van adatai a 2010-03-26T13:00Z-nak egy másik adatkészletből, és szeretnének a legközelebbi adatokat egy adatbázis-adatbázisról, amely minden nap adatokkal rendelkezik, akkor a 2010-03-26T12:00Z adatbázisadatai (az adott dátumra vonatkozó adatok képviselete) nyilvánvalóan a legjobb (mint szemben az éjfél előtt vagy után, ahol kevésbé nyilvánvaló, hogy a legjobb) ...
- ERDDAP™haszonnal rendelkezikKonvertáljon Numeric Idő / sztring idő...
- LásdHogyanERDDAPÜzletek az idővel...
Integer nulls
Az adatbázisok támogatják a nullákat az integrálóban (Int, kicsiny, tinyint) oszlopok, deERDDAP™nem támogatja az igazi nullákat. Adatbázis nulls lesz átalakítvaERDDAP™127 byte oszlopok esetében, 255 az ubyte oszlopok esetében, 32767 rövid oszlopok esetében, 65535 az utólagos oszlopok esetében, 2147483647 int oszlopok esetében, 4294967295 az oszlopok esetében, 9,223,372,036,854,775,807 a hosszú oszlopok esetében, vagy 1844674407551615 az ulong oszlopok esetében. Ha ezeket az alapokat használja, kérjük azonosítsa azokatmissing\_values az adatkészlet felhasználói számára azERDDAP™vele
<att name="\_FillValue" type="int"\>2147483647</att>
vagy
<att name="\_FillValue" type="short"\>32767</att>
Alternatívaként használhatja a " "missing\_value"A "\_FillValue" helyett tulajdonítható. GenerateDatasets Az Xml automatikusan hozzáadja ezeket a \_FillValue tulajdonságokat, amikor létrehozza a javasoltdatasets.xmladatbázis adatkészletek.
Az adatbázis lebegő pont oszlopok esetében a nullák áttérnek a NaN-ekreERDDAP... Az adatbázis-adattípusok esetében, amelyek a Strings-be kerülnekERDDAP™A nullák megtérnek az üres vonásokra.
Adatbázisbiztonság
- Amikor adatbázisokkal dolgozol, a lehető legbiztonságosabban és biztonságosan kell elvégeznie a dolgokat, hogy elkerülje, hogy egy rosszindulatú felhasználó károsítsa az adatbázist, vagy hozzáférést szerezzen azokhoz az adatokhoz, amelyekhez nem kell hozzáférnie.ERDDAP™megpróbálja a dolgokat biztonságos módon is csinálni.
- Fontolja meg a más számítógépen történő replikációt, az adatbázist és az adatbázis táblákat az Ön által kívánt adatokkalERDDAP™szolgálni. (Igen, olyan kereskedelmi adatbázisok esetében, mintOracleEz további engedélyezési díjakat tartalmaz. De a nyílt forráskódú adatbázisok, például a PostgreSQL, a MySQL, az Amazon RDS és a MariaDB esetében ez semmibe kerül.) Ez magas szintű biztonságot nyújt, és megakadályozzaERDDAP™kérelmek az eredeti adatbázis lelassításától.
- Bátorítunk benneteket, hogy hozzon létreERDDAP™az adatbázishoz való csatlakozás adatbázis-felhasználóként, amely csak hozzáférést biztosít az adatbázishoz releváns adatbázis (s) és csak READ kiváltságai vannak.
- Arra bátorítunk benneteket, hogy hozzátok létre a kapcsolatotERDDAP™az adatbázisba, hogy
- mindig használja az SSL-t,
- csak az egyik IP-címből származó kapcsolatokat engedélyezi (vagy a címek egy blokkja) az egyiktőlERDDAP™felhasználó és
- csak átadja a jelszavakat az MD5 formanyomtatványában.
- \[KNOWN PROBLEM\]A kapcsolatfeltételek (beleértve a jelszót!) egyszerű szövegként tároljákdatasets.xml... Nem találtunk módot arra, hogy az adminisztrátor belépjen az adatbázis-jelszóbaERDDAPKezdőlap Tomcatban (amely felhasználói bemenet nélkül történik) Így a jelszót egy fájlban hozzáférhetőnek kell lennie. Hogy ezt biztonságosabbá tegyük:
- Te vagy (aERDDAP™adminisztrátor) legyen a tulajdonosadatasets.xmlés van READ és WRITE hozzáférés.
- Készítsen egy csoportot, amely csak felhasználó=tomcatot tartalmaz. Használja a chgrp-t, hogy a csoport legyendatasets.xmlCsak READ kiváltságokkal.
- Használja a chmod-t az o-rwx kiváltságok hozzárendeléséhez (Nincs READ vagy WRITE hozzáférés a "másik" felhasználókhoz) Mertdatasets.xml...
- MikorERDDAP™, a jelszó és más kapcsolati tulajdonságokat "magánban" tároljákJavaváltozók.
- Az ügyfelek kéréseit elválasztják és ellenőrizik az érvényességet, mielőtt létrehozzák az SQL kérelmeit az adatbázishoz.
- Az adatbázis iránti kérelmeket az SQL PreparedStatements-el készítik, hogy megakadályozzákSQL injekció...
- Az adatbázisra vonatkozó kérelmeket végrehajtottan nyújtják be Irányítás (Nem executeState) korlátozni a kérelmeket, hogy csak olvassák (így próbálta meg az SQL injekciót, hogy megváltoztassa az adatbázist, szintén kudarcot vall.) ...
SQL
- MertOPeNDAP„A mesés adatok kéréseit az SQL mesés adatok kéréseire tervezték, könnyűERDDAP™a tabuláris adatkérések egyszerű SQL PreparedStatements-be való átalakítása. Például,ERDDAP™kérés
time,temperature&time>=2008-01-01T00:00:00Z&time<=2008-02-01T00:00:00Z
Az SQL PreparedStatementbe kerül
SELECT "time", "temperature" FROM *tableName*
WHERE "time" >= 2008-01-01T00:00:00Z AND "time" <= 2008-02-01T00:00:00Z
ERDDAP™kérések &distinct () és/vagyorderBy ( változók ) hozzáadja a DISTINCT-t és/vagy ORDER BY-t változók az SQL elkészített nyilatkozatára. Általában ez nagymértékben lelassítja az adatbázis válaszát. ERDDAP™a PreparedStatement bejegyzéseLog.txtmint
statement=*thePreparedStatement*
Ez az előkészítés szöveges ábrázolása lesz, amely kissé különbözhet a tényleges PreparedStatementtől. Például az PreparedStatementben az időket különleges módon kódolják. De a szöveges képviseletben úgy tűnik, mint az ISO 8601-es dátumidő.
Adatbázis sebesség
- Az adatbázisok lassúak lehetnek. Van néhány dolog, amit tehetsz:
- Általános - Az SQL jellege az, hogy a kérdésekdeklaratív... Pontosan meghatározzák, mit akar a felhasználó. Nem tartalmaznak specifikációt vagy utalásokat arra, hogy a lekérdezést hogyan kell kezelni vagy optimalizálni. Tehát nincs módERDDAP™a lekérdezés oly módon történő létrehozása, hogy segít az adatbázis optimalizálni a lekérdezést (vagy bármilyen módon meghatározza, hogyan kell kezelni a lekérdezést) ... Általában az adatbázis-adminisztrátortól függ, hogy felállítsa a dolgokat (Például indexek) bizonyos típusú kérdések optimalizálása.
Állítsa be a Fetch méretét
Az adatbázisok visszatérnek az adatokhozERDDAP™zsarukban. Alapértelmezés szerint a különböző adatbázisok különböző sorokat térnek vissza a zsákokban. Gyakran ez a szám nagyon kicsi és nagyon hatástalan. Például az alapértelmezésOracle10! Olvassa el az adatbázis JDBC dokumentációját az adatbázis JDBC sofőrjéhez, hogy megtalálja a kapcsolatot, hogy ezt növelje, és add hozzá ezt az adatkészlet leírásáhozdatasets.xml... Például, A MySQL és az Amazon RDS esetében használjon
<connectionProperty name="defaultFetchSize">10000</connectionProperty>
A MariaDB esetében jelenleg nincs mód a fetch méret megváltoztatására. De ez egy kért funkció, így keresse meg az internetet, hogy megnézze, hogy ez végrehajtott-e. MertOracleHasználat
<connectionProperty name="defaultRowPrefetch">10000</connectionProperty>
PostgreSQL, használat
<connectionProperty name="defaultRowFetchSize">10000</connectionProperty>
de úgy érzi, szabad megváltoztatni a számot. A túl nagy szám beállítása okozzaERDDAP™sok memóriát használni, és valószínűbb, hogy kifut a memóriából.
ConnectionSzövetségek
Minden adatbázisnak más kapcsolati tulajdonságai vannak, amelyeket meg lehet adnidatasets.xml... Ezek közül sokan hatással lesznek az adatbázis teljesítményéreERDDAP™kapcsolat. Kérjük, olvassa el a dokumentációt az adatbázis JDBC vezetője számára, hogy lássa a lehetőségeket. Ha olyan kapcsolati tulajdonságokat talál, amelyek hasznosak, küldjön e-mailt a részletekkelerd dot data at noaa dot gov...
- Készítsen asztalt - Valószínűleg gyorsabb válaszokat kap, ha rendszeresen (Mindennap? bármikor új adatok vannak?) létrehoz egy tényleges asztalt (Hasonlóképpen, hogyan generálta a VIEW-t) és mondjaERDDAP™adatokat szerezni az asztalról a VIEW helyett. Mivel az asztal iránti kérelmet ezután be lehet tölteni anélkül, hogy JOINing egy másik asztal, a válasz sokkal gyorsabb lesz.
- Vákuum a táblázat - MySQL és Amazon RDS sokkal gyorsabban reagál, ha használjaOPTIMIZE TABLE... Maria A DB sokkal gyorsabban reagál, ha használjaOPTIMIZE TABLE... A PostgreSQL sokkal gyorsabban reagál, haVACUUMaz asztal. Oraclenincs, vagy nincs szükség analóg parancsra.
- Készülj felIndexekközösen konstruált változók számára - Felgyorsíthat sok / legtöbb kérdést azáltal, hogy indexeket hoz létre az adatbázisban a változók számára (amelyet az adatbázisok "oszlopoknak" neveznek) gyakran korlátozzák a felhasználó lekérdezését. Általánosságban elmondható, hogy ezek ugyanazok a változók, amelyeket [a [a]<subsetVariables>>>>>> (#subsetvariables) és/vagy a magasság, a hosszúság és az idő változók.
Connection Pooling használata
Általában,ERDDAP™külön kapcsolatot teremt az adatbázissal minden kérésre. Ez a legmegbízhatóbb megközelítés. A gyorsabb alternatíva egy DataSource használata, amely támogatja a kapcsolatfelvételt. Hogy felállítsuk, megadjuk (például)
<dataSourceName>java:comp/env/jdbc/postgres/erddap</dataSourceName>
jobb mellett<sourceUrl>,<sofőrName> és<kapcsolat Tulajdonság>. és Tomcat /conf/context.xml, definiálja az erőforrást ugyanazokkal az információkkal, például
<Resource
name="jdbc/postgres/erddap" auth="Container" type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="*jdbc:postgresql://somehost:5432/myDatabaseName*"
username="*myUsername*" password="*myPassword*"
initialSize="0" maxActive="8" minIdle="0" maxIdle="0" maxWait="-1"/>
Általános információk a DataSource használatáról https://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html ... LásdTomcat DataSource információésTomcat DataSource példákvagy keresse meg az internetet például az adatszolgáltatások más alkalmazásszerverekkel történő használatával.
- Ha minden más kudarcot vall, fontolja meg az adatok tárolását egy gyűjteménybenNetCDFv3.ncfájlok (különösen különösen.ncfájlok, amelyek aCF Discrete Sampling Geometries (DSG) Contiguous Ragged Array adatstruktúrák és így kezelhetőkERDDAPAEDDTableFromNcCFFiles) ... Ha logikailag megszervezik őket (mindegyik adat egy darab űr és idő) ,ERDDAP™nagyon gyorsan kivonhatja az adatokat tőlük.
EDDTableFromDatabase csontváz XML
<dataset type="EDDTableFromDatabase" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<!-- The format varies for each type of database, but will be
something like:
For MariaDB: jdbc:mariadb://xxx.xxx.xxx.xxx:3306/databaseName
For MySql jdbc:mysql://xxx.xxx.xxx.xxx:3306/databaseName
For Amazon RDS: jdbc:mysql://xxx.xxx.xxx.xxx:3306/databaseName
For Oracle: jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1521:databaseName
For Postgresql: jdbc:postgresql://xxx.xxx.xxx.xxx:5432/databaseName
where xxx.xxx.xxx.xxx is the host computer's numeric IP address
followed by :PortNumber (4 digits), which may be different for your
database. REQUIRED. -->
<driverName\>...</driverName>
<!-- The high-level name of the database driver, for example,
"org.postgresql.Driver". You need to put the actual database
driver .jar file (for example, postgresql.jdbc.jar) in
tomcat/webapps/erddap/WEB-INF/lib. REQUIRED. -->
<connectionProperty name="name">value</connectionProperty>
<!-- The names (for example, "user", "password", and "ssl")
and values of the properties needed for ERDDAP™ to establish
the connection to the database. 0 or more. -->
<dataSourceName>...</dataSourceName> <!-- 0 or 1 -->
<catalogName>...</catalogName>
<!-- The name of the catalog which has the schema which has the
table, default = "". OPTIONAL. Some databases don't use
this. -->
<schemaName>...</schemaName> <!-- The name of the
schema which has the table, default = "". OPTIONAL. -->
<tableName>...</tableName> <!-- The name of the
table, default = "". REQUIRED. -->
<columnNameQuotes><columnNameQuotes> <!-- OPTIONAL. Options:
" (the default), ', \[nothing\]. -->
<orderBy>...</orderBy> <!-- A comma-separated list of
sourceNames to be used in an ORDER BY clause at the end of the
every query sent to the database (unless the user's request
includes an &orderBy() filter, in which case the user's
orderBy is used). The order of the sourceNames is important.
The leftmost (first) sourceName is most important; subsequent
sourceNames are only used to break ties. Only relevant
sourceNames are included in the ORDER BY clause for a given user
request. If this is not specified, the order of the returned
values is not specified. Default = "". OPTIONAL. -->
<sourceCanOrderBy>no(default)|partial|yes</sourceCanOrderBy>
<!-- 0 or 1 -->
<sourceCanDoDistinct>no(default)|partial|yes</sourceCanDoDistinct>
<!-- 0 or 1 -->
<sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<dataVariable>...</dataVariable> <!-- 1 or more.
Each dataVariable MUST include a <dataType> tag.
See Database DataTypes.
For database date and timestamp columns, set dataType=double and
units=seconds since 1970-01-01T00:00:00Z -->
</dataset>
EDDTableFromEDDGrid
EDDTableFromEDDGrid lehetővé teszi, hogy létrehozzon egy EDDTable adatkészletet bármelyikbőlEDDGridadatkészlet.
- Néhány gyakori oka ennek:
- Ez lehetővé teszi az adatkészlet lekérésétOPeNDAPkiválasztási korlátok, amelyek egyfajta "kérdezés érték szerint" (melyik felhasználó kérhette) ...
- Az adatkészlet eredetileg tabuláris adatkészlet.
- A globális tulajdonság „maxAxis0” értéke (általában a Type="int") , (az alapértelmezett 10) használni fogják a tengelyek számának korlátozását\[0 0\] (általában"time"axis) a bezárt értékekEDDGridolyan adatkészlet, amely adatok kérése esetén elérhető. Ha nem akarja, hogy legyen bármilyen határ, adja meg a 0 értéket. Ez a beállítás azért fontos, mert különben túl könnyű lenne egy felhasználónak kérni az EDDTableF-tEDDGridáttekinteni az összes rácsos adatkészlet adatait. Ez hosszú időt vesz igénybe, és szinte biztosan kudarcot vallana egy kiütési hiba miatt. Ez az a beállítás, amely biztonságossá teszi az EDDTableF-tEDDGridadatkészletek az Ön adataibanERDDAPFélelem nélkül, hogy a számítási erőforrások ésszerűtlen használatához vezetnek.
- Ha a bezártEDDGridegyEDDGridFromErdapésERDDAP™ugyanazERDDAPEzután EDDTableFromEDDGridmindig közvetlenül használja a hivatkozott adatkészlet jelenlegi verzióját. Ez egy nagyon hatékony módja az EDDTableF-nekEDDGrida rácsos adatokhoz való hozzáféréshez.
- Ez az osztály [<újratöltés MindenNMinutes>] (#reloadeveryn percek) az, ami számít. A bezártEDDGridA<reloadEveryNMinutes> figyelmen kívül hagyják.
- Ha érték [<frissítésEveryNMillis> (#updateeverynmillis) ez az adatkészlet, figyelmen kívül hagyják. A bezártEDDGridA<frissítésEveryNMillis> az, ami számít.
- GenerateDatasetsXmllehetősége van az adatkészlet típusára=EDDTableFromEDDGridamely egy URL-t kérERDDAP (általában ugyanazERDDAP) („/erddap/”) rendszeres kifejezés. GenerateDatasets Az Xml az XML-t egy EDDTableF-re fogja generálniEDDGridadatkészlet minden egyes rácsos adatkészlethezERDDAP™amelynek van egydatasetIDamely megfelel a rendszeres kifejezésnek (Használjon .\*-t, hogy megfeleljen az összesdatasetIDs a rácsos adatkészletekért) ...
Az XML darabja, amelyet a GenerateDatasetsXml generál minden adatkészlethez:
- AdatasetIDami azEDDGridAdatasetIDplusz "\_Asatable".
- Egy új összefoglaló globális tulajdonság, amely aEDDGridösszefoglaló plusz egy új első bekezdés, amely leírja, hogy mi ez az adatkészlet.
- Egy új cím globális tulajdonság, amely aEDDGriddalszöveg: 's cím plus', (Mint asztal) "..."
- Egy új maxAxis0 globális tulajdonság 10 értékkel.
EDDTableFromEDDGridSkeleton XML
<dataset type="EDDTableFromEDDGrid" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDTableFromEDDGrid, this calls lowUpdate() of the underlying
EDDGrid. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<dataset>...</dataset> <!-- 1
Any type of EDDGrid dataset. You can even use an
EDDGridFromERDDAP™ to access an independent EDDGrid dataset on
this server. -->
</dataset>
EDDTableFromFileNames
EDDTableFromFileNames adatkészletet hoz létre a szerver fájlrendszerében lévő fájlok csoportjáról, beleértve az egyes fájlok URL-jét, hogy a felhasználók letölthessék a fájlokat aERDDAPA"files"rendszerrendszer... Ellentétben az összesEDDTableFromFilesalosztályok, ez az adatkészlet típus nem szolgálja az adatokat a fájlokon belül.
- EDDTableFromFileNames hasznos, ha:
- Van egy olyan fájlok csoportja, amelyeket egész fájlként szeretne elosztani, mert nem tartalmaznak „adatot” ugyanúgy, ahogyan a rendszeres adatfájlok adatokkal rendelkeznek. Például képfájlok, videofájlok, Word dokumentumok, Excel táblázatok, PowerPoint prezentációs fájlok vagy szövegfájlok strukturálatlan szöveggel.
- Van egy olyan fájlok csoportja, amelyek olyan formátumban adatokkal rendelkeznek,ERDDAP™Még nem olvasható. Például egy projektspecifikus, egyedi, bináris formátum.
EDDTableFromFileNames adatok
- Az adatok egy EDDTableFromFileNames adatkészletbenegy asztal, amelyERDDAP™on-the-fly információt hoz létre a helyi fájlok csoportjáról. Az asztalnál van egy sor minden fájlhoz. Négy különleges tulajdonság adatasets.xmlez az adatkészletmeghatározza, hogy mely fájlokat fognak tartalmazni ebben az adatkészletben:
fájl Dir
- <fájlDir> - Ez meghatározza a szerver fájlrendszerének forráskönyvtárát az adatkészlethez tartozó fájlokkal. Azok a fájlok, amelyek valójában a szerver fájlrendszerében találhatók<fájlDir> jelenik meg az adatkészlet url oszlopában egy virtuális könyvtáron belül https://serverUrl/erddap/files/datasetID/ ... Például, hadatasetIDjplMURSST, és<fájlDir> /home/data/mur/ és ez a könyvtár egy jplMU nevű fájlt tartalmazRSST20150103000000.png, Ezután az URL, amely a felhasználók számára jelenik meg, hogy ez a fájl lesz https://serverUrl/erddap/jplMURSST/jplMURSST20150103000000.png ...
Amellett, hogy egy helyi könyvtárat használunk<fájlDir>, akkor is megadhatja az URL egy távoli, könyvtári-szerű weboldal. Ez működik:
- A nem összesített adatkészletek a THREDDS-ben, például https://data.nodc.noaa.gov/thredds/catalog/aquarius/nodc\\_binned\\_V3.0/monthly/ \[2020-10-21 Ez a szerver már nem megbízhatóan elérhető.\]
- A nem összesített adatkészletekHyraxpl.: https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/
- A legtöbb Apache-szerű könyvtári lista, például https://www1.ncdc.noaa.gov/pub/data/cmb/ersst/v5/netcdf/
dalszöveg: OnTheFly
\\\*fromOnTheFly- Néhány hatalmas S3 vödör (mint a noaa-goes17, amely 26 millió fájlt tartalmaz) Lehet, hogyERDDAP™legfeljebb 12 óra, hogy letöltse az összes információt a tartalmát a vödör (vannak más problémák) ... Ahhoz, hogy körül ezt, van egy speciális módja annak, hogy használja<fájlDir> az EDDTableFromFileNames-ben, hogy adathalmazt készítsen az AWS S3 bucket könyvtárával és fájlneveivel. Az adatkészletnek nem lesz az összes S3 bucket könyvtárának és fájlnevének listája, amelyet a felhasználó kereshet az adatkészlet iránti kérelmeken keresztül. De az adatkészlet megkapja a könyvtárak és fájlok nevét, ha a felhasználó átlépi a könyvtári hierarchiát az adatkészlettel"files"opció. Így ez lehetővé teszi a felhasználók számára, hogy böngészjenek az S3 bucket fájlhierarchiájával és fájlokkal az adatkészleten keresztül"files"rendszer. Ehhez, ahelyett, hogy meghatározná az URL-t az S3 bucket számára, mint a "Starting Directory" (a GenerateDatasets Xml) vagy<fájlDir> (bennedatasets.xml) Használat:
\\*\\*\\*fromOnTheFly,*theS3BucketUrl*
Például:
\\*\\*\\*fromOnTheFly,https://noaa-goes17.s3.us-east-1.amazonaws.com/
Lásd a dokumentációtS3 Buckets-szel dolgozunkERDDAP™, nevezetesen a specifikus formátum leírása, amelyet az S3 bucket URL-hez kell használni. És nézd meg ezek a részletek és példákhasználat\\\*fromOnTheFly.
ismétlődő
- <visszatérő> - Files in Subdirectors of the<fájlDir> olyan nevekkel, amelyek megfelelnek<fájlRegex> ugyanazon albizottságokban jelenik meg"files"URL, ha<Az ismétlődő> igaz. Az alapértelmezés hamis.
- [[szerkesztés]]<PaintRegex>] (#pathregex) - Ha visszatérő=igaz, csak a könyvtár nevek, amelyek megfelelnek az útvonalnakRegex (default=".\*") elfogadják. Ha visszatérő=hamis, ezt figyelmen kívül hagyják. Ezt ritkán használják, de nagyon hasznos lehet a szokatlan körülmények között. (Lásd eztregex dokumentációésregex bemutató...)
fájlkezelő
- <fileRegex> - Csak a fájlnév, ahol az egész fájlnév (nem tartalmazza a könyvtár nevét) Meccs<A fájlRegex> szerepel ebben az adatkészletben. Például a jplMURSST.{14.png . (Lásd eztregex dokumentációésregex bemutató...)
File nevek Adattáblázat Tartalmak
Az asztalnál oszlopok lesznek:
-
url - Az URL, amelyet a felhasználók használhatnak a fájl letöltéséhezERDDAPA"files"rendszerrendszer...
-
név - A fájl neve (könyvtári név nélkül) ...
-
Utolsó módosítás - Az idő, amikor a fájlt legutóbb módosították (duplákként tárolva"seconds since 1970-01-01T00:00:00Z") ... Ez a változó azért hasznos, mert a felhasználók láthatják, hogy egy adott fájl tartalma megváltozott-e. Ez a változó egyIdő Stamp változóÍgy az adatok numerikus értékként jelenhetnek meg (másodpercek 1970-01-01T00:00Z) vagy erős érték (ISO 8601:2004 (EZ) formátum) a helyzettől függően.
-
méret - A fájl mérete byte-ben, duplaként tárolva. Duplán tárolják őket, mert egyes fájlok nagyobbak lehetnek, mint a betűk lehetővé teszik, és a hosszúságokat nem támogatják valamilyen válaszfájltípusban. A duplák pontos méretet adnak, még nagyon nagy fájlokat is.
-
kiegészítő oszlopok, amelyeket aERDDAP™adminisztrátor a fájlnévből kivont információkkal (Például az adatokhoz kapcsolódó idő a fájlban) két tulajdonság alapján, amelyet minden további oszlop/dataVariable:
- ExtractRegex - Ez egyrendszeres kifejezés (tutorial) ... Az egész regexnek meg kell felelnie az egész fájlnévnek (nem tartalmazza a könyvtár nevét) ... A regexnek tartalmaznia kell legalább egy rögzítő csoportot (a parentézisek által bezárt rendszeres kifejezés egy része) melyikERDDAP™azon felhasználások, amelyek meghatározzák, hogy a fájlnév melyik része kivonja az adatokat.
- Kivonat Csoport -- Ez a rögzítő csoport száma (# 1 az első rögzítő csoport) rendszeres kifejezésben. Az alapértelmezett 1 A rögzítő csoport egy olyan rendszeres kifejezés része, amelyet a parentheses zár.
Íme két példa:
<dataVariable>
<sourceName>time</sourceName>
<destinationName>time</destinationName>
<dataType>String</dataType>
<addAttributes>
<att name="extractRegex">jplMURSST(.{14})\\.png</att>
<att name="extractGroup" type="int">1</att>
<att name="units">yyyyMMddHHmmss</att>
</addAttributes>
</dataVariable>
<dataVariable>
<sourceName>day</sourceName>
<destinationName>day</destinationName>
<dataType>int</dataType>
<addAttributes>
<att name="extractRegex">jplMURSST.{6}(..).{6}\\.png</att>
<att name="extractGroup" type="int">1</att>
<att name="ioos\\_category">Time</att>
</addAttributes>
</dataVariable>
Abban az esetben, ha egy fájl van a neve jplMURSST20150103000000.png, a kivonatRegex megfelel a fájlnévnek, kivonja azokat a karaktereket, amelyek megfelelnek az első rögzítő csoportnak ("20150103000000") adatType=String, majd használja aA szigorú időkre alkalmas egységeka sztrájkok időbeli adatértékekbe való felosztása (2015-01-03T00:00Z) ...
A nap változója esetén, ha egy fájl rendelkezik a jplMU névvelRSST20150103000000.png, a kivonatRegex megfelel a fájlnévnek, kivonja azokat a karaktereket, amelyek megfelelnek az első rögzítő csoportnak ("03") [[szerkesztés]]<adatType>] (#datatype) \=int, a 3. adatérték elszámolása
Egyéb információk
- [[szerkesztés]]<frissítésEveryNMillis> (#updateeverynmillis) - Ez a fajta adatkészlet nem igényel és nem tudja használni<frissítésEveryNMillis> címke, mert az EDDTableFromFileNames által szolgáltatott információk mindig tökéletesen naprakészek, mertERDDAP™kéri a fájlrendszert annak érdekében, hogy válaszoljon minden adatkérésre. Még akkor is, ha számos fájl létezik, ez a megközelítésnek ésszerűen jól kell működnie. A válasz lassú lehet, ha számos fájl van, és az adathalmazt egy ideig nem kérték. De néhány perc múlva az operációs rendszer tartsa az információt egy gyorsítótárban, így a válaszoknak nagyon gyorsnak kell lenniük.
- Használhatja aGenerateDatasets Xml programHogy adatasets.xmlcunk az ilyen típusú adatkészlethez. További oszlopokat adhat hozzá / definiálhat a fájlnévből kivont információkkal, amint azt fentebb mutatják.
EDDTableFromFileNames csontváz XML
<dataset type="EDDTableFromFileNames" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<fileDir>...</fileDir>
<recursive>...</recursive> <!-- true or false (the default) -->
<pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
match the pathRegex (default=".\*") will be accepted. -->
<fileNameRegex>...</fileNameRegex>
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<dataVariable>...</dataVariable> <!-- 1 or more.
Each dataVariable MUST include <dataType> tag. -->
</dataset>
EDDTableFromFiles
EDDTableFromFiles az összes EDDTableF felülete... Files osztályok. Nem használhatja az EDDTableFromFiles-t közvetlenül. Ehelyett használja az EDDTableFromFiles alosztályát, hogy kezelje az adott fájltípust:
- EDDTableFromAsciiFilesösszesíti az adatokat a comma-tól, a tab-tól, a szemicolon-tól, vagy az űrválasztott tabuláris ASCII adatfájloktól.
- EDDTableFromAudioFilesösszesíti az adatokat egy csoport helyi audio fájlokat.
- EDDTableFrom AwsXmlFilesösszesíti az adatokat egy sor Automatic Weather Station (AWS) XML fájlok.
- EDDTableFromColumnarAsciiFilesösszesíti a tabuláris ASCII adatfájlok adatait rögzített szélességi adatoszlopokkal.
- EDDTableFromHyraxFiók (Meghatározva) összesíti az adatokat több változóval, mindegyik közös dimenzióval (Például, idő, magasság (vagy mélység) , magasság, hosszúság) és szolgált egyHyrax OPeNDAPszerver...
- EDDTableFromInvalidCRAFilesösszesített adatokNetCDF (v3 vagy v4) .ncfájlok, amelyek egy adott, érvénytelen, változata a CF DSG Contiguous Ragged Array (CRA) fájlok. BárERDDAP™támogatja ezt a fájltípust, ez egy érvénytelen fájltípus, amelyet senkinek nem kell használnia. Azok a csoportok, amelyek jelenleg ezt a fájltípust használják, erősen ösztönzik a használatraERDDAP™hiteles CF DSG CRA fájlok generálására, és hagyja abba ezeket a fájlokat.
- EDDTableFromJsonlCSVFilesösszesített adatokJSON Lines CSV fájlok...
- EDDTableFromMultidimNcFilesösszesített adatokNetCDF (v3 vagy v4) .nc (vagy.ncml ml) több változóval rendelkező fájlok, mindegyik közös dimenzióval (Például, idő, magasság (vagy mélység) , magasság, hosszúság) ...
- EDDTableFromNcFilesösszesített adatokNetCDF (v3 vagy v4) .nc (vagy.ncml ml) több változóval rendelkező fájlok, mindegyik közös dimenzióval (Például, idő, magasság (vagy mélység) , magasság, hosszúság) ... Jó, ha továbbra is használja ezt az adatkészlettípust a meglévő adatkészletekhez, de új adatkészletek esetében inkább az EDDTableFromMultidimNcFiles használatát javasoljuk.
- EDDTableFromNcCFFilesösszesített adatokNetCDF (v3 vagy v4) .nc (vagy.ncml ml) fájlokat, amelyek az egyik fájlformátumot használják, amelyet aCF Discrete Sampling Geometries (DSG) egyezmények. De az egyik multidimenzionális CF DSG változatot használó fájlokhoz, használjonEDDTableFromMultidimNcFilesEhelyett.
- EDDTableFromNccsvFilesösszesített adatokNCCSVASCII .csv fájlok.
- EDDTableFromParquetFilesadatok kezeléseParquet...
- EDDTableFromThreddsFiles (Meghatározva) összesíti a fájlok adatait több változóval, amelyeket megosztott dimenziók szolgálnak egyHírekOPeNDAPszerver...
- EDDTableFromWFSFiók (Meghatározva) helyi másolatot készít az összes adatról egyArcGISMapServerWFSszerver, így az adatok gyorsan továbbíthatókERDDAP™felhasználók.
Jelenleg nem támogatnak más fájltípusokat. De általában viszonylag könnyű támogatni más fájltípusokat. Lépjen kapcsolatba velünk, ha van kérése. Vagy, ha az adatai egy régi fájlformátumban vannak, amelyet el akarsz költözni, javasoljuk, hogy a fájlok átalakítása legyenNetCDFv3.ncfájlok (és különösen.ncfájlok aCF Discrete Sampling Geometries (DSG) Contiguous Ragged Array adatstruktúra -ERDDAP™nagyon gyorsan kivonhatja az adatokat) ...NetCDFszéles körben támogatott, bináris formátum, lehetővé teszi a gyors véletlenszerű hozzáférést az adatokhoz, és már támogatottERDDAP...
FromFiles részletek
A következő információ az EDDTableFromFiles összes alosztályára vonatkozik.
Aggregáció
Ez az osztály összesíti az adatokat a helyi fájlokból. Minden fájl tart egy (viszonylag) kis adattáblázat.
- Az ebből eredő adatkészlet úgy tűnik, mintha az összes fájl tábláját kombinálták volna (az adatok összes sora a #1 fájlból, plusz az összes sor a #2 fájlból, ...) ...
- A fájloknak nem mindegyiküknek rendelkeznie kell a megadott változókkal. Ha egy adott fájl nem rendelkezik meghatározott változóval,ERDDAP™szükség szerint hozzáadja a hiányzó értékeket.
- A változók az összes fájl MUST ugyanazokat az értékeket aadd\_offset,missing\_value,\_Töltés Érték,scale\_factorésegységtulajdonságok (ha valaki) ...ERDDAP™ellenőrzések, de ez egy tökéletlen teszt - ha különböző értékek vannak,ERDDAPnem tudja, melyik helyes, ezért milyen fájlok érvénytelenek. Ha ez egy probléma, akkor használható lehetNcMLvagyNCOa probléma megoldására.
Elnyomott fájlok
A forrásadat fájlok az összes EDDTableFromFiles alosztály számára külsőleg tömöríthetők (pl.:.tgz,.tar.gz,.tar.gzip,.gz,.gzip,.zip,.bz2vagy .Z) ... Lásd:Külsőleg elnyomott fájldokumentáció...
Cached File Információ
- Amikor az EDDTableFromFiles adatkészletet először töltik be, az EDDTableFromFiles az összes releváns fájlból olvas információkat, és táblázatokat hoz létre (Egy sor minden fájlhoz) minden érvényes fájlról és minden "rossz" (különböző vagy érvénytelen) fájl.
- Az asztalokat is tárolják a lemezen, mintNetCDFv3.ncfájlok bigParentDirectory[szerkesztés] /dataset/ Last2CharsOfDatasetID / datasetID / fájlok neve: dirTable.nc (amely az egyedi könyvtár nevek listáját tartalmazza) , fájl táblázat.nc (amely az asztalt minden érvényes fájl információjával tartja) , rosszfiókok.nc (amely az asztalt minden rossz fájl információjával tartja) ...
- Az EDDTableFromFiles adatkészlethez való hozzáférés felgyorsítása (de több memóriát használva) Használhatja
[[szerkesztés]]<fájlTableInMemory> Igaz</fileTableInMemory>] (#filetableinmemory)
Mondd elERDDAP™tartsa a fájlinformációs táblák másolatát az emlékezetben. - A lemezen található fájlinformációs táblák másolata akkor is hasznos, haERDDAP™le van zárva és újraindítva: megmenti az EDDTable-t A Files-től, hogy újra kell olvasnia az összes adatfájlot.
- Amikor egy adatkészletet újratöltik,ERDDAP™csak az adatokat kell olvasni az új fájlokban és fájlokban, amelyek megváltoztak.
- Ha egy fájlnak más szerkezete van a többi fájlból (Például egy másik adattípus az egyik változó számára, vagy egy másik érték a "egység- tulajdonság) ,ERDDAPhozzáadja a fájlt a "rossz" fájlok listájához. Információk a probléma a fájl lesz írva a bigParentDirectory[szerkesztés] /logs/log.txt fájl.
- Soha nem kell törölnie vagy dolgoznia ezeket a fájlokat. Az egyik kivétel: ha még mindig megváltoztatja az adatkészletetdatasets.xmlbeállítás, lehet, hogy törölni ezeket a fájlokat kényszeríteniERDDAP™az összes fájl újraindít ása, mivel a fájlokat másképp olvassák/értelmezik. Ha valaha is törli ezeket a fájlokat, akkor megteheti, haERDDAP™fut. (Ezután állítsa be azászlóaz adatkészlet újratöltése ASAP.) Azonban,ERDDAP™általában észreveszi, hogy adatasets.xmlaz információ nem egyezik a fájllal Asztalinformációk és a fájltáblák automatikusan törlése.
- Ha bátorítani akarszERDDAP™a tárolt adatkészlet információjának frissítése (például, ha csak hozzáadott, eltávolított vagy módosított néhány fájlt az adatkészlet adattárához) Használja azászlórendszerKényelemERDDAP™a csatolt fájlinformációk frissítése.
Kérések kezelése
- ERDDAP™A tabuláris adatkérések korlátozódhatnak bármilyen változóra.
- Amikor az ügyfél adatkérelme feldolgozásra kerül, az EDDTableFromFiles gyorsan megtekintheti az asztalt az érvényes fájlinformációkkal, hogy megnézze, mely fájlok lehetnek releváns adatok. Például, ha minden forrásfájl rendelkezik az adatok egy rögzített elhelyezkedésű buoy, EDDTableFromFiles nagyon hatékonyan meghatározhatja, hogy mely fájlok lehetnek adatok egy adott hosszúsági tartományban és a szélességi tartományban.
- Mivel az érvényes fájlinformációs táblázat tartalmazza az összes változó minimális és maximális értéket minden érvényes fájl esetében, az EDDTableFromFiles gyakran képes kezelni más kérdéseket meglehetősen hatékonyan. Például, ha néhány buoys nem rendelkezik levegőnyomás-érzékelővel, és az ügyfél kéri az adatokat a AirPressure!=NaN, EDDTableFromFiles hatékonyan meghatározhatja, hogy melyik buoys légnyomás-adatokkal rendelkezik.
A Cached File információ frissítése
Amikor az adatkészletet újratöltik, a csésze fájlinformációkat frissítik.
- Az adatkészletet rendszeresen újratöltik, amint azt a<reloadEveryNMinutes> az adatkészlet információibandatasets.xml...
- Az adatkészletet a lehető leghamarabb újratöltik, haERDDAP™kimutatja, hogy hozzáadott, eltávolított,touch'd (a fájl utolsó módosítása Módosított idő) vagy módosított egy adatszűrőt.
- Az adatkészlet a lehető leghamarabb újratöltődik, ha használjazászlórendszer...
Amikor az adatkészletet újratöltik,ERDDAP™összehasonlítja a jelenleg rendelkezésre álló fájlokat a csatolt fájlinformációs táblázathoz. Új fájlokat olvasnak és hozzáadnak az érvényes fájlok táblázatához. Azok a fájlok, amelyek már nem léteznek, az érvényes fájlok táblájából származnak. Azok a fájlok, ahol a fájl-időmérő változott, olvashatók, és az információjuk frissül. Az új táblák felváltják a régi táblákat a memória és a lemezen.
Bad Files
A rossz fájlok táblázata és az okok, amelyeket a fájlok rossznak nyilvánították (korrupt fájl, hiányzó változók, helytelen tengelyértékek stb.) e-mailben van az e-mailben Minden E-mail cím (valószínűleg te) Minden alkalommal, amikor az adatkészletet újratöltik. A lehető leghamarabb fel kell cserélnie vagy javítania ezeket a fájlokat.
Elhagyni a változókat
Ha néhány fájl nem rendelkezik néhányatdataVariableaz adatkészletben meghatározottdatasets.xmlcunk, ez rendben van. Amikor az EDDTableFromFiles elolvassa az egyik ilyen fájlt, úgy fog működni, mintha a fájl volt a változó, de minden hiányzó érték.
Közel valós idejű adatok
- Az EDDTableFromFiles a legutóbbi adatok iránti kérelmeket különleges esetként kezeli. A probléma: Ha az adatkészletet készítő fájlokat gyakran frissítik, valószínűleg az adatkészletet nem frissítik minden alkalommal, amikor egy fájlt változnak. Tehát az EDDTableFromFiles nem fogja tudni a módosított fájlokat. (Használhatja azászlórendszerDe ez vezethetERDDAP™az adatkészlet újratöltése szinte folyamatosan. Tehát a legtöbb esetben nem ajánljuk.) Ehelyett az EDDTableFromFiles a következő rendszerrel foglalkozik: MikorERDDAP™kérelmet kap az adatokat az elmúlt 20 órában (például 8 órával ezelőtt, egészen mostanáig) ,ERDDAP™Minden olyan fájlt keres, amely az elmúlt 20 órában adatokkal rendelkezik. Így,ERDDAP™nem kell tökéletesen naprakész adatokat tartalmaznia az összes fájl számára, hogy megtalálja a legújabb adatokat. Még mindig meg kell határozni [<újratöltés MindenNMinutes>] (#reloadeveryn percek) ésszerűen kicsi érték (például 60) de nem kell kicsinek lennie (Például 3) ...
-
Nem ajánlott a közeli valós idejű adatok szervezése a fájlokban: Ha például van olyan adatkészleted, amely számos állomásra tárol adatokat (vagy buoy, vagy trajectory, ...) Sok éven át rendezheti a fájlokat, hogy például van egy fájl állomásonként. De akkor minden alkalommal, amikor új adatok érkeznek egy állomásra, el kell olvasnia egy nagy régi fájlt, és írnia kell egy nagy új fájlt. És mikorERDDAP™visszatölti az adatkészletet, észreveszi, hogy néhány fájlt módosítottak, így teljesen elolvassa ezeket a fájlokat. Ez nem hatékony.
-
Ajánlott a közeli valós idejű adatok szervezése a fájlokban: Tárolja az adatokat a zsákokban, például az összes adatot egy állomásra/buoy/trajectory egy évig (vagy egy hónap) ... Aztán, amikor egy új datum érkezik, csak a fájl az idei (vagy hónap) Az adatokat érintik.
-
Legjobb: HasználatNetCDFv3.nckorlátlan dimenzióval rendelkező fájlok (Idő) ... Ezután, új adatok hozzáadásához csak módosíthatja az új adatokat anélkül, hogy el kell olvasnia és újraírnia az egész fájlt. A változás nagyon hatékonyan és lényegében atomikusan történik, így a fájl nem mindig egy következetlen állapotban van.
-
Egyébként: Ha nem / nem használ.nckorlátlan dimenzióval rendelkező fájlok (Idő) Ezután, ha új adatokat kell hozzáadnia, el kell olvasnia és újraírnia az egész érintett fájlt (remélhetőleg kicsi, mert csak egy éve van (vagy hónap) adatok értéke) ... Szerencsére az előző évek összes fájlja (vagy hónap) mert az állomás változatlan marad.
-
mindkét esetben, amikorERDDAP™visszatölti az adatkészletet, a legtöbb fájl változatlan; csak néhány, kis fájlok változott, és olvasni kell.
Rendezők
A fájlok lehetnek egy könyvtárban, vagy egy könyvtárban és az aláírókban (ismétlődően) ... Ha nagyszámú fájl van (Például:>1,000) , operációs rendszer (és így az EDDTableFromFiles) sokkal hatékonyabban fog működni, ha a fájlokat egy sor aláíróban tárolja (egy évente, vagy havonta egy adatkészletek nagyon gyakori fájlokkal) Annak érdekében, hogy soha ne legyen sok fájl egy adott könyvtárban.
Távoli könyvtárak és HTTP Range kérések
-
Távoli könyvtárak és HTTP Range kérések (AKA Byte Serving, Byte Range kérések) - EDDGridFromNcFiles, EDDTableFromMultidimNcFiles, EDDTableFromNcFiles és EDDTableFromNcCFFiles, néha szolgálhat adatokat.ncfájlok távoli szervereken és a HTTP-n keresztül elérhetők, ha a szerver támogatjaByte ServingHTTP tartományi kérések (HTTP mechanizmus a byte szolgáló) ... Ez azért lehetséges, mert netcdf-java (melyikERDDAP™Használat az olvasáshoz.ncfájlok) támogatja az adatok távolról történő olvasását.ncfájlok HTTP tartomány kérések.
Ne csináld ezt!
Ehelyett használja a [[szerkesztés]]]<cacheFromUrl> rendszer (#cachefromurl) ...
CacheFromUrl
- [[szerkesztés]] ** <cacheFromUrl> ** ] (#cachefromurl) -
MindenEDDGridFromFiles és az összes EDDTableFromFiles adatkészlet támogatja egy sor címkét, amelyek elmondjákERDDAP™letölteni és fenntartani egy másolatot az összes távoli adatkészlet fájlok, vagy egy csésze néhány fájl (letöltve, amennyire szükséges) ... Ez egy hihetetlenül hasznos funkció.
-
A<cacheFromUrl> címke lehetővé teszi, hogy megadja az URL-t egy távoli adatkészlet fájlainak listájával egy távoli fájllistából.
- A nem összesített adatkészletek a THREDDS-ben, például https://data.nodc.noaa.gov/thredds/catalog/aquarius/nodc\\_binned\\_V3.0/monthly/ \[2020-10-21 Ez a szerver már nem megbízhatóan elérhető.\]
- A nem összesített adatkészletekHyraxpl.: https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/
- A legtöbb Apache-szerű könyvtári lista, például https://www.ncei.noaa.gov/data/global-precipitation-climatology-project-gpcp-daily/
- S3 vödör, pl.
https://noaa-goes17.s3.us-east-1.amazonaws.com/
Ez azonban AWS-fiókot és több beállítást igényelhet. LásdS3 Buckets-szel dolgozunkERDDAP™... Továbbá, általában nem kell használni a cache FromUrl fájlokkal S3 buckets, ha a fájlok ASCII fájlok (pl.: .csv) mertERDDAP™hatékonyan olvassa el az adatokat a vödörről közvetlenül egy patakon keresztül.
ERDDAP™lemásolja vagy lekapcsolja ezeket a fájlokat az adatkészletben<fájlDir> könyvtár. Ha szüksége van egy másik típusú távoli fájllistára (pl. FTP) Kérjük, küldje el a kérését Chrisnek. John at noaa.gov.
- Az alapértelmezett érték a<cacheFromUrl> címke null. Ha nem adja meg az értéket<cacheFromUrl> címke, a copy/cache rendszer nem használható az adatkészlethez.
- Ha az adatkészlet<fileRegex> a beállítás valami más, mint .\*,ERDDAP™csak letölteni fájlokat, amelyek megfelelnek a fájlRegex.
- Ha az adatkészlet<visszaszerző> beállítás igaz, és a távoli fájlok közvetettek,ERDDAP™olyan távoli előirányzatokban fog megjelenni, amelyek megfelelnek az adatkészletnek [<PaintRegex>] (#pathregex) , hozzon létre ugyanazt a könyvtári struktúrát helyileg, és helyezze a helyi fájlokat ugyanabban az alirányítókban.
- A GenerateDatasets Xml, ha megadja a<cacheFromUrl> érték, Generáció Adatkészletek Xml létrehozza a helyi<fájlDir> könyvtár és másoljon 1 távoli fájlt. GenerateDatasets Az Xml ezután generáljadatasets.xmlcunk ezen mintafájl alapján (minta meghatározása File=nem) ...
- Ha az adatforrás távoliERDDAP™HasználatEDDGridFromErdapvagyEDDTableFromErddaphelyette<cacheFromUrl>. Így, a helyiERDDAP™Úgy tűnik, hogy az adatkészlet, de nem kell tárolni az adatokat helyileg. Az egyetlen ok a használatra<cacheFromUrl> az adatok távolrólERDDAP™akkor van, ha van más oka annak, hogy miért akarja az adatfájlok helyi másolatát. Ebben az esetben:
- Ez az adatkészlet megpróbálja feliratkozni a távoli adatkészletreERDDAPhogy az adatkészlet változásai ezt az adatkészlet zászlaját fogják hívni Url, ezzel a helyi adatkészlettel, hogy újratöltse és letöltse a módosított távoli fájlokat. Így a helyi adatkészlet hamarosan naprakész lesz, miután a változások a távoli adatkészlethez kerülnek.
- E-mailt kell küldenie a távoli adminisztrátornakERDDAP™Kérdezd megdatasets.xmla távoli adathalmaz számára, hogy az adathalmazt a helyiERDDAP™Úgy néz ki, mint a távoli adatkészletERDDAP...
- Ha az adatforrás távoliERDDAP™A helyi adatkészlet megpróbálja feliratkozni a távoli adatkészletre.
- Ha az előfizetés sikerül, bármikor a távoliERDDAPreloads és új adatokkal rendelkezik, felveszi a kapcsolatot a flagURL-rel az adatkészlethez, ami lehetővé teszi az új és/vagy megváltozott adatfájlok újratöltését és letöltését.
- Ha az előfizetés kudarcot vall (bármilyen okból) vagy ha egyszerűen azt szeretnénk biztosítani, hogy a helyi adatkészlet naprakész legyen, beállíthat egyzászlóa helyi adatkészlet esetében, így újratöltődik, így ellenőrizni fogja az új és/vagy módosított távoli adatfájlokat.
- Ha az adatforrás nem egy távoliERDDAP: az adatkészlet ellenőrzi az új és/vagy módosított távoli fájlokat, amikor visszatölti. Normális esetben ezt ellenőrzi [a]<újratöltés MindenNMinutes>] (#reloadeveryn percek) ... De ha tudod, mikor vannak új távoli fájlok, beállíthatsz egyzászlóa helyi adatkészlet esetében, így újratölti és ellenőrizi az új és/vagy módosított távoli adatfájlokat. Ha ez rutinszerűen történik egy bizonyos napon (pl.: 7 órakor) Cron munkát végezhet a használathozcurlKapcsolatba lépni a zászlóval Üdvözöljük ezt az adatkészletet, ezért újratölti és ellenőrizi az új és/vagy módosított távoli adatfájlokat.
-
A<cacheSizeGB> címke meghatározza a helyi cache méretét. Valószínűleg csak akkor kell használnia, ha olyan felhőtároló rendszerekkel dolgozol, mint példáulAmazon S3amely egy általánosan használt tárolórendszer, amely részeAmazon Web Services (AWS) ... Az alapértelmezettség -1.
- Ha az érték<=0 (pl. az -1 alapértelmezett értéke) ,
ERDDAP™letölteni és fenntartani egy Teljes másolat az összes távoli adatkészlet fájlja az adatkészletben<fájlDir>.
- Ez az a beállítás, amelyet bármikor ajánlott.
- Minden alkalommal, amikor az adatkészletet újratöltik, összehasonlítja a távoli fájlok és a helyi fájlok neveit, méreteit és LastModified időit, és letölti az új vagy megváltozott távoli fájlokat.
- Ha egy távoli szerveren lévő fájl eltűnik,ERDDAP™nem törli a megfelelő helyi fájlt (egyébként, ha valami átmenetileg rossz volt a távoli szerverrel,ERDDAP™törölhet néhány vagy az összes helyi fájlt!) ...
- Ezzel a beállítással általában beállítja<frissítésEveryNMillis> -1-re, mivel az adatkészlet tisztában van azzal, hogy új adatfájlokat telepített be.
- Ha az érték >0,
ERDDAP™letölti a távoli adatkészletből származó fájlokat, amennyire szükséges egy helyi Húsvét (az adatkészletben<fájlDir>) a megadott számú GB küszöbértékével.
- A gyorsítótárnak elég nagynak kell lennie ahhoz, hogy legalább több adatfájlot tartson.
- Általában a nagyobb a gyorsaság, annál jobb, mert a következő kért adatfájl nagyobb valószínűséggel lesz a gyorsaságban.
- Caching csak akkor használható, haERDDAP™fut egy felhő számítástechnikai szerveren (pl. egy AWS-kompatippus) és a távoli fájlok felhőtároló rendszerben (pl.: AWS S3) ...
- Amikor a helyi fájlok által használt lemezterület meghaladja a cache-t SizeGB,ERDDAP™hamarosan (Lehet, hogy nem azonnal) törleszteni néhány csésze fájlt (jelenleg a legkevésbé használt legutóbbi (LRU) algoritmus) amíg a helyi fájlok által használt lemezterület nem<0.75\*cacheSizeGB (A "goal") ... Igen, vannak olyan esetek, amikor az LRU nagyon rosszul teljesít – nincs tökéletes algoritmus.
- ERDDAP™Soha nem próbálja törölni egy csésze fájltERDDAP™az utolsó 10 másodpercben kezdtek használni. Ez egy tökéletlen rendszer, amely kezeli a cache rendszert, és az adatfájl-olvasó rendszert csak lazaan integrálják. E szabály miatt,ERDDAP™Lehet, hogy nem tudja törölni elég fájlokat, hogy elérje a célját, amely esetben a WARNING-t nyomtatja a log.txt fájlba, és a rendszer sok időt veszteget, hogy megpróbálja megdönteni a gyorsítótárat, és lehetséges, hogy a fájlok mérete a cacheSizeGB-t nagymértékben meghaladhatja. Ha ez megtörténik, használjon nagyobb cacheSizeGB beállítást az adatkészlethez.
- Jelenleg,ERDDAP™Soha nem ellenőrzi, hogy a távoli szerver rendelkezik-e egy olyan fájl új verziójával, amely a helyi cache-ban van. Ha szüksége van erre a funkcióra, kérjük, e-mailben Chris. John at noaa.gov.
- Bár ugyanazok a címke nevek használata azt jelenti, hogy a másolatrendszer és a cache rendszer ugyanazt az alaprendszert használja, ami nem helyes.
- A másolatrendszer proaktívan indítja el a feladatotHárom feladatot, hogy minden alkalommal letöltse az új és megváltozott fájlokat, amikor az adatkészletet újratöltik. Csak olyan fájlok, amelyek ténylegesen másoltak a helyi könyvtárban, elérhetők aERDDAP™adatkészlet.
- A cache rendszer minden alkalommal megkapja a távoli fájllistát, amikor az adatkészletet újratöltik, és úgy tesz, hogy ezek a fájlok mindegyike elérhető.ERDDAP™adatkészlet. Érdekes, hogy az összes távoli fájl még az adatkészlet /files / weboldalakon is megjelenik, és letölthető (Bár talán csak késés után, míg a fájlt először letöltik a távoli szerverről a helyi gyorsítótárba.)
- Azok az adatok, amelyek a cacheSizeGB-t használják, előnyösek lehetnek egynHáromnagyobb beállítás, mint 1, mert ez lehetővé teszi, hogy az adatkészlet több mint 1 távoli fájl egy időben.
- Ha az érték<=0 (pl. az -1 alapértelmezett értéke) ,
ERDDAP™letölteni és fenntartani egy Teljes másolat az összes távoli adatkészlet fájlja az adatkészletben<fájlDir>.
-
A<cachePartialPathRegex> címke egy ritkán használt címke, amely meghatározhatja az adatkészlet alternatíváját [<PaintRegex>] (#pathregex) ... Az alapértelmezettség null.
- Csak akkor használja ezt, ha az egész adatkészletet az alapértelmezésen keresztül másolja<cacheSizeGB> érték -1. With<cacheSizeGB> értékek >1, ez figyelmen kívül hagyják, mert ez nem érzéki.
- Lásd [a dokumentációt]<PaintRegex>] (#pathregex) útmutatásért, hogyan építsük fel a regexet.
- Ha ez meg van határozva, akkor minden alkalommal felhasználják az adatkészletet, kivéve, ha az adatkészletet egy hónap elején újratöltik.
- Ez akkor hasznos, ha a távoli adatkészletet labirintusban tárolják, és amikor ezeknek a fájloknak a túlnyomó többsége ritkán változik, ha valaha is megváltozik. ()<köhögés> NASA<Kemény>) Például meg lehet határozni egy<cachePartialPathRegex> amely csak megfelel a jelenlegi évnek vagy a jelenlegi hónapnak. Ezek a regexek nagyon trükkösek, hogy meghatározzák, mert az összes részleges és teljes úti neveknek meg kell felelniük a<cachePartialPathRegex> és mert<A cachePartialPathRegexnek a távoli URL-ekkel és a helyi könyvtárakkal kell dolgoznia. Az igazi élet példa:
-
<cacheFromUrl>https://data.nodc.noaa.gov/ghrsst/GDS2/L4/GLOB/JPL/MUR/v4.1/</cacheFromUrl>
\\>!-- \\[2020-10-21 This server is no longer reliably available.\\] For most types of remote directories, omit the filename (e.g., contents.html for Hyrax). -->
<fileDir>/u00/satellite/MUR41/</fileDir>
<fileNameRegex>\\*\\.nc</fileNameRegex>
<recursive>true</recursive>
<pathRegex>.\\*</pathRegex>
<cachePartialPathRegex>.\\*/v4\\.1/(|2018/(|01./))</cachePartialPathRegex>
A fentebbi minta fájlokat tartalmaz az év alapján (pl. 2018) az év napja (pl. 001, 002, 365 vagy 366) ... Vegyük észre, hogy a<cachePartialPathRegex> kezdődik .\*, akkor van egy konkrét aláírás, amely gyakori a távoli URL-ek és a helyi könyvtárak, például /v4.1/ Ezután van egy sor fészkes rögzítő csoport, ahol az első lehetőség semmi és a második lehetőség egy adott érték.
A fenti példának csak 2018 második 10 napján kell megfelelnie a könyvtáraknak, pl.
https://data.nodc.noaa.gov/ghrsst/GDS2/L4/GLOB/JPL/MUR/v4.1/2018/010/ \[2020-10-21 Ez a szerver már nem megbízhatóan elérhető.\]
nap 011, 012, ..., 019.
(Lásd eztregex dokumentációésregex bemutató...)
Ha segítségre van szüksége<cachePartialPathRegex>, kérlek e-mailt<cacheFromUrl> Chrishez. John at noaa.gov.
- Közös megközelítés: Ha használni akar<cachePartialPathRegex>, ne használja eredetileg, mert akarjaERDDAP™Először letölteni az összes fájlt. UtánaERDDAP™letöltötte az összes fájlt, hozzáadta az adatkészlet csomójátdatasets.xml...
Több ezer fájl
Ha az adatkészlet több ezer fájlt tartalmaz,ERDDAP™lassú lehet reagálni az adatkészletből származó adatok kérésére. Itt két kérdés van:
- A fájlok száma könyvtáronként. Internally,ERDDAP™ugyanazon sebességgel működik, függetlenül attól, hogy az n fájlok egy könyvtárban vannak-e, vagy több könyvtárban vannak-e szétszórva. De van egy probléma: Minél több fájl egy adott könyvtárban, annál lassabb az operációs rendszer a fájlok listájának visszatérése a könyvtárban (Fájl) aERDDAP... A válaszidő lehet O (n log n) ... Nehéz megmondani, hogy az egyik könyvtárban hány fájl túl sok, de 10.000 valószínűleg túl sok. Tehát, ha a beállítás sok fájlt generál, itt lehet egy ajánlás: tegye be a fájlokat logikailag szervezett alirányítókba (pl. állomás vagy állomás/év) ...
Egy másik ok az aláírók használatára: ha egy felhasználó használni akarERDDAPA"files"rendszer, amely megtalálja a X állomás legrégebbi fájljának nevét, gyorsabb és hatékonyabb, ha a fájlok állomáson / év alatti előirányzatokban vannak, mert sokkal kevesebb információt kell átadni.
- A fájlok teljes száma.
mesés adatkészletek esetében,ERDDAP™nyomon követi az értékek tartományát minden egyes fájlban. Amikor egy felhasználó kérést tesz,ERDDAP™el kell olvasnia az összes adatot az összes olyan fájlból, amely adatot tartalmazhat a felhasználó kérésére. Ha a felhasználó korlátozott ideig kéri az adatokat (pl. egy nap vagy egy hónap) AztánERDDAP™Nem kell túl sok fájlt nyitnia az adatkészletében. De vannak szélsőséges esetek, ahol szinte minden fájlnak megfelelnie kell az adatoknak (pl. amikor a vízTemperature=13.2C) ... Mivel eltartERDDAP™egy kis idő (részben a keresési idő a HDD-n, részben az idő, hogy elolvassa a fájl fejlécét) Csak egy adott fájl megnyitása (Sőt, ha sok fájl van a könyvtárban) Jelentős időbüntetés van, ha a fájlok teljes számaERDDAP™nyitottnak kell lennie, nagyon nagy. Még az 1000 fájl megnyitása is jelentős időt vesz igénybe. Tehát vannak előnyök, hogy rendszeresen konszolidálja a napi fájlokat nagyobb darabokra (pl. 1 állomás 1 évig) ... Megértem, hogy nem akarod ezt különböző okokból megtenni, de sokkal gyorsabb válaszokhoz vezet. szélsőséges esetekben (pl. egy GTSPP adatkészlettel foglalkozom, amely ~35 millió forrásfájltal rendelkezik) Számos forrásfájlból származó adatok kiszolgálása gyakorlati, mertERDDAP"Az egyszerű kérdésekre adott válasz órákat vehet igénybe, és tonna memóriát használhat. A forrásfájlok kisebb számba történő konszolidálása (a GTSPP-hez, most 720-as, havonta 2) ,ERDDAP™ésszerűen gyorsan reagálhat. LásdFiles milliói
N.B. Solid State Drives nagyszerű! A leggyorsabb, legkönnyebb, legolcsóbb módja annak, hogy segítsenERDDAP™ügyeljen egy hatalmas számú (kicsi) A fájlok szilárd állami meghajtót használnak. LásdA Solid State Drives nagyszerű!
Files milliói
-
Néhány adatkészletnek több millió forrásfájlja van.ERDDAP™képes kezelni ezt, de vegyes eredményekkel.
- Olyan kérelmek esetében, amelyek csak a változókat tartalmazzák [a]<subsetVariables>>>>>> (#subsetvariables) ,ERDDAP™az összes szükséges információ már kivont az adatokból és tárolt egy fájlban, így nagyon, nagyon gyorsan reagálhat.
- egyéb kérések esetén,ERDDAP™szkennelheti az adatkészletetcached fájl információés kitalálja, hogy csak néhány fájlnak lehetnek olyan adatok, amelyek relevánsak a kérésre, és így gyorsan reagálnak.
- De más kérések esetén (Például a vízTemperature=18 fok\_C) ha bármilyen fájlnak releváns adatai lehetnek,ERDDAP™számos fájlt kell megnyitnia, hogy megnézze, hogy minden fájlnak van-e olyan adatai, amelyek relevánsak a kérelemhez. A fájlokat sorozatosan nyitották meg. Bármely operációs rendszer és bármilyen fájlrendszer (más, mint a szilárd állami meghajtók) Ez sokáig tart (ígyERDDAP™Lassan reagál) és valóban összekapcsolja a fájlrendszert (ígyERDDAP™lassan reagál más kérésekre) ...
Szerencsére van megoldás.
- Állítsa be az adatkészletet egy nem nyilvánosERDDAP™ (Személyes számítógépe?) ...
- Hozzon létre és futtassa a forgatókönyvet, amely sorozatot kér.ncCF fájlok, mindegyik nagy darab adatkészlet, általában egy idő (például az összes adat egy adott hónapra) ... Válassza ki az időt, hogy az összes kapott fájl kevesebb, mint 2GB (de remélhetőleg nagyobb, mint 1 GB) ... Ha az adatkészlet közeli idejű adataival rendelkezik, futtassa a forgatókönyvet, hogy regenerálja a fájlt a jelenlegi időszakra (pl. ez a hónap) gyakran (10 percenként? Minden órában?) ... KérésekERDDAP™Mert.ncA CF fájlok létrehoznak egyNetCDFv3.ncfájl, amely használja aCF Discrete Sampling Geometries (DSG) Contiguous Ragged Array adatstruktúrák).
- Állj fel egyEDDTableFromNcCFFilesadatkészlet a nyilvánosság számáraERDDAP™amely adatokat kap.nc (CF) fájlok.ERDDAP™nagyon gyorsan kivonhatja az adatokat ezekből a fájlokból. És mivel most több tucat vagy száz (milliók helyett) fájlok, még akkor is, haERDDAP™ki kell nyitnia az összes fájlt, ezt gyorsan megteheti.
Igen, ez a rendszer némi időt és erőfeszítést igényel, de nagyon jól működik. A legtöbb adatkérés 100-szor gyorsabban kezelhető, mint korábban. \[Bob tudta, hogy ez egy lehetőség, de Kevin O'Brien volt, aki először ezt tette, és megmutatta, hogy jól működik. Most, A Bob ezt a GTSPP adatkészletre használja, amelynek mintegy 18 millió forrásfájlja van, és amelyekERDDAP™most körülbelül 500-on keresztül szolgál.nc (CF) fájlok.\]
N.B. Solid State Drives nagyszerű! A leggyorsabb, legkönnyebb, legolcsóbb módja annak, hogy segítsenERDDAP™ügyeljen egy hatalmas számú (kicsi) A fájlok szilárd állami meghajtót használnak. LásdA Solid State Drives nagyszerű!
Hatalmas fájlok
- Egyetlen hatalmas adatfájl (nevezetesen hatalmas ASCII adatfájlok) lehet okozni egy OutOfMemoryError. Ha ez a probléma, nyilvánvalónak kell lennie, mertERDDAP™nem fogja betölteni az adatkészletet. A megoldás, ha megvalósítható, a fájlt több fájlba osztja. Ideális esetben a fájlt logikai darabokra oszthatja. Például, ha a fájl 20 hónapos adatértékkel rendelkezik, 20 fájlra osztja, mindegyik 1 hónapos adatértékkel. De vannak előnyök még akkor is, ha a fő fájlt önkényesen osztják fel. Ennek a megközelítésnek több előnye van: a) Ez csökkenti az adatfájlok 1/20. elolvasásához szükséges memóriát, mert csak egy fájl olvasható egy időben. b) Gyakran,ERDDAP™sokkal gyorsabban kezelheti a kérelmeket, mert csak egy vagy néhány fájlban kell megnéznie, hogy megtalálja az adatokat egy adott kérésre. c) Ha az adatgyűjtés folyamatban van, akkor a meglévő 20 fájl változatlan maradhat, és csak egy, kis, új fájlt kell módosítania, hogy hozzáadja a következő hónapi adatértéket az adatkészlethez.
FTP hiba / tanács
- Ha FTP új adatfájlokat készítERDDAP™szerver,ERDDAP™fut, van esély arra, hogyERDDAP™az FTP folyamat során újratölti az adatkészletet. Gyakrabban fordul elő, mint gondolnád! Ha ez megtörténik, a fájl úgy tűnik, hogy érvényes (érvényes neve) , de a fájl nem érvényes. HaERDDAP™megpróbálja elolvasni az adatokat ebből az érvénytelen fájlból, az ebből eredő hiba okozza a fájlt az érvénytelen fájlok táblázatához. Ez nem jó. A probléma elkerülése érdekében használjon ideiglenes fájlnévet, amikor az FTP a fájlt, például az ABC2005.nc\_TEMP . Ezután a fájlNameRegex teszt (lásd alább) jelzi, hogy ez nem releváns fájl. Miután az FTP folyamat befejeződött, nevezze át a fájlt a helyes névre. A megnevezési folyamat azt fogja okozni, hogy a fájl egy pillanat alatt releváns legyen.
File Name Extracts
\[Ez a funkció DEPRECATED. Kérjük, használja\\\*fileName pseudosourceNameEhelyett.\]
Az EDDTableFromFiles rendszerrel rendelkezik egy String kivonására minden fájlnévből, és arra használja, hogy a pseudo adat változó legyen. Jelenleg nincs rendszer arra, hogy ezeket a Hangokat dátumként/időként értelmezzük. Számos XML-címke van, hogy létrehozza ezt a rendszert. Ha nincs szüksége részre vagy egész rendszerre, csak ne határozza meg ezeket a címkéket, vagy használja a "" értékeket.
- PreExtractRegex egyrendszeres kifejezés (tutorial) használt szöveg azonosítására, amelyet eltávolítanak a fájlnév kezdetétől. A eltávolítás csak akkor fordul elő, ha a regex egyezik. Ez általában a "^"-val kezdődik, hogy megfeleljen a fájlnév kezdetének.
- Hozzászólás ExtractRegex egy rendszeres kifejezés, amelyet a szöveg eltávolítására használnak a fájlnév végétől. A eltávolítás csak akkor fordul elő, ha a regex egyezik. Ez általában a "$"-vel ér véget, hogy megfeleljen a fájlnév végének.
- KivonatRegex Ha jelen van, ezt a rendszeres kifejezést a preExtractRegex és a postExtractRegex után használják, hogy azonosítsák a karakterláncot, amelyet kivonnak a fájlnévből (Például,stationID) ... Ha a regex nem egyezik, az egész fájlnévet használják (mínusz preExtract és poszt Kivonat) ... Használja a ".\*"-t, hogy megfeleljen az egész fájlnévnek, amely a PreExtractRegex és a PostExtractRegex után marad.
- oszlop A NameForExtract az adatoszlop forrás neve a kivont Strings számára. AdataVariableezzelsourceNamebe kell tartani adataVariableS lista (bármilyen adattípussal, de általában String) ...
Például, ha egy adatkészlet olyan nevekkel rendelkezik, mint a XYZAble.ncXYZBaker.ncXYZCharlie.nc... és új változót akarsz létrehozni (stationID) ha minden fájl olvasható, amely állomása ID értékek (Able, Baker, Charlie, ...) kivont a fájlnév, lehet használni ezeket a címkéket:
- <PreExtractRegex ^XYZ</preExtractRegex> A kezdeti ^ egy rendszeres kifejezés speciális karakter, amely erőkERDDAP™keresni XYZ elején a fájlnév. Ez okozza a XYZ-t, ha a fájlnév elején találják, eltávolítható (Például a XYZAble fájlnév.ncAble lett.nc) ...
- <posztExtractRegex> \.nc$ € $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $</postExtractRegex> A végén egy rendszeres kifejezés speciális karakter, amely erőkERDDAP™keresni.nca fájlnév végén. Mivel . egy rendszeres kifejezés speciális karakter (amely megfelel minden karakternek) , ez kódolt, mint \. itt (mert a 2E a hexadecimális karakterszám egy időszakra) ... Ez okozza.nc, ha a fájlnév végén található, eltávolítható (Például a részleges fájlnév Able.ncAble lett) ...
- <ExtractRegex>.\</extraRegex> A .\ rendszeres kifejezés megfelel az összes fennmaradó karakternek (Például a részleges fájlnév Able az első fájl kivonatává válik) ...
- <oszlopNameForExtract>stationID</columnNameForExtract> Ez azt mondjaERDDAP™létrehozni egy új forrás oszlop úgynevezettstationIDminden fájl olvasásakor. Minden adatsor egy adott fájlra lesz kivonva a fájlnévből (például, Able) mint érték astationIDoszlop.
A legtöbb esetben számos értéke van ezeknek a kivonat címkéknek, amelyek ugyanazokat az eredményeket hozzák - a rendszeres kifejezések nagyon rugalmasak. De néhány esetben csak egy módja van a kívánt eredmények elérésére.
PseudosourceNames
Minden változó minden adatkészletbenERDDAP™[[Ki]]]<sourceName>>>>>> (#sourcename) amely meghatározza a forrás neve változó. Az EDDTableFromFiles néhány pszeudót támogatsourceNamekivonat értéket más helyről (pl. a fájl neve vagy a globális tulajdonság értéke) és támogassa ezt az értéket, hogy állandó értékek oszlopa legyen az adott részes adatok számára (pl. a fájl adatainak táblázata) ... Ezen változók esetében meg kell határoznia a változó adattípusát [a változó adattípusát] keresztül.<adatType>] (#datatype) Tag. Ha a kivont információ egy dátumTime sztring, megadja a formátumot a dátumTime sztring aegység tulajdonság... PseudosourceNameopciók:
globális:sourceNames
Egy globális metaadat tulajdonsága minden forrásadat fájl lehet előmozdítani, hogy egy oszlop az adatok. Ha egy változó<sourceName> rendelkezik formátummal
<sourceName>global:*attributeName*</sourceName>
akkor, amikorERDDAP™az adatokat egy fájlból olvassa el,ERDDAP™globális jelleget fog keresni ebből a névből (Például PI) és hozzon létre egy oszlopot, amely tele van a tulajdonság értékével. Ez akkor hasznos, ha a tulajdonságnak különböző értékei vannak a különböző forrásfájlokban, mert máskülönben a felhasználók csak az egyik értéket látnák az egész adatkészlet számára. Például,
<sourceName>global:PI</sourceName>
Amikor egy tulajdonságot hirdet, hogy adatok legyenek,ERDDAP™eltávolítja a megfelelő tulajdonságot. Ez azért helyénvaló, mert az érték feltehetően különbözik minden fájlban; mivel az összesített adatkészletbenERDDAP™csak egy értéke lesz. Ha akarja, hozzáadhat egy új értéket az egész adatkészlet tulajdonságához azáltal, hogy hozzáad<att name=" tulajdonság név ">>> új Érték </att> az adatkészlet globális részére [<addAttributes>>>>>> (#addattributes) ... A globális tulajdonságokért, amelyekERDDAP™megköveteli például az intézménytől, hogy új értéket adjon hozzá a tulajdonsághoz.
változó:sourceNames
A változó metaadata tulajdonsága minden fájlban elősegíthető az adatok oszlopának. Ha egy változó<sourceName\> a formátum
<sourceName>variable:*variableName*:*attributeName*<sourceName>
akkor, amikorERDDAP™az adatokat egy fájlból olvassa el,ERDDAP™keresni fogja a meghatározott tulajdonságot (Például ID) a meghatározott változó (például instrumentum) és hozzon létre egy oszlopot, amely tele van a tulajdonság értékével. A szülői változó (például instrumentum) nem kell az egyikdataVariableaz adatkészlet meghatározásában foglaltERDDAP... Például,
<sourceName>variable:instrument:ID</sourceName>
Ez akkor hasznos, ha a tulajdonságnak különböző értékei vannak a különböző forrásfájlokban, mert máskülönben a felhasználók csak az egyik értéket látnák az egész adatkészlet számára.
Amikor egy tulajdonságot hirdet, hogy adatok legyenek,ERDDAP™eltávolítja a megfelelő tulajdonságot. Ez azért helyénvaló, mert az érték feltehetően különbözik minden fájlban; mivel az összesített adatkészletbenERDDAP™csak egy értéke lesz. Ha akarja, hozzáadhat egy új értéket az egész adatkészlet tulajdonságához azáltal, hogy hozzáad<att name=" tulajdonság név ">>> új Érték </att> a változó [<addAttributes>>>>>> (#addattributes) ... A tulajdonságokért, hogyERDDAP™például megköveteliioos\_category (a beállítástól függően) Hozzá kell adni egy új értéket a tulajdonsághoz.
fájlNamesourceNames
Kivonhatja a fájl fájlja részét, és elősegítheti, hogy az adatok oszlopa legyen. A Pseudo formátuma [<sourceName>>>>>> (#sourcename) az
<sourceName>\\*\\*\\*fileName,*regex*,*captureGroupNumber*</sourceName>
Például,
<sourceName>\\*\\*\\*fileName,A(\\d{12})\\.slcpV1.nc,1</sourceName>
Amikor az EDDTableFromFiles egy fájlból olvassa el az adatokat, megbizonyosodik arról, hogy a fájlName (Például az A201807041442.slcpV1.nc) megfelel a meghatározott rendszeres kifejezésnek ("regex") és kivonja a megadott (Ebben az esetben az első) rögzítő csoport (amely a parentheses által körülvéve) Például: "201807041442". (Lásd eztregex dokumentációésregex bemutató...) A regex lehet meghatározni, mint egy húr, vagy anélkül, hogy környező idézetek. Ha a regexet a környező idézetekkel húrként határozzák meg, a húrnak kell lennieJSON stílusú sztring (speciális karakterekkel elmenekült \ karakterekkel) ... A rögzítő csoport száma általában 1 (az első rögzítő csoport) De lehetnek számok.
dalszövegsourceNames
Kivonhatja a fájl teljes útját név (/directories/fileName.ext) és előmozdítja ezt az adatoszlopnak. A Pseudo formátuma [<sourceName>>>>>> (#sourcename) az
<sourceName>\\*\\*\\*pathName,*regex*,*captureGroupNumber*<sourceName>
Például,
<sourceName>\\*\\*\\*pathName,/data/myDatasetID/(\\[A-Z0-9\\]\\*)/B(\\d{12}).nc,1</sourceName>
Amikor az EDDTableFromFiles egy fájlból olvassa el az adatokat, megbizonyosodik arról, hogy a teljes útvonal Name (Például /data/myDatasetID/BAY17/B201807041442.nc... Ehhez a teszthez a könyvtári elválasztó mindig lesz'/'Sohasem » "...") megfelel a meghatározott rendszeres kifejezésnek ("regex") és kivonja a megadott (Ebben az esetben az első) rögzítő csoport (amely a parentheses által körülvéve) Például: "BAY17". (Lásd eztregex dokumentációésregex bemutató...) A regex lehet meghatározni, mint egy húr, vagy anélkül, hogy környező idézetek. Ha a regexet a környező idézetekkel húrként határozzák meg, akkor a húrnak kell lennieJSON stílusú sztring (speciális karakterekkel elmenekült \ karakterekkel) ... A rögzítő csoport száma általában 1 (az első rögzítő csoport) De lehetnek számok.
"0 fájl" hibaüzenet
- Ha futszGenerateDatasetsXmlvagyDasDdsvagy ha megpróbálsz betölteni egy EDDTableF-et... Files adatkészletERDDAP™, és kap egy "0 fájl" hibaüzenetet, amely jelzi, hogyERDDAP™talált 0 megfelelő fájlokat a könyvtárban (ha úgy gondolja, hogy van egyező fájlok ebben a könyvtárban) :
- Ellenőrizze, hogy a fájlok valóban ebben a könyvtárban vannak.
- Ellenőrizze a könyvtár neve varázslatát.
- Ellenőrizze a fájlNameRegex. Valójában nagyon könnyű hibákat hibáztatni a regexekkel. Tesztcélok esetén próbálja meg a regex .\*-t, amely minden fájlnévhez illeszkedik. (Lásd eztregex dokumentációésregex bemutató...)
- Ellenőrizze, hogy a felhasználó, aki fut a program (pl. felhasználó=tomcat (?) Tomcat/ERDDAP) "olvassa" az engedélyt ezekre a fájlokra.
- Egyes operációs rendszerekben (például SELinux) és a rendszerbeállításoktól függően a felhasználónak, aki futtatja a programot, „olvassa” a könyvtárak egész láncolatát, amely a fájlokat tartalmazó könyvtárhoz vezet.
szabványosítás Amit
- Ha az EDDTableFromFiles bármely alosztálya egy sor forrásfájlot tartalmaz, egy adott változó esetében az összes forrásfájlnak azonos tulajdonságai vannak több tulajdonság számára:scale\_factor,add\_offset, \_Unsigned,missing\_value, \_FillValue és egység). Gondolj bele: ha egy fájl WindSpeed units=knots és egy másik szélSpeed units=m/s, akkor a két fájl adatértékeit nem kell ugyanabban az aggregált adatkészletben tartalmazni. Tehát, amikor az EDDTableFromFiles először létrehozza az adatkészletet, elolvassa az egyik fájltól származó tulajdonságértékeket, akkor elutasítja az összes olyan fájlt, amely különböző értékekkel rendelkezik az említett fontos tulajdonságok számára. A legtöbb fájlgyűjtemény esetében ez nem probléma, mert az összes változó tulajdonságai következetesek. Azonban más fájlgyűjtések esetében ez 1%, 10%, 50%, 90% vagy akár 99% -os fájlhoz vezethet, amelyeket "rossz" fájlként utasítanak el. Ez baj.
Az EDDTableFrom fájloknak van egy rendszere, amely kezeli ezt a problémát: szabványosítani Mi. A szabványosítás A beállítás azt mondja, hogy az EDDTableFromFiles szabványosítja a fájlokat, amint olvassa őket, mielőtt az EDDTableFromFiles megnézi a tulajdonságokat, hogy lássa, következetes-e.
A flip oldal: ha az adatkészlet nem rendelkezik ezzel a problémával, ne használjon szabványosítást Mi. szabványosítás Milyen potenciális kockázatokkal jár (az alábbiakban tárgyalt) és hiányosságok. Tehát, ha nem igazán kell a szabványosítás jellemzői Ami, nem kell szembenéznie a potenciális kockázatokkal és a hatékonysággal. A legnagyobb hatékonyság: ha különböző szabványosítás Milyen lehetőségeket használnak egy adatkészlet, azt jelenti, hogy a forrásfájlok tárolják az adatokat jelentősen eltérő módon (pl. különbözőscale\_factorésadd\_offsetvagy időhúrokkal különböző formátumokat használ) ... Így egy adott korlátozott felhasználói kérelem esetén nincs mód arra, hogyERDDAP™egyetlen forrásszintű korlátozás létrehozása, amely minden forrásfájlra alkalmazható. SzóvalERDDAP™csak magasabb szinten alkalmazhatja az érintett korlátozásokat. SzóvalERDDAP™el kell olvasnia az adatokat több fájlból, mielőtt a magasabb, célszintű korlátozásokat alkalmazná. Ezért kéri az olyan adatkészleteket, amelyek szabványosítással rendelkeznek Mi tart tovább feldolgozni.
Ennek a rendszernek a használatához meg kell határoznia
<standardizeWhat>*standardizeWhat*</standardizeWhat>
adatasets.xmlaz EDDTableFrom... Files adatkészlet(azonnal<adatkészlet> címke).
A szabványosítás Amit az érték meghatározza, hogy mely változásokat EDDTableFromFiles kell próbálni alkalmazni. A változások a következő kombináció összege:
- Unpack
Ez sok közös és biztonságos műveletet tesz a számszerű oszlopok szabványosítására a fájlokban:
- Hascale\_factorvagyadd\_offsetattribútumok jelen vannak, távolítsa el őket, és alkalmazza őket az adatértékek kicsomagolására.
- Unpack csomagolt tulajdonságok (pl. tényleges\_min, tényleges\_max,actual\_range,data\_min,data\_max, adat\_range,valid\_min,valid\_max,valid\_range) , ha jelen van, ha a változót csomagolták, és ha az attribútum értékeit csomagolták (ez trükkös, de ésszerűen megbízható) ...
- Ha \_FillValue és/vagymissing\_valuejelen vannak, átalakítják ezeket az adatértékeketERDDAP"standard" hiányzó értékek: MAX\_VALUE az integrált típusokhoz (pl.: 127 bytes, 32 767 rövid és 2,147,483,647 ints, 922337203685478 Hosszúság) NaN a duplák és a úszók számára.
- Távolítsa el a régi \_FillValue és/vagymissing\_valuetulajdonságok (ha valaki) , és cserélje őket csak \_FillValue=\[aERDDAP™standard hiányzó érték\]...
- Szabványosítsa a numerikus időket Ha egy numerikus oszlop rendelkezik CF-stílusú numerikus időegységekkel ("..." IdőEgységek óta alapTim ", pl. "napok 1900-01-01 óta") Ez megtéríti a dátumot Időértékek be"seconds since 1970-01-01T00:00:00Z"értékek és változások az egységek tulajdonsága, hogy jelezze. Ha ezt kiválasztják, és van esély arra, hogy ez a változóscale\_factorvagyadd\_offset# 1 MUST is választható.
- Apply Stringmissing\_value
Ha egy sztring oszlop \_FillValue és/vagymissing\_valueattribútumok, ez átalakítja ezeket az értékeket "", és eltávolítja a tulajdonságokat. - Keressen Numericmissing\_value
Ha egy numerikus oszlopnak nincs \_FillValue vagymissing\_valueattribútumok, ez megpróbálja azonosítani a nem meghatározott numerikusmissing\_value (-999, 9999, 1e37f) és átformálja az eseteket a "szabványos" értékekre (MAX\_VALUE az integrált típusokhoz, és NAN a dupla és úszókhoz) ... Ez az opció kockázattal jár: ha a legnagyobb vagy legkisebb érvényes adatérték hiányzó értéknek tűnik (pl. 999) Ezután ezek az érvényes adatértékek megtérülnek a hiányzó értékekre (pl. NaN) ... - Változtasd meg a "N/A"-t " Minden sztring oszlopban több sztringet konvertáltak, amelyek általában arra használják, hogy jelezzék a hiányzó String értéket ". Jelenleg ez "", "...", "-", "?", "??", "N/A", "na", "nem alkalmazható", "null", "nem", "nem", "nem", "nem ismert", "különbözetlen". A sztringkeresés eset-érzékeny, és a húrok után alkalmazott trim'd. "és" és "más" kifejezetten nem szerepel a listán. Ez az opció kockázattal jár: Hangsúlyozza, hogy érvényes értékeknek tekinthető, ""-re váltható.
- Szabványosítani ISO 8601 DateTimes Minden egyes sztring oszlopban próbálja meg átalakítani a nem pusztán-numerikus String dátumotTimes („Jan 2, 2018”) ISO 8601 String dátumTimes ("2018-01-02") ... Megjegyzés hogy az oszlop összes adatértékének ugyanazt a formátumot kell használnia, különben ez az opció nem változtat egy adott oszlopban. Ez az opció kockázattal jár: Ha van egy oszlop a szigorú értékekkel, amelyek csak úgy néznek ki, mint egy közös dátum Időformátum, átalakítják az ISO 8601 String dátumTimes.
- Kompakt dátumok szabványosítása ISO 8601 dátumhoz Minden egyes String vagy integráló típusú oszlop esetében próbálja meg a tisztán-numerikus String dátumot (pl.: „20180102”) ISO 8601 String dátumTimes ("2018-01-02") ... Megjegyzés hogy az oszlop összes adatértékének ugyanazt a formátumot kell használnia, különben ez az opció nem változtat egy adott oszlopban. Ez az opció kockázattal jár: Ha van egy oszlop olyan értékekkel, amelyek nem kompakt dátum Az idők, de úgy néznek ki, mint a kompakt dátumTimes, átalakítják az ISO 8601 String dátumTimes.
- Szabványosítsa az egységek Ez megpróbálja szabványosítani az egyes változó egységeket. Például: "mérő másodpercenként", "mérő/második","m.s^-1","m s-1""m.s-1" minden "m.s-1-re" fog átalakulni. Ez nem változtatja meg az adatértékeket. Ez jól működik érvényesnekUDUNITSegység húrok, de lehet problémák érvénytelen vagy összetett húrok. A problémákkal foglalkozhat, specifikus From-to pairs in<szabványosításUdunits> benneERDDAPA \[Tomcat\]/webapps/erddap/WEB-INF/classes/gov/noa/pfel/erddap/util/messages.xml fájl. Kérjük, küldjön e-mailt bármilyen változást, amit Chris-nek teszel. John at noaa.gov, így beépülhetnek az alapértelmezett üzenetekbe.xml. Ez az opció kockázattal jár: Ez összetett vagy érvénytelen egységeket ölelhet fel; azonban a fent leírt munkakört használhatja a problémák megkerülésére, ha előfordulnak.
A szabványosítás alapértelmezett értéke Mi a 0, ami nem csinál semmit.
Ha/ha megváltoztatod a szabványosítás értékét Mi, a következő alkalommal, amikor az adatkészletet újratöltik,ERDDAP™újraindítja az összes adatfájlot az adatkészlethez, hogy újraépítse a mini-adatbázist az egyes fájlokkal kapcsolatos információkkal. Ha az adatkészlet sok fájlt tartalmaz, ez hosszú időt vesz igénybe.
Megjegyzések:
- Egy trükkös dolog - A szabványosítás Milyen beállítást használnak a forrásfájl összes oszlopához. Így például a #2048 használata sikeresen konvertálhat egy kompakt String dátumotTimes-t az ISO 8601 String dátumTimes-be, de tévesen átalakíthat egy oszlopot olyan Strings-szal, amely csak úgy néz ki, mint a kompakt dátumTimes.
- datasets.xmlés a GenerateDatasets Xml -
Különösen trükkös, hogy a beállítások helyesek legyenekdatasets.xmlhogy az adatkészleted úgy működjön, ahogyan akarod. A legjobb megközelítés (mint mindig) az:
- HasználatGenerateDatasetsXmlés meghatározza a szabványosítás értékét Mit szeretne használni.
- HasználatDasDdsannak biztosítása, hogy az adatkészlet helyesen terheljen, és tükrözze a szabványosítást Milyen beállítás, amit megadott.
- Tesztelje meg az adatkészletet kézzel, haERDDAP™annak biztosítása érdekében, hogy az érintett változók a várt módon működjenek.
- Kockázat - A #256 és a fenti lehetőségek kockázatosabbak, azaz nagyobb esély van arra, hogyERDDAP™változtatni fog, amit nem szabad tenni. Például a #2048 opció véletlenül változhat az állomás ID-csíkokkal, amelyek mind csak az ISO 8601 "kompakt" dátumok megjelenésével történnek (pl. 20180102) ISO 8601"extended"dátumok ("2018-01-02") ...
- Lassú egy változás után - Mivel a szabványosítás értéke Milyen változtatja meg az EDDTableFromFiles adatait, ha módosítja a szabványosítást Milyen beállítás, az EDDTableFromFiles eldobja az összes csípős információt minden fájlról (amely magában foglalja a bányát és a maxot az egyes fájlokban változó adatokhoz) és újraolvassa az egyes adatfájlokat. Ha egy adatkészlet nagyszámú fájlt tartalmaz, ez nagyon időigényes lehet, ezért hosszú időt vesz igénybe az adatkészlet újratöltéséhez.ERDDAP™újratölti azt, miután meghozza a változást.
- Heurisztika - Opciók #256 és fent használja a heurisztika, hogy a változásokat. Ha olyan helyzetben találkozol, ahol a heurisztika rossz döntést hoz, kérjük, írja le a problémát Chrisnek. John at noaa. Gov így javíthatjuk a heurisztikát.
- alternatívák - Ha az egyik szabványosítás Milyen lehetőségeket nem old meg egy adott adatkészlet számára, akkor képes lehet megoldani a problémát azáltal, hogy egy.ncml fájlpárhuzamosan minden adatfájl és meghatározza a dolgok változásait a fájlokban, hogy a fájlok következetesek legyenek. Ezután mondja el az EDDTableF-et... Files adatkészlet aggregálásához.ncml fájlok.
Vagy használjNCOa fájlok tényleges megváltoztatása, hogy a fájlok következetesek legyenek.
Külön oszlopok évre, hónapra, dátumra, órára, percre, másodpercre
Ez meglehetősen gyakori a mesés adatfájlok, hogy külön oszlopokat évente, hónap, dátum, óra, perc, második. KorábbanERDDAP™v2.10, az egyetlen megoldás az adatfájl szerkesztése volt, hogy egyesítse ezeket az oszlopokat egy egységes időoszlopba. EzzelERDDAP™2.10+, használhatja a [[szerkesztés]]<sourceName>= kifejezés <sourceName>>>>>> (#sourcename) Mondd elERDDAP™Hogyan lehet kombinálni a forrás oszlopokat, hogy egységes idő oszlop, így már nem kell szerkeszteni a forrás fájlt.
<skipHeaderToRegex & gt;
- [[szerkesztés]]<skipHeaderToRegex> (#skipheadertoregex) -
VÁLASZTÓ. (EDDTableFromAsciiFiles és EDDTableFromColumnarAsciiFiles adatkészletek csak.)
Amikor az EDDTableFromAsciiFiles egy adatfájlot olvas, figyelmen kívül hagyja az összes sort, és beleértve azt a vonalat, amely megfelel a rendszeres kifejezésnek. Az alapértelmezett "", amely nem használja ezt a lehetőséget. Egy példa
<skipHeaderToRegex>\\\*\\\*\\\* END OF HEADER.\\*<skipHeaderToRegex>
amely figyelmen kívül hagyja az összes sort, és beleértve azt a vonalat, amely a "\*\** END OF HEADER.
Ha ezt a címkét használja,<oszlopNamesRow> és<Az elsőDataRow> úgy működik, mintha a fejléc eltávolításra került volna, mielőtt a fájl olvasható. Például oszlopNamesRow=0-t használnál, ha az oszlop nevek a fejléc után közvetlenül a sorban vannak.
Ha szeretné használni a generációt Adatkészletek Xml egy adatkészlettel, amely szüksége van erre a címkére:
- Készítsen egy új, ideiglenes, minta fájlt egy meglévő fájl másolásával és eltávolítva a fejléct.
- Run generáció Adatkészletek Xml és megadja a minta fájlt.
- Kézzel add hozzá a<skipHeaderToRegex> címke adatasets.xmlcunk.
- Törölje az ideiglenes, minta fájlt.
- Használja az adatkészletetERDDAP...
<skipLinesRegex & gt;
VÁLASZTÓ. (EDDTableFromAsciiFiles és EDDTableFromColumnarAsciiFiles adatkészletek csak.)
Amikor az EDDTableFromAsciiFiles egy adatfájlot olvas, figyelmen kívül hagyja az összes sort, amely megfelel ennek a rendszeres kifejezésnek. Az alapértelmezett "", amely nem használja ezt a lehetőséget. Egy példa
<skipLinesRegex>#.\\*<skipLinesRegex>
amely figyelmen kívül hagyja az összes olyan vonalat, amely "#"-vel kezdődik.
Ha ezt a címkét használja,<oszlopNamesRow> és<Az elsőDataRow> úgy működik, mintha az összes megfelelő sort eltávolították volna, mielőtt a fájl olvasható. Például használná az oszlopNamesRow=0-t, még akkor is, ha több sor kezdődne, például „#” a fájl elején.
EDDTableFromFiles csontváz XML
<dataset type="EDDTableFrom...Files" datasetID\="..." active\="..." >
<nDimensions>...</nDimensions> <!-- This was used prior to ERDDAP™
version 1.30, but is now ignored. -->
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1. For
EDDTableFromFiles subclasses, this uses Java's WatchDirectory system
to notice new/deleted/changed files quickly and efficiently. -->
<standardizeWhat>...</standardizeWhat> <!-- 0 or 1 -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<addVariablesWhere>...</addVariablesWhere> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<specialMode>mode</specialMode> <-- This rarely-used, OPTIONAL tag
can be used with EDDTableFromThreddsFiles to specify that special,
hard-coded rules should be used to determine which files should
be downloaded from the server. Currently, the only valid mode
is SAMOS which is used with datasets from
https://tds.coaps.fsu.edu/thredds/catalog/samos to download only the
files with the last version number. -->
<sourceUrl>...</sourceUrl> <-- For subclasses like
EDDTableFromHyraxFiles and EDDTableFromThreddsFiles, this is where
you specify the base URL for the files on the remote server.
For subclasses that get data from local files, ERDDAP™ doesn't use
this information to get the data, but does display the
information to users. So I usually use "(local files)". -->
<fileDir>...</fileDir> <-- The directory (absolute) with the data
files. -->
<recursive>true|false</recursive> <!-- 0 or 1. Indicates if
subdirectories of fileDir have data files, too. -->
<pathRegex>...</pathRegex> <!-- 0 or 1. Only directory names which
match the pathRegex (default=".\") will be accepted. -->
<fileNameRegex>...</fileNameRegex> <-- 0 or 1. A regular expression
(tutorial) describing valid data file names, for example,
".\\.nc" for all .nc files. -->
<accessibleViaFiles>true|false(default)</accessibleViaFiles>
<!-- 0 or 1 -->
<metadataFrom>...</metadataFrom> <-- The file to get metadata
from ("first" or "last" (the default) based on file's
lastModifiedTime). -->
<charset>...</charset>
<!-- (For EDDTableFromAsciiFiles and EDDTableFromColumnarAsciiFiles
only) This OPTIONAL tag specifies the character set (case
sensitive!) of the source files, for example, ISO-8859-1
(the default) and UTF-8. -->
<skipHeaderToRegex>...</skipHeaderToRegex>
<skipLinesRegex>...</skipLinesRegex>
<columnNamesRow>...</columnNamesRow> <-- (For EDDTableFromAsciiFiles
only) This specifies the number of the row with the column
names in the files. (The first row of the file is "1".
Default = 1.) If you specify 0, ERDDAP™ will not look for
column names and will assign names: Column#1, Column#2, ... -->
<firstDataRow>...</firstDataRow>
<-- (For EDDTableFromAsciiFiles and EDDTableFromColumnarAsciiFiles
only) This specifies the number of the first row with data in the
files. (The first row of the file is "1". Default = 2.) -->
<dimensionsCSV>...</dimensionsCSV> <-- (For EDDTableFromNcFiles