Головна

Робота зdatasets.xmlГоловна

\[Цей веб-сторінок буде тільки цікавимERDDAP™адміністратори.\]

Після того, як ви пішлиERDDAP™ Інструкція по монтажу, ви повинні редагуватиdatasets.xmlфайл домка /content/erddap/, щоб описати дані, які вашіERDDAP™монтаж буде служити.

Ви можете побачити прикладdatasets.xmlна GitHubй


Вступ

Деякі збори

Налаштування набору даних вERDDAP™не просто питання, що вказує на каталог даних або URL-адресу. Ви повинні написати шматок XML дляdatasets.xmlякий описує дані.

  • Для скріплених даних, для того щоб зробити конформацію данихERDDAP's структура даних для скатертованих даних, ви повинні визначити підмножину даних, які поділяють однакові розміри. (Чому? Як?)
  • Поточні метадані даних автоматично імпортуються. Але якщо ви хочете змінити метадані або додати інші метадані, ви повинні вказати його вdatasets.xmlй ІERDDAP™потрібні інші метадані, включаючиглобальні атрибути (якinfoUrl, установа,sourceUrl, резюме та назва) ізмінні атрибути (якlong\_nameта блоки) й Просто як метадані, які в даний час в метаданих, додає дескриптивну інформацію до бази даних, метаданих, запитаних метаданихERDDAP™додає дескриптивну інформацію до даних. Додаткові метадані є гарним доповненням до ваших даних і допомагаєERDDAP™Найкраща робота для користувачів, які не знайомі з ним.
  • ERDDAP™потрібно робити спеціальні речі здовгота, широта, висота (або глибина) , часові змінній

Якщо ви купуєте в ці ідеї і виконайте зусилля для створення XML дляdatasets.xmlВи отримуєте всі перевагиERDDAP™, в тому числі:

  • Повний текст пошуку даних
  • Пошук даних за категоріями
  • Форми доступу даних ( datasetID Українська) так ви можете запитати субсет даних у багатьох форматах файлів
  • Форми для запиту графіків та карт ( datasetID .граф)
  • Статус на сервери (WMS) для сітчастих даних
  • RESTfulдоступ до ваших даних

Виготовленняdatasets.xmlвживає значних зусиль для перших кількох даних, але вона полегшує й Після першого набору даних ви можете часто повторно використовувати багато вашої роботи для наступного набору даних. На щастя,ERDDAP™з двомаІнструментищоб допомогти вам створити XML для кожного набору данихdatasets.xmlй Якщо ви застрягнете, див. нашурозділ про отримання додаткової підтримкий

Постачальник даних Головна

Після того, як постачальник даних надійде до вас, щоб додати деякі дані до ваших данихERDDAP, може бути складним і трудомістким для збору всіх метаданих (інформація про дані) необхідно додати дані вERDDAPй Багато джерел даних (Наприклад, .csv файли, Файли Excel, бази даних) немає внутрішніх метаданих, томуERDDAP™має форму Постачальника даних, яка збирає метадані від постачальника даних та надає користувачам інформацію про інші вказівки, включаючи розширені вказівки дляДані в базі данихй Інформація, що подана, перетворена вdatasets.xmlформат, а потім по електронній поштіERDDAP™адміністратор (Ви) і письмово (Зареєструватися) до bigParentПублічний /logs/dataProviderForm.log . Таким чином, форма напівпристосує процес отримання даних вERDDAP, алеERDDAP™Адміністратор все ще повинен завершитиdatasets.xmlроздягальня і справу з отриманням файлів даних (й) від провайдера або підключення до бази даних.

Подача фактичних файлів даних з зовнішніх джерел є величезним ризиком безпеки, томуERDDAP™не несе відповідальності за це. Ви повинні дізнатися рішення, яке працює для вас і провайдера даних, наприклад, електронну пошту (для невеликих файлів) , витягти з хмари (Наприклад, Dropbox або Google Диск) , sftp сайт (з паролями) , або хакер Про компанію (USB палець або зовнішній жорсткий диск) й Ви повинні прийняти файли з людей, які ви знаєте. Вам потрібно відсканувати файли для вірусів і приймати інші запобіжні заходи безпеки.

Немає посиланняERDDAP™до форми Постачальника даних (наприклад, на прикладіERDDAP™Головна) й А якщо хтось каже, що ви хочете мати свої дані, які подаються вашими данимиERDDAP, ви можете надсилати їх електронною поштою, якщо ви хочете: Так, ми можемо отримати ваші дані вERDDAPй Для початку заповніть форму https://yourUrl/erddap/dataProviderForm.html (абоhttp://якщоhttps://немає) й Після закінчення я зв'яжусь з вами, щоб виконати фінальні деталі. Якщо ви просто хочете подивитися форму (без заповнення) Ви можете побачити форму наERDРERDDAP:ВступйЧастина 1йЧастина 2йЧастина 3йЧастина 4й Ці посилання наERD ERDDAP™надішліть мені інформацію, не ви, тому не подаєте інформацію з ними, якщо ви дійсно хочете додати дані доERD ERDDAPй

Якщо ви хочете видалити форму даних з вашого облікового записуERDDAP™, покласти

<dataProviderFormActive>false</dataProviderFormActive>  

у файлі налаштування.xml.

Неприємний для цього бувNOAAР‘РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμР»РμС‚РμР»РμР»РμР»РμР»РμллРμллРμР»РμР»РμллРμПублічний доступ до результатів досліджень (ПАРР) директива, яка вимагає, щоб всіNOAAекологічні дані, що фінансуються платниками податків, можуть бути доступні через послугу обробки даних (не тільки файли) протягом 12 місяців створення. Так виникає підвищений інтерес у використанніERDDAP™Щоб зробити дані, доступні за допомогою сервісу ASAP. Ми використовуємо більш ефективний спосіб вирішення великої кількості постачальників даних.

Зворотній зв'язок Ця форма нова, тому будь ласка, emailerd dot data at noaa dot govЯкщо у вас є якісь відгуки або пропозиції для покращення цього.

Інструменти

ERDDAP™За допомогою двох програм командного рядка, які допоможуть вам створити XML для кожного набору даних, який ви хочете, щоб вашERDDAP™подавати. Після того, як ви встановилиERDDAP™і запустити його (принаймні один раз) Ви можете знайти і використовувати ці програми в домка /webapps/erddap/WEB-INF каталог. Є сценарії оболонки Linux/Unix (з розширенням .sh) і скрипти Windows (з розширенням .bat) для кожної програми.\[На Linux запустіть ці інструменти, як і той же користувач (томака?) щоб запустити Tomcat.\]Коли ви запускаєте кожну програму, запитайте вас. Для кожного питання натисніть кнопку Enter. Або натисніть ^C для виходу програми в будь-який час.

Програма не працює?

  • Якщо ви отримуєте невідому програму (або схожий) помилка повідомлення, проблема, ймовірно, що операційна система не може знайтиJavaй Потрібні з'ясувати, деJava.bat або .sh файл, який ви намагаєтеся використовувати.
  • Якщо ви отримуєте файл банку не знайдено або клас не знайдено повідомлення про помилку, тоJavaне знайти одного з класів, що вказані в файлі .bat або .sh, які ви намагаєтеся використовувати. Розчин повинен з'ясувати, де знаходиться файл .jar, і редагувати посилання на нього в файлі .bat або .sh.
  • Якщо ви використовуєте версіюJavaце занадто старий для програми, програма не буде працювати і ви побачите повідомлення про помилку, як Виняток на нитку "основний" java.lang.UnsupportedClassVersionError: Ім'я : Непідтриманий головний редактор деякі
    Рішення для оновлення до останньої версіїJavaі переконайтеся, що файл .sh або .bat для програми використовує його.

Інструмент для друку різних діагностичних повідомлень:

  • Слово "Помилка" використовується при тому, що не вдалося завершити процедуру. Хоча це дратує, щоб отримати помилку, похибки змушує вас боротися з проблемою.
  • Слово «ВОДОНІНГ» використовується в тому випадку, коли щось пішло неправильно, але порядок вдалося завершити. Це досить рідко.
  • Будь-який інший - це просто інформативне повідомлення. Ви можете додати \-verbose доГенераціяДатасетСмлабоДатиКомандна лінія для отримання додаткових інформативних повідомлень, які іноді допомагають вирішувати проблеми.

Два інструменти є великою допомогою, але ви все ще повинні прочитати всі ці інструкції на цій сторінці ретельно і зробити важливі рішення самостійно.

ГенераціяДатасетСмл

  • ГенераціяДатасетСмл – програма командного рядка, яка може генерувати грубий проект XML даних практично будь-якого типу даних.

Ми працюємо з GenerateDatasets Xml замість створення шматківdatasets.xmlвід руки тому:

  • ГенераціяДатасети Xml працює за секундами. Якщо ви знаєте, що ви робите.
  • ГенераціяДатасети Xml робить кращу роботу. Досягнення цього вручну вимагає великих знаньERDDAP™роботи. Неймовірно, що ви будете робити краще роботу вручну. (Боб Симонс завжди використовує GenerateDatasets Xml для першого проекту, і він писавERDDAPй)
  • ГенераціяДатасети Xml завжди генерує дійсну горбdatasets.xmlй Будь-який горбdatasets.xmlщо ви пишете, ймовірно, доведеться принаймні кілька помилок, які запобігаютьERDDAP™від завантаження даних. Часто діагностувати ці проблеми діагностують людей. Не витрачайте час. Почати Дані Xml зробити тверду роботу. Потім ви можете відредагувати .xml вручну, якщо ви хочете.

Коли ви використовуєте GenerateDatasets Програма Xml:

  • У Windows, перший раз, коли ви використовуєте GenerateDatasetsXml, потрібно редагувати файл GenerateDatasetsXml.bat з текстовим редактором, щоб змінити шлях до java. exe файл так що Windows може знайтиJavaй
  • ГенераціяДатасети Xml першим попросить вас вказати EDDType (Erd Dap Датасет Тип) даних. ДивитисяПерелік типів даних (в цьому документі) для того, щоб ви зрозуміли, що потрібно для набору даних, ви працюєте. На додаток до регулярних EDDTypes також є кількаСпеціальні/Pseudo Типи даних (e.g., один з яких crawls каталогу THREDDS для створення шматкаdatasets.xmlдля кожного з даних в каталозі) й
  • ГенераціяДатасети Xml потім попросить вас серію питань, специфічних для цього EDDType. Питання збирають інформацію, необхідну дляERDDAP™доступу до джерела даних. Щоб зрозуміти, щоERDDAP™запитує, див. документацію для EDDType, яку ви вказали, натиснувши на той самий тип даних уПерелік типів данихй

Якщо потрібно ввести рядок з особливими героями (Наприклад, символи білого простору на початку або кінці, не-ASCII символів) , введітьJSON-style рядок (з особливими героями, які втекли з символами \) й Наприклад, ввести тільки символ вкладки, ввести "\t" (з навколишніми подвійними лапками, які розповідаютьERDDAP™це рядок JSON-style.

  • Часто одна з ваших відповідей не стане те, що GenerateDatasetsXml потребує. Ви можете знову спробувати, переглянуті відповіді на питання, доки GenerateDatasets Xml може успішно знайти і зрозуміти дані джерела.
  • Якщо ви відповіли питання правильно (або достатньо правильно) , GenerateDatasets Xml буде підключено до джерела даних і збирати базову інформацію (наприклад, змінні імена та метадані) й Для даних, які з місцевихNetCDF .ncі пов'язані файли, GenerateDatasets Xml часто друкує ncdump-подібну структуру файлу після цього спочатку читає файл. Це може дати вам інформацію, щоб відповісти на питання краще на наступні петлі через GenerateDatasetsXml.
  • ГенераціяДатасети Xml після того, як генерувати грубий проект XML даних для цього Dataset.
  • Діагностична інформація і грубий проект XML даних буде записано до bigParentПублічний /logs/GenerateDatasetsXml.log .
  • Приблизний проект XML даних буде написано до bigParentПублічний /logs/GenerateDatasetsXml.out .

"0 фото" Повідомлення

Якщо ви використовуєте GenerateDatasets Хмл абоДати, або якщо ви хочете завантажитиEDDGridВід...Файли або EDDTableЗ альбому... Файли даних вERDDAP™, і ви отримаєте "0 файлів" повідомлення про помилку, що вказують на те, щоERDDAP™знайдено 0 відповідні файли в каталозі (коли ви думаєте, що є відповідні файли в цьому каталозі) :

  • Перевірте, що ви вказали повне ім'я каталогу. І якщо ви вказали ім'я зразка, переконайтеся, що ви вказали ім'я файлу, включаючи ім'я повного каталогу.

  • Перевірте, що файли дійсно знаходяться в цьому каталозі.

  • Перевірити написання назви каталогу.

  • Перевірити файлNameRegex. Це дійсно, дуже легко зробити помилки з regexes. Для тестових цілей намагатися regex .\*, які повинні відповідати всім назвам файлів. (Дивитися цеregex документаціяіregex підручникй)

  • Перевірте, що користувач, який працює (Наприклад, користувач=tomcat (?) для Tomcat/ERDDAP) має дозвіл «читати» для тих файлів.

  • У деяких операційних системах (Наприклад, SELinux) і в залежності від параметрів системи, користувач, який побіг програми, повинен мати дозвіл «читати» для всієї мережі каталогів, що веде до каталогу, що має файли.

  • Якщо у вас є проблеми, які ви не можете вирішити,супровід запитуз максимально детальною інформацією. Як правило, якщо це схоже на відповідні EDDType для даної Dataset не працює з цими даними, або якщо немає відповідного EDDType, будь ласка, поставте файлпитання про GitHubПодробиці (і зразок файлу, якщо відповідне) й  

Вам потрібно редагувати вихід з GenerateDatasets Xml, щоб зробити його краще.

 

  • ЗНИЖКА: ХУНКУdatasets.xmlMADE BE GenerateDatasets Xml ISN'T PERFECT. ВИ МОЖЕТЕ РЕДАКЦІЙНО-ВИЗНАЧЕННЯ КРЕДИТНОГО БІЗНЕСУERDDAPй ГенераціяДатасети Xml RELIES НА ЛОТ RULES-OF-THUMB WHICH НЕ АЛЬВАСИ КОРРЕКТУ. У вас є РЕПОНСИБЛЬ ДЛЯ ЗАБЕЗПЕЧЕННЯ КОРРЕКТИВНОСТІ XML, ЩО ВИ ДОПОМОГАЄТЬСЯERDDAPРdatasets.xmlФІЛЬШЕ.

    (Fun Fact: Я не сяю. З історичних правових причин слід письмово писати в усіх ковпачок.)

Вихід GenerateDatasetsXml є грубим проектом. Ви завжди повинні редагувати його. Ми зробили і продовжуємо робити величезні зусилля, щоб зробити вихід максимально готовим, але є обмеження. Часто необхідна інформація не доступна з метаданих джерела.

Основна проблема полягає в тому, що ми запитуємо комп'ютерну програму (ГенераціяДатасетСмл) щоб зробити завдання, де, якщо ви подарували одне завдання до 100 осіб, ви отримаєте 100 різних результатів. Відповіді не існує. Очевидно, що програма закривається для читання думки Боба (не твої) , але навіть так, це не все-розумна AI-програма, просто пучок евристики, які збираються разом, щоб зробити штучне завдання. (У цей день може статися програма AI, але вона ще не має. Якщо / коли це робить, ми люди можуть мати більші проблеми. Будьте обережні, що ви хочете.)

  • Для інформаційних цілей виводяться глобальні джерелаАтрибути та змінні джерелаАтрибути як коментарі.ERDDAP™поєднує джерелоАтрибути таaddAttributes (які мають прецедентію) зробити комбінований Атрибути, які відображаються користувачеві. (І інші атрибути автоматично додаються до довготи, широтості, висоти, глибини та часових змін, колиERDDAP™насправді робить дані) й  

  • Якщо ви не любите джерело Атрибуту, перезаписати його, додавши атрибут з такою назвою, але різне значення (або немає значення, якщо ви хочете видалити його) й  

  • ВсіaddAttributes- Комп'ютерні пропозиції. Редагувати їх Якщо ви не любите додати Атрибут, змінити його.  

  • Якщо ви хочете додати іншіaddAttributes, додати їх.  

  • Якщо ви хочете змінитиdestinationName, змінити його. Але не змінюйтеsourceNameй  

  • Ви можете змінити порядок замовленняdataVariableабо видалити будь-яку з них.

    • Ви можете використовуватиДати (Переглянути нижче) для того, щоб переконатися, що отриманий дані з'являється, що ви хочете, щоб він бувERDDAPй
    • Відчуйте безкоштовно, щоб зробити невеликі зміниdatasets.xmlдекольте, який був створений, наприклад, постачання кращеinfoUrl, резюме або назва.

doNotAddStandardНазва

Якщо у вас є \-doNotAddStandardNames як параметр командного рядка, коли ви використовуєте Дані Xml, генерувати Дані Xml не додастьstandard\_nameдоaddAttributesдля будь-яких змінних, окрім змін, названих широтою, довготою, висоти, глибини або часу (якіstandard\_nameй) й Це може бути корисним, якщо ви використовуєте вихід з генерування Дані Xml безпосередньо вERDDAP™без редагування виходу, оскільки генерувати Дані Xml часто вгадаєstandard\_nameневірно. (Зверніть увагу, що ми завжди рекомендуємо вам редагувати вихід до його використанняERDDAPй) Використання цього параметра буде мати інші незначні пов'язані ефекти, тому що здогаданіstandard\_nameчасто використовується для інших цілей, наприклад, для створення новогоlong\_name, і для створення параметрівБар.

Авторизація

Як альтернатива відповісти на питання, що взаємодіє на клавіатурі і петляцію, щоб генерувати додаткові дані, ви можете надати аргументи командного рядка, щоб відповісти на всі питання, щоб створити один набір даних. ГенераціяДатасети Xml оброблятиме ті параметри, напишіть вихід на вихідний файл і виходите програму.

Щоб налаштувати цю програму в інтерактивному режимі і написати відповіді. Ось другий приклад: Давайте скажемо вам запустити скрипт: ./GenerateDatasetsXml.sh Потім введіть: EDDTableЗ альбомуAsciiFiles Далі введіть: /u00/data/ Далі введіть: .\*\.asc Далі введіть: /u00/data/sampleFile.asc Далі введіть: ISO-8859-1

Для запуску цього в неінтерактивному режимі використовуйте цей командний рядок: ./GenerateDatasetsXml.sh EDDTableЗ альбомуAsciiFiles /u00/data/ .\*\\\.asc/data/sampleFile.asc ISO-8859-1 Таким чином, ви просто перерахуєте всі відповіді на командний ряд. Це має бути корисним для даних, які часто змінюються таким чином, що вимагає повторного запуску GenerateDatasets Хмл (невагомоEDDGridЗThreddsКаталог) й

Детальніше:

  • Якщо параметр містить простір або якийсь особливий характер, то закодуйте параметр як параметрJSON-style рядок, наприклад, "міський параметр з просторами і двома\nлінії.
  • Якщо ви хочете вказати порожній рядок як параметр, використовуйте: нічого
  • Якщо ви хочете вказати значення за замовчуванням параметра, використовуйте: за замовчуванням  
  • ГенераціяДатасети Xml підтримує -i дані ХмлName Нема мітки параметр командного рядка, який вставляє вихід в зазначенийdatasets.xmlГоловна (За замовчуванням домка / контент/робота/datasets.xml) й ГенераціяДатасети Xml виглядає для двох ліній в даних XmlName:
        <!-- Begin GenerateDatasetsXml #*tagName someDatetime* -->  

і

        <!-- End GenerateDatasetsXml #*tagName someDatetime* -->  

і замінює все між тими лініями з новим змістом, і змінює деякий час.

  • Перемикач -i тільки обробляється (і зміниdatasets.xmlтільки виготовлені) якщо ви використовуєте GenerateDatasets Xml з аргументами командного рядка, які вказують всі відповіді на всі питання для однієї петлі програми. (Дивитися 'Писання' вище.) (Мислення: Цей параметр призначений для використання з скриптами. Якщо ви використовуєте програму в інтерактивному режимі (натиснення інформації на клавіатурі) , ви, ймовірно, генеруєте деякі неправильні шматки XML, перш ніж ви генеруєте той, що ви хочете.)
  • Якщо Ви не знайшли, то ці лінії і новий контент вставляються прямо до</erddapDatasets>.
  • Також є -I (капітал i) Переключення для цілей тестування, які працюють так само, як -i, але створює файл, який називаєтьсяdatasets.xml Дата і не вносити зміниdatasets.xmlй
  • Не пропустіть GenerateDatasets Xml з -i в двох процесах одночасно. Затримується лише один набір змін. Може бути серйозною проблемою (наприклад, пошкоджені файли) й

Якщо ви використовуєте "GenerateDatasetsXml -verbose", він буде друкувати більше діагностичних повідомлень, ніж зазвичай.

Спеціальні/Pseudo Типи даних

В цілому параметри EDDType в GenerateDatasets Xml матч типів EDD, описаних в цьому документі (ПереглянутиПерелік типів даних) і генерувати одинdatasets.xmlдля створення одного джерела даних. Є кілька винятків і спеціальних випадків:

EDDGridВідErddap

Цей EDDType виробляє всіdatasets.xmlкуртки, необхідні для приготуванняEDDGridВідErddapдані з усіхEDDGridдані в дистанційному режиміERDDAPй Ви будете мати варіант збереження оригінальногоdatasetIDй (що може дублювати деякіdatasetIDs вже у вашомуERDDAP) або створення нових імен, які будуть унікальними (але, як правило, не є людським) й  

EDDTableЗ альбомуErddap

Цей EDDType виробляє всіdatasets.xmlкуртки, необхідні для приготуванняEDDTableЗ альбомуErddapдані з усіх EDDTable datasets в дистанційному режиміERDDAPй Ви будете мати варіант збереження оригінальногоdatasetIDй (що може дублювати деякіdatasetIDs вже у вашомуERDDAP) або створення нових імен, які будуть унікальними (але, як правило, не є людським) й  

EDDGridЗThreddsКаталог

Цей EDDType виробляє всіdatasets.xmlкуртки, необхідні для всіхEDDGridВіддані, які можна знайти, відкидаючи, прямо через THREDDS (Суб.) каталог. Є багато форм URL каталогу THREDDS. Ця опція використовує URL-адресу THREDDS .xml з /catalog/ в ньому, наприклад, https://oceanwatch.pfeg.noaa.gov/thredds/catalog/catalog.xml або https://oceanwatch.pfeg.noaa.gov/thredds/catalog/Satellite/aggregsatMH/chla/catalog.xml
.html каталог знаходиться в https://oceanwatch.pfeg.noaa.gov/thredds/Satellite/aggregsatMH/chla/catalog.html , яка не прийнятна дляEDDGridВідТридсКаталог). Якщо у вас виникли проблемиEDDGridВідТрейдс Каталог:

  • Переконайтеся, що URL, який ви використовуєте, є дійсним, включає /catalog/, і закінчується з /catalog.xml .
  • Якщо це можливо, скористайтеся публічною IP-адресою (наприклад, https://oceanwatch.pfeg.noaa.gov ) в URL-адресі, не локальна нумерська IP-адреса (наприклад, https://12.34.56.78 ) й За допомогою локальної нумеричної IP-адреси можна скористатися [<JavaScript licenses API Веб-сайт Go1.13.8 (#converttopublicsourceurl) доERDDAP™користувачі дивляться на публічну адресу, хоча бERDDAP™отримує дані з локальної нумеричної адреси.
  • Якщо у вас є проблеми, які ви не можете вирішити,Перевірте поради щодо усунення несправностейй
  • Код низького рівня для цього зараз використовуєUnidatanetcdf-java каталог код товару (тромби. клас) так що він може обробляти всі каталоги THREDDS (що може бути дивно складним) ДякуюUnidataдля цього коду.  
EDDGridLonPM180З альбомуErddapКаталог

Цей EDDType генеруєdatasets.xmlщоб зробитиEDDGridкод товару: 180дані з усіхEDDGridдані вERDDAPякі мають значення довготи більше 180.

  • Якщо це можливо, скористайтеся публічною IP-адресою (наприклад, https://oceanwatch.pfeg.noaa.gov ) в URL-адресі, не локальна нумерська IP-адреса (наприклад, https://12.34.56.78 ) й ЯкщоERDDAP™Доступно лише за допомогою локальної нумеричної IP-адреси, ви можете використовувати [<JavaScript licenses API Веб-сайт Go1.13.8 (#converttopublicsourceurl) доERDDAP™користувачі дивляться на публічну адресу, хоча бERDDAP™отримує дані з локальної нумеричної адреси.  
EDDGridLon0360З альбомуErddapКаталог

Цей EDDType генеруєdatasets.xmlщоб зробитиEDDGridЛон0360дані з усіхEDDGridдані вERDDAPякі мають значення довготи менше 0.

  • Якщо це можливо, скористайтеся публічною IP-адресою (наприклад, https://oceanwatch.pfeg.noaa.gov ) в URL-адресі, не локальна нумерська IP-адреса (наприклад, https://12.34.56.78 ) й ЯкщоERDDAP™Доступно лише за допомогою локальної нумеричної IP-адреси, ви можете використовувати [<JavaScript licenses API Веб-сайт Go1.13.8 (#converttopublicsourceurl) доERDDAP™користувачі дивляться на публічну адресу, хоча бERDDAP™отримує дані з локальної нумеричної адреси.  
EDDsЗ альбомуFiles

З огляду на початок каталогу, це перетворює каталог та всі підкатегорії та намагається створити набір даних для кожної групи файлів даних, які він знаходить.

  • Це припускає, що при виявленні даних, датасет містить всі підкатегорії.
  • Якщо знайдено дані, аналогічні каталоги будуть розглядатися як окремі дані (Наприклад, каталоги для 1990-х, 2000-х, 2010-х, генерують окремі дані) й Вони повинні бути легко поєднувати вручну - просто змінити перший набір даних<fileDir> до материнського каталогу і видаліть всі наступні роз'ємні дані.
  • Це буде тільки намагатися генерувати горбdatasets.xmlдля найбільш поширеного типу розширення файлів в каталозі (не підрахунок .md5, який ігнорується) й Так, враховуючи каталог з 10.ncФайли та файли 5 .txt, набір даних буде створено для.ncФайли тільки.
  • Припустимо, що всі файли в каталозі з однаковим розширенням належать в одному з даних. Якщо каталог має деякі.ncФайли з даними SST та деякими.ncфайли з даними хлорофілу, просто один зразок.ncфайл буде читати (ССТ? хлорофіл?) і тільки один набір даних буде створений для цього типу. Ці дані, ймовірно, не можуть завантажуватися через ускладнення від спроб на завантаження двох типів файлів в той же набір даних.
  • Якщо є менше 4 файлів з найбільш поширеним розширенням в каталозі, це припускає, що вони не є файлами даних і просто пропускає каталог.
  • Якщо є 4 або більше файлів в каталозі, але це не може успішно генерувати шматкиdatasets.xmlдля файлів (наприклад, непідтриманий тип файлу) , це буде генеруватиEDDTableЗ альбомуFileNamesDataset для файлів.
  • Наприкінці діагностики, що це записує до файлу журналу, просто доdatasets.xmlштани, це буде друкувати таблицю з резюме інформації, зібраної шляхом перетягування всіх підкатегорій. Список кожного підкатету і вказати найбільш поширений тип розширення файлів, загальну кількість файлів і який тип даних був створений для цих файлів (якщо) й Якщо ви зіткнулися з складними, глибоко в'язаними структурами файлів, розгляньте хід GenerateDatasets Xml з EDDType=EDDsЗ альбомуFiles просто для створення цієї інформації,
  • Ця опція не може зробити велику роботу з вгадуванням найкращого EDDType для даної групи файлів даних, але це швидко, легко і варто спробувати. Якщо потрібні вихідні файли, це добре працює і є хорошим першим кроком для створенняdatasets.xmlдля файлової системи з великою кількістю підкателей, кожен з файлами даних з різних даних.  
EDDTableЗ альбомуEML і EDDTableЗ альбомуEMLBatch

Ці спеціальні EDDType генеруєdatasets.xmlщоб зробитиEDDTableЗ альбомуAsciiFilesдатасет з кожної таблиці, описаної в таблиціЕкологічна метаданіXML файл. Варіант "Batch" працює на всіх файлах EML в локальному або віддаленому каталозі. Будь ласка, див. розділEDDTableЗ альбомуEMLй  

EDDTableЗ альбомуInPort

Цей спеціальний EDDType генеруєdatasets.xmlщоб зробитиEDDTableЗ альбомуAsciiFilesдані з інформації в інформаціївпорт-xmlфайл. Якщо ви можете отримати доступ до файлу вихідних даних (файл inport-xml повинен мати відключення для того, щоб знайти його) , ви можете зробити робочі дані вERDDAPй

Наступні кроки визначають, як використовувати GenerateDatasets Xml з файлом inport-xml для отримання робочих данихERDDAPй

  1. Після того, як ви маєте доступ до файлу inport-xml (як URL або локальний файл) : запустити GenerateDatasets Xml, вкажіть EDDType=EDDTableЗ альбомуInPort, вкажіть URL-адресу впорт-xml або повне ім'я файлу, вкажіть, щоChild=0 і вказати іншу необхідну інформацію (якщо відомо) й (У цій точці вам не потрібно мати файл вихідних даних або вказати його ім'я.) Налаштування якихChild=0 говорить GenerateDatasets Xml для запису інформації для Всі з<суб'єктно-інформаційна інформація<особа> у файлі inport-xml (якщо є) й Він також друкує резюме на фонову інформацію, включаючи всі перераховані у файлі inport-xml.
  2. Переглянути всі дані (включаючи інформацію про фон, що GenerateDatasets Xml друку) і відвідування URL-адреси завантаження (й) Для того щоб знайти файл вихідних даних (й) й Якщо ви можете знайти його (вони) , завантажити його (вони) в каталог, доступний дляERDDAPй (Якщо ви не можете знайти будь-які файли вихідних даних, то не існує сенсу при переході.)
  3. Генерація Дані Xml знову. Якщо файл вихідних даних відповідає одному з файлів inport-xml<суб'єктно-інформаційна інформація<особа>'s, вкажіть, щоChild= JavaScript licenses API Веб-сайт (т.г., 1, 2, 3, ...) йERDDAP™намагатиметься відповідати іменам стовпців у файлі вихідних даних для імен в інформації про особу суб’єкта господарювання, а також підказка про прийняття/відведення/фіксувати будь-які розбіжності. Або, якщо файл inport-xml немає<суб'єктно-інформаційна інформація<суб'єкт>', вкажіть, щоChild=0.
  4. У горбочкуdatasets.xmlщо було зроблено GenerateDatasets Xml, оживити [глобал<addAttributes>] (#глобал-атрибути) як потрібно/відображається.
  5. У горбочкуdatasets.xmlщо було зроблено GenerateDatasetsXml, додати / перегляньте [<dataVariable>] (#datavariable) опис кожного з змінних. Переконайтеся, що ви правильно ідентифікуєте кожну змінну Про нас<sourceName>] (Ім'я) (як з'являється джерело) й Про нас<destinationName>] (Назва) (що має більше обмежень на дозволені символи, ніжsourceName) й Про нас<блоки> (Ніна) (особливо якщо цечас або часде потрібно вказати формат) й Про нас<missing\_value>] (#місія_значення) й
  6. Коли ви близькі до обробки, багаторазово використовуйтеДатиінструмент, щоб швидко побачити, чи працює опис даних, і якщо дані з'являються вERDDAP™як ви хочете.  

Це буде чудово, якщо групи, які використовують InPort, щоб документувати свої дані, також використовуватимутьсяERDDAP™Щоб зробити наявні дані:

  • ERDDAP™є розчином, який можна використовувати прямо зараз, так що ви можете виконатиNOAAРПублічний доступ до результатів досліджень (ПАРР) Вимогипрямо зараз, не в якомусь нема часу в майбутньому.
  • ERDDAP™не просто метаданих. (Що таке метадані без даних?)
  • ERDDAP™підтримує метадані (необов'язково, одиниці змінних) , на відміну від деяких інших даних, програмне забезпечення, яке розглядається. (Що таке дані без метаданих?) Щоб використовувати програмне забезпечення, яке не підтримує метадані, запрошують дані, щоб бути непорушними та невикористаними.
  • ERDDAP™є безкоштовним і відкритим програмним забезпеченням, на відміну від деяких інших програм, які розглядаються. Оголошено розвитокERDDAP™вже оплачено. ПідтримкаERDDAP™користувачів безкоштовно.
  • ERDDAP's зовнішній вигляд можна легко налаштувати для відображення та виділити вашу групу (немаERDабоERDDAP) й
  • ERDDAP™забезпечує постійний доступ до всіх даних.
  • ERDDAP™може зчитувати дані з багатьох типів файлів даних та з реляційних баз даних.
  • ERDDAP™може мати велику кількість даних, включаючи дані, де дані джерела знаходяться у багатьох файлах даних.
  • ERDDAP™може писати дані для багатьох типів файлів даних, на вимогу користувача, включаючи типи файлів даних, таких як netCDF, ESRI .csv іODV .txtй
  • ERDDAP™може здійснювати користувацькі графіки та карти субсетів даних, заснованих на специфікаціях користувача.
  • ERDDAP™може боротися з невидимими даними, такими як колекції зображення, відео або аудіо файлів.
  • ERDDAP™встановлено та використовується припонад 60 установ світуй
  • ERDDAP™Вказано як один з серверів даних, які рекомендовані для використання в межахNOAAвNOAAДоступ до даних процесуальний директива, на відміну від деяких інших програм вважається.
  • ERDDAP™є продуктомNMFSУкраїнськаNOAA, щоб використовувати його в межахNMFSіNOAAповинні бути точки гордості дляNMFSіNOAAй

Про насERDDAP™спробувати. Якщо вам потрібна допомога, будь ласка, поставте повідомлення в повідомленняERDDAP™Українська  

addFillValueАтрибути

Ця спеціальна опція EDDType не є типом даних. Це інструмент, який може додати атрибути \_FillValue до деяких змінних в деяких датах. Про насaddFillValueАтрибутий  

Пошук час

Ця спеціальна опція EDDType не є типом даних. замість цього він говорить GenerateDatasets Xml для пошуку через збір сітки.nc (і пов'язані) Файли для пошуку та друку списку файлів з значеннями часу дублікатів. Коли він виглядає в значень часу, він перетворює їх з оригінальних одиниць до"seconds since 1970-01-01"якщо різні файли використовують різні рядки. Вам необхідно надати стартовий каталог (з або без причепів слеш) , формальний вираз імені файлу (Наприклад, .\*\.nc ) , і ім'я змінної часу у файлах.  

пердят

Ця спеціальна опція EDDType не є типом даних. замість цього він говорить GenerateDatasets Xml для друкупердят\-подібний друк.ncй.ncмл, або.hdfфайл. Це насправді використовує netcdf-java'sНКДП, яка є більш обмеженим інструментом, ніж версія C NCdump. Якщо ви використовуєте цей варіант, GenerateDatasetsXml попросить вас використовувати один з варіантів: "-h" (свінгери) , "-c" (координація варів) , "-vall" (За замовчуванням) , "-v var1;var2", "-v вар1 (0,0:10,0:20) ". Це корисно, тому що, без натискання важко знати, що це в.ncй.ncмл, або.hdfфайл і таким чином, що EDDType ви повинні вказати для GenerateDatasets Хмл. Для.ncмл-файлу, це буде друкувати вихід ncdump для результату.ncзміни файлу мл наноситься на основу.ncабо.hdfфайл.  

Дати

  • Дати - програма командного рядка, яку ви можете використовувати після того, як ви створили першу спробу на XML для нового набору данихdatasets.xmlй За допомогою DasDds ви можете повторно перевірити і скасувати XML. Коли ви використовуєте програму DasDds:
    1. У Windows, перший раз, коли ви запустіть DasDds, вам потрібно редагувати DasDds. bat файл з текстовим редактором, щоб змінити шлях до java. exe файл так що Windows може знайтиJavaй
    2. DasDds просить вас заdatasetIDза даними, які ви працюєте.
    3. DasDds намагається створити дані з тим, щоdatasetIDй
      • DasDds завжди друкує багато діагностичних повідомлень. Якщо ви використовуєте "DasDds -verbose", DasDds будуть друкувати більше діагностичних повідомлень, ніж звичайні.
      • Для безпеки DasDds завжди видаляє всю необхідну інформацію (Файли) для набору даних перед створенням даних. Це еквівалент налаштуванняжорсткий прапорДля сукупних даних, ви можете налаштувати файлNameRegex тимчасово, щоб обмежити кількість файлів, знайдених конструктора даних.
      • Якщо гарнітура не завантажується (з будь-якої причини) , DasDds зупиниться і покаже вам повідомлення про помилку для першої помилки. Не намагайтеся вгадати, що може бути проблема. Прочитати повідомлення ERROR ретельно.
        При необхідності читати передові діагностичні повідомлення, щоб знайти більше відчуттів і інформації.
      • Зробіть зміни в XML даних, щоб спробувати вирішити цю проблему
        І дайте DasDds, щоб створити дані знову.
      • Якщо ви неодноразово вирішуєте кожну проблему, ви в кінцевому підсумку вирішите всі проблеми
        і датасет буде навантажуватися.
    4. Усі дані DasDds (діагностика та результати) записуються на екран і до bigParentПублічний /logs/DasDds.log .
    5. Якщо DasDds може створити набір даних, DasDds потім покаже вам.das (Структура атрибутів даних) й.Діти (Диспетчер даних Структура) й.timeГапс (час зазори) інформацію для набору даних на екрані та написати їх на екран bigParentПублічний /logs/DasDds.out .
    6. Нерідко ви хочете, щоб зробити деякі невеликі зміни до XML даних, щоб очистити метадані Dataset і перезапустити DasDds.

Бонуси Інструмент третій-Party:ERDDAP-лінт

ERDDAP-lint - програма від Rob Fuller і Adam Leadbetter of Irish Marine Institute, яка ви можете використовувати для поліпшення метаданих ваших данихERDDAP™дані.ERDDAP-lint "Зберегти правила і простий статичний веб-додаток для запуску деяких тестів перевірки проти вашихERDDAP™сервер. Всі тести проходять в веб-переглядачі. ЯкІнструмент для розфарбовування Unix/Linux, ви можете редагувати існуючі правила або додати нові правила. Про насERDDAP-лінтдля отримання додаткової інформації.

Цей інструмент особливо корисний для даних, які ви створили кілька разів тому, і зараз хочете довести оновлення з вашими поточними налаштуваннями метаданих. Наприклад, ранні версії GenerateDatasets Xml не докладав зусиль для створення глобальногоcreator\_nameйcreator\_email, творець\тип, абоcreator\_urlметадані. Ви можете використовуватиERDDAP- для визначення значень даних, які не мають атрибутів метаданих.

Завдяки Rob і Adam для створення цього інструменту і створення його доступним дляERDDAP™громада.  

Основна структураdatasets.xmlГоловна

Необхідні та додаткові теги, дозволені вdatasets.xmlГоловна (і кількість разів вони можуть з'явитися) нижче. На практиціdatasets.xmlбуде мати багато<датасета> Теги і тільки використовувати інші теги в межах<erddapDatasets> як потрібно.

 <?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>

У майбутньому, але зараз рекомендується тільки ISO-8859-1.  

СВЯТКА

Нові в версії 2.25 підтримують XInclude. Це вимагає використання SAX parser<JavaScript licenses API Веб-сайт Go1.13.8</useSaxParser> в налаштуваннях.xml. Це може дозволити вам записувати всі дані у своєму файлі, а потім включати їх в себеdatasets.xmlВикористовуються деталі визначення даних, або обидва. Якщо ви хочете побачити приклад,EDDTestDataset.javaвстановлює XInclude для повторного використання змінних визначення.  


Нотатки

Робота зdatasets.xmlфайл непривабливий проект. Будь ласка, уважно прочитайте всі ці ноти. Після виборутип даних, будь ласка, уважно прочитайте детальний опис його.  

Вибір типу Dataset

У більшості випадків є тільки одинERDDAP™тип даних, який підходить для даного джерела даних. У декількох випадках (Наприклад,.ncФайли) , є кілька можливостей, але, як правило, один з них, безумовно, кращий. Перше і найбільше рішення, яке ви повинні зробити: є доцільним для обробки даних як групи багатовимірних масивів (якщо ви бачитеEDDGridтипи даних) або як база даних-подібний таблиці даних (якщо ви бачитеEDDTable типи даних) й  

Обслуговування даних як це

Як правило, немає необхідності змінювати джерело даних (Наприклад, конвертувати файли в інший тип файлів) так, щобERDDAP™може служити. Одна з припущеньERDDAP™є те, що джерело даних буде використовуватися як це. Зазвичай це працює дрібно. Деякі винятки:

  • Реляційні бази даних та Кассандра ---ERDDAP™може служити дані безпосередньо з реляційних баз даних та Кассандра. Але для забезпечення безпеки, балансування навантаження та виконання завдань, ви можете вибрати для встановлення іншої бази даних з тими самими даними або збереженням даних дляNetCDFв3.ncФайлиERDDAP™подавати дані з джерела даних. Про насEDDTableЗ альбомуDatabaseіEDDTableЗ альбомуCassandraй
  • Не підтримує джерела даних --ERDDAP™може підтримувати велику кількість типів джерел даних, але світ наповнений 1000-х (мільйони?) різних джерел даних (необов'язково, файлові структури даних) й ЯкщоERDDAP™не підтримує джерело даних:
    • Якщо джерело данихNetCDF .ncФайли, ви можете використовуватиНЦМЛзмінити файли даних на файлах або використовуватиNCOпостійно змінювати файли даних.
    • Ви можете написати дані на тип джерела даних, що містять даніERDDAP™опори.NetCDF-3.ncФайли хороші, загальні рекомендації, оскільки вони є бінарними файлами, якіERDDAP™можна швидко прочитати. Для табличних даних розглянемо зберігання даних в збірнику.ncФайли, які використовуютьПанчохи Дискретні шамплінг геометереї (ДСГ) Контигузовані конструкції масивних даних і так можна обробитиERDDAPРEDDTableЗ альбомуNcCFFiles). Якщо вони логічно організовані (кожен з даними для шматка простору і часу) йERDDAP™може отримувати дані з них дуже швидко.
    • Ви можете запросити, що підтримка цього джерела даних буде доданоERDDAP™по електронній пошті Кріс. Джон на noaa.gov.
    • Ви можете додати підтримку цього джерела даних, написавши код для обробки його самостійно. Про насПро насERDDAP™Керівництво програмістів
  • Швидкість --ERDDAP™читати дані з деяких джерел даних набагато швидше, ніж інші. Наприклад, читанняNetCDFв3.ncФайли швидкого та читання файлів ASCII повільніше. І якщо є великий (>1000 р.) або величезний (>10 000 р.) кількість файлів вихідних даних,ERDDAP™відповідає на деякі запити даних повільно. Як правило, різниця не помітна для людини. Але якщо ви думаєтеERDDAP™є повільним для даної інформації, ви можете вибрати для вирішення проблеми, написавши дані на більш ефективне налаштування (зазвичай: кілька, добре структурованих,NetCDFв3.ncФайли) й Для табличних даних див.порадий  

Хін

Для отримання копії опису робочих даних в dataset.xml часто простіше генерувати XML.

Захоплення спеціальних символів

Зdatasets.xmlє файлом XML, ви MUSTта-encode"І", "<", і "> в будь-якому змісті як "&", "<", і ">". Вронг:<Назва> Час і тіди<Новини Право:<Назва> час & Tides<Новини  

XML не переносить помилок синтаксису

Після редагування файлу Dataset.xml це гарна ідея для перевірки результатудобре сформований XMLшляхом написання тексту XML у XML-реєстратор, яканотаціяй  

Поради щодо усунення несправностей

Спеціальні змінні

  • Довгота, широта, висота (або глибина) і час (ЛІТА) змінна destinationNames є особливим.
  • В цілому:
    • LLAT змінніERDDAP™якщо змінна вісь (дляEDDGridдані) або зміна даних (для даних EDDTable) destinationName"довга", "широтість", "глибина", "глибина", або"time"й
    • Ми рекомендуємо використовувати ці стандартні імена для цих змінних. Не потрібно. Якщо ви не використовуєте ці спеціальні імена змінних,ERDDAP™не визнає їх значення. Наприклад, змінні LLAT спеціально оброблені Make A Graph ( datasetID .граф) : якщо змінна X Axis є "довго" і змінна Y Axis є "широтою", ви отримаєте карту (за допомогою стандартної проекції, а з маскою землі, політичними кордонами тощо.) замість графіка.
    • ERDDAP™автоматично додавати багато метаданих до змін LLAT (Наприклад, "ioos\_category", "блоки", і деякі стандарти, пов'язані атрибути, такі як "\_CoкоординатAxisType") й
    • ERDDAP™автоматично додаватиме багато глобальних метаданих, пов’язаних з значеннями LLAT вибраних даних (Наприклад, "геоспатіал\_лон\_мін") й
    • Клієнти, які підтримують ці стандарти метаданих, зможуть скористатися доданою метаданих для визначення даних у часі та просторі.
    • Клієнти будуть легше створювати запити, які включають в себе змінні LLAT, оскільки імена змінної однакові у всіх відповідних даних.
  • Для змінної "довго" і змінної "широтості":
    • ВикористанняdestinationNames "довга" і "широтість" тільки якщоблокиє ступені\_схід і ступені\_норт, відповідно. Якщо Ваші дані не відповідають цим вимогам, використовуйте різні імена змінних даних (Наприклад, x, y, lonRadians, latRadians) й
    • Якщо у вас є довгота і широтні дані, виражені в різних підрозділах і, таким чином, з різнимиdestinationNames, наприклад, lonRadians і latRadians, зробити графік ( datasetID .граф) зробить графіки (наприклад, часовий ряд) замість карт.
  • Для змінної "широтості" і "глибинної" змінної:
    • ВикористанняdestinationName"Розширення" для визначення відстані даних над рівнем моря (позитивні значення ="up") й Додатково ви можете використовувати "широту" для дистанцій нижче рівня моря, якщо значення негативні нижче моря (або якщо ви використовуєте, наприклад, Про нас<Ім'я користувачаscale\_factor" type="int">- 1 час<Українська (#масштаб_фактор) перетворювати значення глибини на значення висоти.
    • ВикористанняdestinationName"глибина" для визначення відстані даних нижче рівня моря (позитивні значення) й
    • Дані, які не можуть мати як «широтість» і «глибинні» змінні.
    • Для цих змінних імен,блокиповинна бути "м", "метр", або "метри". Якщо одиниці різні (наприклад, жиросоми) , ви можете використовувати Про нас<Ім'я користувачаscale\_factor> деякі Ціна <Українська (#масштаб_фактор) й [<ім'я att="units">метри<Українська (Ніна) для перетворення одиниць в лічильники.
    • Якщо Ваші дані не відповідають цим вимогам, скористайтеся різнимdestinationName (Наприклад, вищеГурорт, відстань ДоБоттом) й
    • Якщо ви знаєте вертикальні CRS, будь ласка, вкажіть його в метаданих, наприклад, "EPSG:5829" (миттєва висота вище рівня моря) , "EPSG:5831" (миттєва глибина нижче рівня моря) , або "EPSG:5703" (Висота NAVD88) й
  • Для"time"змінна:
    • ВикористанняdestinationName "time"тільки для змінних, які включають всю дату + час (або дата, якщо це все) й Якщо, наприклад, є окремі стовпчики на дату та часОдня, не використовуйте змінну назву"time"й
    • Про насблокидля отримання більш детальної інформації про атрибути юнітів на час і часНалаштування змінних.
    • Час мінливий і пов'язанийчас Штамп зміннихє унікальним у тому, що вони завжди конвертують значення даних з формата часу джерела (Що це таке) в числове значення (з 1970-01T00:00Z) або значення String (ISO 8601:2004 (Етикети) Головна) в залежності від ситуації.
    • Коли користувач запитує часові дані, вони можуть запитати його, вказавши час як нумеричне значення (з 1970-01T00:00Z) або значення String (ISO 8601:2004 (Етикети) Головна) й
    • ERDDAP™має утиліту дляПеретворення Numeric Час до / з часу Stringй
    • Про насЯкERDDAPПропозиції з часомй

Чому саме два основні структури даних?

  • Так як важко для клієнтів і комп'ютерних клієнтів боротися з комплексним набором можливих структур даних,ERDDAP™використовує лише дві основні структури даних:
  • Звичайно, не всі дані можуть бути виражені в цих структурах, але багато з них може. Таблиці, зокрема, є дуже гнучкими структурами даних (пошук успіху програм реляційних баз даних) й
  • Це полегшує процес побудови даних.
  • Це робить відповідь на дані мають просту структуру, яка полегшує служити даними в широкому асортименті типових типів файлів (які часто підтримують прості структури даних) й Це головна причина, яку ми встановилиERDDAP™це спосіб.
  • Це, в свою чергу, робить нас дуже простими (або будь-який) писати програмне забезпечення клієнта, яке працює з усімаERDDAP™дані.
  • Це полегшує порівняння даних з різних джерел.
  • Ми дуже знаємо, що якщо ви звикли працювати з даними в інших структурах даних, ви можете спочатку подумати, що цей підхід є спрощенням або недостатньо. Але всі структури даних мають торгові марки. Не ідеальний. Навіть до-всі конструкції мають свої недоліки: роботи з ними є складними і файли можуть бути записані тільки з особливими бібліотеками програмного забезпечення. Якщо Ви приймаєтеERDDAP- Намагатися працювати з ним, можна знайти, що вона має свої переваги (ймовірно, підтримка декількох типів файлів, які можуть зберігати відповіді на дані) й Про насERDDAP™слайд шоу (зокрема,структури даних слайд) Про ці питання говорять багато.
  • І навіть якщо цей підхід звучить непарно, то більшістьERDDAP™Клієнти ніколи не помітили -- вони просто побачать, що всі дані мають гарну простою структурою, і вони будуть вдячні, що вони можуть отримати дані з широкого спектру джерел, що поставляються в широкому асортименті файлів.  

Розміри

  • Що робити, якщо змінні сітки у вихідному датасеті DON’T діляться однаковими змінами осі?
    УEDDGridдані, всі зміни даних MUST (Увійти) всі змінні осі. Отже, якщо джерело даних має деякі змінні з одним набором розмірів, а також інших змінних з різним набором розмірів, вам доведеться зробити два дані вERDDAPй Наприклад, ви можете зробити одинERDDAP™датасет під назвою «Зимова назва» (на поверхні) " зберігати змінні, які просто використовують\[час\]\[знаменитості\]\[довгота\]розміри і зробити щеERDDAP™датасет під назвою «Зимова назва» (на глибину) " зберігати змінні, які використовують\[час\]\[висота\]\[знаменитості\]\[довгота\]й Або, можливо, ви можете змінити джерело даних, щоб додати розмір з одним значенням (Наприклад, висота=0) щоб зробити змінні послідовні.

ERDDAP™не обробляти складні дані (наприклад, моделі, які використовують сіточку трикутників) добре. Ви можете використовувати ці дані вERDDAP™створення двох або більше даних вERDDAP™ (так, щоб всі зміни даних в кожному новому датасеті діляться тим самим набором змінних осі) , але це не те, що користувачі хочуть. Для деяких даних, ви можете розглянути, що це звичайний сітчастий варіант набору даних і надання, що крім оригінальних даних. Деякі програмне забезпечення для клієнтів можуть працювати тільки з регулярною сіткою, тому, що ви досягнете додаткових клієнтів.  

Випробовані дані

Деякі дані сітки мають складну структуру. Наприклад, рівень супутника 2 ("Довгий трек") дані не використовують просту проекцію. Модельтори (та інші) часто працюють з сітчастими даними на різних нециліндричних проектах (Наприклад, конічна, полярна стереографічна, штативна) або в неструктурованих сітках (складна структура даних) й Деякі кінцеві користувачі хочуть, щоб ці дані не втратили інформації. Для клієнтів,ERDDAP™може служити дані, як це, тільки якщоERDDAP™Адміністратор розбиває оригінальні дані в кілька даних, з кожної частини, включаючи змінні, які діляться однаковими змінами осі. Так, що здається непарним для людей, які беруть участь, і це відрізняється від більшостіOPeNDAPсервери. АлеERDDAP™Підкреслює створення даних, доступних у багатьох форматах. Що можливо, томуERDDAP™використовує / вимагає більш рівномірну структуру даних. Хоча це трохи незручно (i.e., відрізняється від очікувань) йERDDAP™може розподілити дані про проект.

\[Так,ERDDAP™може мати недоліки для структури даних, але зберігати вимоги до вихідних форматів. Але це призведе до злиття багатьох користувачів, зокрема новачків, так як багато хто здавалося б, дійсні запити для даних з різними структурами будуть недійсними, оскільки дані не вписуються в тип файлу. Ми продовжуємо повертатися до поточного дизайну системи.\]

Деякі кінцеві користувачі хочуть, щоб дані в лівій циліндричній проекції, такі як Equirectangular / пластина carrée або Mercator) для зручності використання в різних ситуаціях. Для цих ситуацій ми заохочуємоERDDAP™адміністратор для використання інших програм (NCO?Matlab? Р? Ім'я * ...?) перепроектувати дані на географічну (Еквиктивна проекція / пластина карре) або іншої циліндричної проекції та слугує формою даних вERDDAP™як різні дані. Це схоже на те, що люди роблять, коли вони перетворюють рівень супутника 2 даних на рівень 3 даних. Один такий інструментNCOякий пропонує варіанти розширення для regridding даних.

ГІС та репроектування даних

Оскільки ГІС-світ часто орієнтований на картографію, ГІС-програми зазвичай пропонують підтримку для відновлення даних, тобто, розміщення даних на карті з різною проекцією.

В даний часERDDAP™не має інструментів для відновлення даних. Замість цього ми рекомендуємо використовувати зовнішній інструмент, щоб зробити варіант збору даних, де дані було перероблено з початкової форми на прямокутну форму (широта довгота) масив підходить дляERDDAPй

На нашу думку, CF/DAPсвіт трохи відрізняється від світу ГІС і працює на невеликому рівні.ERDDAP™відображає це. В цілому,ERDDAP™призначений для роботи в першу чергу з даними (не карти) не хоче змінити (e.g., репроект) дані. ДляERDDAP™, сітчасті дані часто/зазвичайно пов'язані з значеннями лону та циліндричної проекції, а не деякими значеннями проекції x,y. У будь-якому випадку,ERDDAP™не робіть нічого з проекцією даних, він просто переходить дані через те, що з його поточною проекцією, на теорії, що репроектіон є значною зміною даних іERDDAP™не потрібно брати участь у значних змінах. Крім того, подальші користувачі можуть знову перепроектувати дані, які б не було так само, як тільки зробити одну репроектацію. (Так, якщоERDDAP™Адміністратор хоче запропонувати дані в іншому проекції, дрібно; просто перепроектувати в автономному режимі дані і запропонувати, що як різні дані, що зберігаються вERDDAPй Багато супутникових даних пропонуються як те, що рівень дзвінків NASA 2 (свінгери) і як рівень 3 (Етекторний проекція) версія.) КолиERDDAP™Карти (прямо або черезWMSабо KML) йERDDAP™В даний час пропонуються лише карти з проекцією Equirectangular / пластинчастий карре, який, відповідно, приймається самими картографічними програмами.

Ми заохочуємоERDDAP™Адміністратори для використання іншої програми (NCO?Matlab? Р? Ім'я * ...?) перепроектувати дані на географічну (Еквиктивна проекція / пластина карре) або іншої циліндричної проекції та слугує формою даних вERDDAP™як різні дані. Це схоже на те, що люди роблять, коли вони перетворюють рівень супутника 2 даних на рівень 3 даних. Один такий інструментNCOякий пропонує варіанти розширення для regridding даних.

Ми сподіваємося, щоERDDAP™будуть вбудовані інструменти, які пропонують карти з іншими проекціями в майбутньому. Ми також сподіваємося на краще підключення до ГІС світу в майбутньому (інші, ніж струмWMSПослуги) й Він страшний, що в цьому "сучасному" світі, посилання між CF /DAPсвіт і ГІС світ ще настільки слабкий. І з тих речей, які знаходяться у списку. (Якщо ви хочете допомогти, можливо, з підключеннямERDDAP™to MapServer, будь ласка, по електронній пошті Кріс. Джон на noaa.gov .)

Типи даних

ERDDAP™підтримує такі типи даних (імена є конфіденційними;'u'префіксні стенди для "без знаків"; кількість назв в інших системах - кількість біт) :

Увійти

  • Увійти підписала ціле значення з діапазоном -128 до 127. В інших системах це іноді називається int8. Це називається "тінінт" за допомогою SQL і Cassandra. ERDDAP™Перекладиболеанз деяких джерел (e.g., SQL та Кассандра) в байтахERDDAP™з значенням 0=false, 1=true та 127=missing\_valueй

уніформа

  • уніформа має не позначені цілі значення з діапазоном 0 до 255. В інших системах іноді називають uint8.

шемале

  • шемале підписала ціле значення з діапазоном -32768 до 32767. В інших системах це іноді називається int16. Це називається "малайт" від SQL і Cassandra.

втрьох

  • втрьох має не позначені цілі значення з діапазоном 0 до 65535. В інших системах це іноді називається uint16.

Увійти

  • Увійти підписала ціле значення з діапазоном -2147483648 до 2147483647. В інших системах це іноді називається int32. Це називається "інтегер|свінгери (?) " by SQL і "int" від Cassandra.

Умань

  • Умань має не позначені цілі значення з діапазоном 0 до 4294967295. В інших системах це іноді називається uint32.

довгий

  • довгий підписала ціле значення з діапазоном -9223372036854775808 до 9223372036854775807. В інших системах це іноді називається int64. Це називається "bigint|свінгери (?) " за допомогою SQL і "bigint" від Cassandra. Оскільки багато типів файлів не підтримують довгих даних, їх використання дискуровані. При можливості використовуйте подвійний замість (Переглянути нижче) й

втрьох

  • втрьох має не позначені цілі значення з діапазоном 0 до 18446744073709551615 В інших системах іноді називають uint64. Оскільки багато типів файлів не підтримують дані, їх використання дискуровані. При можливості використовуйте подвійний замість (Переглянути нижче) й

плавати

  • плавати - IEEE 754 плав. з діапазоном приблизно +/- 3.402823466e+38. В інших системах це іноді називається float32. Це називається "реальний|плавати (?) |мармур (?) |свінгери (?) " by SQL і "float" від Cassandra. Особливе значення NaN означає Not-a-Кількість. ERDDAP™перетворює позитивні та негативні значення нескінченності на NaN.

подвійний

  • подвійний є подвійним з діапазоном близько 754 +/- 1.7976931348623157E+308. В інших системах, це іноді називається float64. Це називається "подвійна точність|плавати (?) |мармур (?) |свінгери (?) " by SQL і "double" від Cassandra. Особливе значення NaN означає Not-a-Кількість. ERDDAP™перетворює позитивні та негативні значення нескінченності на NaN.

мар

  • мар є одним, 2-byte (16-біт) Unicode UCS-2 характервід\u0000 (#0) через\uffff (#65535) й \uffff's визначення не-a-Character, аналогове до подвійного значення NaN. Використання char дискуровані через багато типів файлів або не підтримують chars або тільки підтримують 1-byte chars (Переглянути нижче) й Враховуйте за допомогою String замість. Користувачі можуть використовувати змінні char, щоб зробити графіки.ERDDAP™перетворить символи до свого номера коду Unicode, який може використовуватися як числових даних.

Ступінь

  • Ступінь - послідовність 0 або більше, 2-байт (16-біт) Unicode UCS-2 символий ERDDAP™Використовуйте / перегляньте рядок 0-довжини у вигляді відсутніх значень.ERDDAP™не підтримує справжній рядок null. Теоретична максимальна довжина рядка 2147483647 символів, але є, ймовірно, різні проблеми в різних місцях навіть з дещо коротшим Strings. ЗареєструватисяERDDAP's String для персонажа SQL, varchar, характер різниться, бінарний, варбінарний, інтервал, масив, мультисет, xml і будь-який інший тип даних бази даних, який не підходить чисто з будь-яким іншимERDDAP™тип даних. ЗареєструватисяERDDAP's String for Cassandra's "text" і будь-який інший тип даних Кассандра, який не вписується чисто з будь-яким іншимERDDAP™тип даних.  

ДоERDDAP™в2.10,ERDDAP™не підтримував невизнаних цілих типів внутрішньо і запропонував обмежену підтримку у своїх читачів даних і письменників.

Обмеження типу даних

Ти можеш думатиERDDAP™як система, яка має віртуальні дані, і яка працює шляхом зчитування даних з джерела даних у внутрішню модель даних і написання даних на різні послуги (наприклад,,,(OPeN)DAPйWMS) та типи файлів у відповідь на запити користувачів.

  • Кожен вхідний зчитувач підтримує підбір типів данихERDDAP™опори. Отже, читання даних вERDDAP- внутрішні структури даних не є проблемою.
  • Кожен вихідного письменника також підтримує підбір типів даних. Це проблема томуERDDAPмає стискати, наприклад, довгі дані у типи файлів, які не підтримують довгих даних.  

Нижче наведено пояснення обмежень (чи ні) різних виводних письменників і якERDDAP™проблеми. Такі ускладнення є властивою частиноюERDDAPМета створення систем депарації, що передається.

АСКII

  • АСКII (.csv,.tsvта ін.) текстові файли -
    • Всі нумеричні дані написані шляхом його подання (з відсутніми значеннями даних, що відображаються як 0-довжні рядки) й

    • НемовляERDDAP™записує довгострокові та удовго значення правильно до текстових файлів ASCII, багато читачів (e.g., списання програм) не можна правильно боротися з довгими і подовженими значеннями і замість перетворення їх на подвійні значення (з втратою точності в деяких випадках) й

    • Шар і String дані написані через JSON Strings, які керують всіма героями Unicode (невагомо, «незвичайні» символи за межами ASCII #127, наприклад, символ Євро з'являється як «\u20ac») й

Сонце

  • Сонце (.jsonй.jsonlCSVта ін.) текстові файли -
    • Всі нумеричні дані написані за допомогою його String уявлення.
    • Шар і String дані написані як JSON Strings, які керують всіма героями Unicode (невагомо, «незвичайні» символи за межами ASCII #127, наприклад, символ Євро з'являється як «\u20ac») й
    • З’являються значення для всіх типів нумеричних даних.  

.nc3 фото

  • .nc3 файли, які не мають відношення до цілих типів даних. До CF v1.9 CF не підтримує не позначені цілі типи. З цим,ERDDAP™2.10+ дотримується стандарту NUG і завжди додає атрибуту "\_Unsigned" з значенням "true" або "false" для позначення, якщо дані від не позначеної або підписаної змінної. Всі атрибути цілого запису (Наприклад,) з підписаними значеннями (наприклад, ubyte)actual\_rangeатрибут з значеннями 0 до 255, з'являється як атрибут байт з значеннями 0 до -1 (переклад двох доповнювачів значення зовнішнього значення). Не можна легко дізнатися, які (значені) атрибути повинні прочитати як не позначені атрибути.ERDDAP™підтримує атрибут "\_Unsigned", коли він читає.nc3 фото.
  • .nc3 файли, які не підтримують довгострокові або віддалені типи даних.ERDDAP™з цим тимчасово перетворюючи їх, щоб бути подвійними змінними. Двічі можуть точно представляти всі значення до +/- 9,007,199,254,740,992 який є 2^53. Це недосконале рішення.Unidataвідмова зробити незначне оновлення.nc3, щоб боротися з цими і пов'язаними проблемами, цитуючи.nc4 000 р. (велика зміна) як розчин.
  • Специфікація CF (до v1.9) Вона підтримує тип даних char, але незрозуміло, якщо char призначено тільки як будівельні блоки масивів char, які ефективно струнуть. Питання до їх переліку розсилки, що надавалися лише відповідями. Через ці ускладнення краще уникати змінних вугілля вERDDAP™і використовувати Струнні змінні, коли це можливо.
  • Традиційно,.nc3 фото тільки підтримані рядки з ASCII-encoded (7-біт, #0 - #127) символи. НУГ (іERDDAP) продовжити (від ~ 2017) в тому числі атрибут "\_Encoding" з значенням "ISO-8859-1" (розширення ASCII, що визначає всі 256 значення кожного 8-бітного персонажа) або "UTF-8" вказати, як зашифровано дані String. Інші кодування можуть бути юридичними, але дискуровані.  

.nc4 фото

  • .nc4 фото підтримка всіхERDDAP- типи даних.

NCCSV файли

NCCSV 1.0 файли не підтримують будь-які не позначені типи даних. NCCSV 1.1+ файлипідтримка всіх не позначених типів даних.  

DAP

  • (OPeN)DAP (English, Українська, Français...) до
    • (OPeN)DAPручки короткі, ushort, int, uint, float і double значення правильно.
    • (OPeN)DAPмає тип даних «byte», який визначає як невизнаний, тоді як історично, THREDDS іERDDAP™лікували «завдяки» як підписано їх(OPeN)DAPпослуги. Для вирішення цього краще,ERDDAP™2.10+ дотримується стандарту NUG і завжди додає атрибуту "\_Unsigned" з значенням "true" або "false" для позначення, якщо дані є те, щоERDDAP™Дзвінки за допомогоюte або ubyte. Всі атрибути байтів і ubyte написані як атрибути "byte" з підписаними значеннями (наприклад, ubyteactual\_rangeатрибут з значеннями 0 до 255, з'являється як атрибут байт з значеннями 0 до -1 (переклад двох доповнювачів значення зовнішнього значення). Немає простих способів дізнатися, які атрибути «byte» повинні прочитати як атрибути ubyte.
    • (OPeN)DAPне підтримує підписані або невизнані довги.ERDDAP™пропозиції з цим тимчасово перетворюючи їх, щоб бути подвійними змінними та атрибутами. Двічі можуть точно представляти всі значення до 9,007,199,254,740,992 який є 2^53. Це недосконале рішення.OPeNDAP (організація) відмова зробити незначне оновленняDAP2.0 для вирішення цих і пов'язаних проблем, цитуванняDAP4 000 р. (велика зміна) як розчин.
    • Бо(OPeN)DAPне має окремого типу даних і технічно лише підтримує 1-байтні символи ASCII (#0 - #127) в Strings змінні дані char з'являються як 1-character-long Strings в(OPeN)DAP.das, .dds, .dods реагування.
    • Технічно,(OPeN)DAPспецифікація тільки підтримує рядки з символами ASCII-encoded (#0 - #127) й НУГ (іERDDAP) продовжити (від ~ 2017) в тому числі атрибут "\_Encoding" з значенням "ISO-8859-1" (розширення ASCII, що визначає всі 256 значення кожного 8-бітного персонажа) або "UTF-8" вказати, як зашифровано дані String. Інші кодування можуть бути юридичними, але дискуровані.  

Коментарі до Data Type

  • У зв'язку з поганеною підтримкою для довгих, удовгих і char даних у багатьох типах файлів, ми дискуруємо використання цих типів даних уERDDAPй Коли це можливо, використовуйте подвійний замість довгого і подовженого, і використовуйте String замість char.  
  • Метадані - Бо(OPeN)DAP's .das і .dds відповіді не підтримують довгого або подовженого атрибутів або типів даних (і замість того, щоб показати їх як подвійні) , ви не можете використовуватиERDDAP's tabular уявлення метаданих, як показано вhttp.../erddap/ Контакти Українська datasetID Веб-сайт .html (наприклад, https://coastwatch.pfeg.noaa.gov/erddap/info/cwwcNDBCMet/index.html ) (які ви також можете отримати в інших типах файлів, наприклад, .csv,.htmlTableй.itxй.jsonй.jsonlCSV1й.jsonlCSVй.jsonlKVPй.matй.ncй.nccsvй.tsvй.xhtml) чи.nccsvВідповідь метаданих (наприклад, https://coastwatch.pfeg.noaa.gov/erddap/tabledap/cwwcNDBCMet.nccsvMetadata Мали.nccsvМетадані доступні тільки для табличних даних) , як з яких підтримує всі типи даних (помітно, довгий, удовгий і char) й  

Файли медіа

Не всі дані масиви чисел або тексту. Деякі дані складаються з або включають медіа файли, такі як зображення, аудіо та відео файли.ERDDAP™має спеціальні функції для полегшення доступу до медіа файлів. Це два крокові процеси:  

  1. Зробіть кожен файл, доступний за допомогою власної URL-адреси, через систему, яка підтримує запити діапазону. Найпростіший спосіб зробити це, щоб покласти файли в каталозі, якийERDDAP™має доступ до. (Якщо вони в контейнері люблять.zipфайл, розпакувати їх, хоча ви можете запропонувати.zipФайл для користувачів теж.) Далі робимоEDDTableЗ альбомуFileNamesDataset, щоб зробити файли доступними черезERDDAP™, можливо, черезERDDAPР"files"системий

Всі файли, доступні через EDDTableЗ альбомуFileNames іERDDAPР"files"підтримка системиЗапити діапазонуй Нормально, коли клієнт (e.g., веб-сайт) Виконує запит на URL, він отримує весь файл як відповідь. Але з вимогою байтів, запит визначає діапазон байтів з файлу, і сервер тільки повертає ці байти. Це доречно тут, тому що аудіо та відеоплеєри в браузерах працюють тільки якщо файл можна отримати за допомогою протоколів байтів.

Додатково: Якщо у вас є більше одного набору даних з пов'язаними медіа файлами, ви можете зробити лише один EDDTableFromFileName, який має підкладку для кожної групи файлів. Перевага полягає в тому, що якщо ви хочете додати нові медіа файли для нового набору даних, все, що ви повинні зробити, це створити нову папку і покласти файли в цій папці. Папка та файли будуть автоматично додані в EDDTableЗ альбомуFileNames dataset.

  1. Додатково: Якщо у вас є дані, які містять посилання на медіа файли, додайте його доERDDAPй Наприклад, у вас є файл .csv з рядом для кожного разу хтось бачив кит і стовпчик, який включає ім'я файлу зображення, пов'язаного з цим прицілом. Якщо ім'я файлу зображення є просто ім'я файлу, наприклад, Img20141024T192403Z, не повний URL, то потрібно додатифайлAccessBase Урл і / або файлAccessSuffixатрибути метаданих для цьогоdataVariableякий визначає базову кількість і suffix для цих назв файлів. Якщо ви зробили файли, доступні за допомогою EDDTableFromFileNames, URL буде у вигляді Головна /erddap/files/ datasetID Українська Наприклад,
        <att name="fileAccessBaseUrl">*someBaseURL*</a>  
<att name="fileAccessSuffix">.png</a>

Якщо є.zipабо інший файл контейнера з усіма медіа файлами, пов'язані з зміною даних, ми рекомендуємо також зробити цей файл доступним для користувачів (див. крок 1 вище) а потім ідентифікувати йогофайлAccessАрхів Ульатрибут.

\[ПочатиERDDAP™в1.82\]Якщо ви робите перший крок вище (або обох кроків) , потім коли користувач переглядаєERDDAP™ "files"система для даних (або попросить бачити підмножину даних через.htmlTableзапит, якщо ви зробили другий крок) йERDDAP™покаже ікону «?» зліва від імені файлу. Якщо користувач захопить цю ікону, то він буде бачити спливаюче зображення або аудіоплеєр, або відеоплеєр. Браузери тільки підтримують обмежену кількість типів

  • зображення (English, Українська, Français...) й
  • аудіо (.mp3, .ogg, .wav) й
  • відео файли (.mp4, .ogv, . Веб-сайт) й

Підтримка різних версій браузерів на різних операційних системах. Якщо у вас є вибір якого типу файлу, щоб запропонувати, він має сенс запропонувати ці види.

Або, якщо користувач натискає на ім'я файлу, показано наERDDAP™веб-сторінки, їх браузер покаже образ, аудіо або відеофайл як окрема сторінка. Це в основному корисно для перегляду дуже великого зображення або відео, масштабованого на повноекранному екрані, замість спливаючих вікон.

Робота з файлами AWS S3

Веб-сервіс Amazon (АВІ) є продавцемхмарні обчисленняпослуги.С3Система зберігання об'єктів, що пропонується AWS. Замість ієрархічної системи каталогів і файлів традиційної файлової системи (як жорсткий диск у вашому ПК) , S3 пропонує лише "греки", які містять "об'єкти" (Зателефонуйте нам"files") й

Для файлів ASCII (Наприклад, .csv) йERDDAP™може працювати з файлами у відро безпосередньо. Єдине, що потрібно зробити, це вказати<fileDir> для набору даних за допомогою певного формату для відро AWS, наприклад, https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ й Не варто використовувати<cacheЗ альбомуUrl> . Докладніше

Але для бінарних файлів (Наприклад,.nc, .grib, .bufr, і.hdfФайли) , вам потрібно використовувати<cacheЗ альбомуUrl> описано нижче.ERDDAP, netcdf-java (якіERDDAP™Використовуйте для читання даних з цих файлів) Програма наукових даних призначена для роботи з файлами в традиційному файловій системірівень блокудоступ до файлів (що дозволяє читати шматки файлу) , але S3 тільки пропозиціїрівень файлу (об'єкт) доступ до файлів (що тільки дозволяє читати весь файл) й AWS пропонує альтернативу S3,Еластичний блок магазин (ЕБС) ), яка підтримує доступ до рівня блоків до файлів, але це дорожче, ніж S3, тому вона рідко використовується для сипучих зберігання великих кількостей файлів даних. (Отже, коли люди говорять зберігати дані в хмарі (С3) Недорогий, як правило, яблука до апельсинів.)

S3 Бакети

Зміст гречки. Ключі. Об'єкти. Делімітатори.
Технічно, S3 відро не організовані в ієрархічної файловій структурі, як файлова система на комп'ютері. Замість відро тільки містять "об'єкти" (Файли) кожен з яких має "під ключ" (Ім'я) й Приклад ключа в тому, що ноа-гос17 відро

ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc

Відповідна УРЛ для цього об'єкта

https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/2019/235/22/OR\_ABI-L1b-RadC-M6C01\_G17\_s20192352201196\_e20192352203569\_c20192352204013.nc

AWS підтримує невелику варіацію, як сконструюється URL, алеERDDAP™вимагає цього певного формату:    https://bucketName.s3.region.amazonaws.com/key
Це загальна практика, як з цим прикладом, щоб зробити ключові імена, як ієрархічний шлях плюс ім'я файлу, але технічно вони не є. Так як це загальний і корисний,ERDDAP™лікує ключі з / в тому випадку, якщо вони є ієрархічним шляхом плюс ім'я файлу, і ця документація буде посилатися на них так. Якщо ключі відра не використовують / ABI-Lib.2018.052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_s20180522247575), потімERDDAP™буде просто обробляти весь ключ як довга назва файлу.

Приватне проти публічних греків --- Адміністратор відро S3 може зробити відро і його вміст громадськістю або приватним. Якщо громадськість, будь-який файл у відрі може бути завантажений будь-яким, використовуючи URL для файлу. Amazon маєВідкриті даніПрограма, яка проводить публічні дані (включаючи дані зNOAA, НАСО та УСГ) для безкоштовного завантаження файлів з тих відро. Якщо відро є приватними, файли в відрі доступні тільки для уповноважених користувачів і AWS стягує плату (зазвичай оплачується власником відра) для завантаження файлів на не-AWS S3 комп'ютер.ERDDAP™може працювати з даними в державних і приватних відроях.

AWS Credentials

Щоб зробити це так, щобERDDAP™може прочитати вміст приватних відро, вам потрібно значення AWS і вам потрібно зберігати файл облікових даних в стандартному місці такERDDAP™може знайти інформацію. Дивитися AWS SDK дляJava2.x документація:Налаштування параметрів за замовчуваннямй (Варіант зберігати значення якJavaПараметри командного рядка в\[домка\]/bin/setenv.sh може бути хорошим варіантом.)

AWS /файли /

  • /файли/ система -- Про насERDDAP™ /файли / системидозволяє користувачам завантажувати вихідні файли для набору даних. Ми рекомендуємо вам перетворити це на всі дані з вихідними файлами, оскільки багато користувачів хочуть завантажити оригінальні вихідні файли.
    • Якщо файли знаходяться в приватному S3 відро, запит користувача для завантаження файлу буде оброблятисяERDDAP™, яка буде читати дані з файлу, а потім передавати її користувачеві, таким чином, збільшити навантаження на ваш файлERDDAP™, використовуючи вхідні та вихідні смуги, і виконуючи вас (Про насERDDAP™адміністратор) оплачувати збір даних на AWS.
    • Якщо файли знаходяться в публічному відро S3, запит користувача для завантаження файлу буде переадресовано на URL-адресу AWS S3 для цього файлу, тому дані не протікаються черезERDDAP™, таким чином, зменшення навантаження наERDDAPй І якщо файли на Amazon Open Data (Безкоштовно) громадський відро, потім ви (Про насERDDAP™адміністратор) не доведеться оплатити будь-які дані, які вимагаються до AWS. Таким чином, є велика перевага, що обслуговує дані з публічної інформації (не приватне) S3 відро і величезна перевага для подачі даних з відкритих даних Amazon (Безкоштовно) відро.

ERDDAP™і AWS S3 Бакети

ERDDAP™і AWS S3 Бакети
На щастя, після особливих зусиль,ERDDAP™має ряд функцій, які дозволяють боротися з необхідними проблемами роботи з доступом до рівня S3 до файлів, що значно ефективніше:

  • \[Відмова: Робота з відроами AWS S3 є великою кількістю додаткових робіт. AWS є величезною екосистемою послуг і функцій. Вчимося. Займає час і зусилля, але це робиться. Ви будете працювати з пацієнтом. Шукаю/основу допомогу (Українська)Документація AWSВеб-сайтиСтейк перекриттяі звичайний ERDDAP™параметри підтримки) якщо / коли ви застрягнете.\]
     
  • Це може бути важко навіть дізнатися структуру каталогів і імен файлів у відро S3.ERDDAP™має рішення для цієї проблеми: EDDTableЗ альбомуFileNames має особливий\\\* зНаФліопція, яка дозволяє користувачам переглядати вміст S3 відро (і завантажити файли) через дані"files"варіант. ЄПриклад цього нижчей  
  • ERDDAP™може читати дані ззовнішніх компресованих файлів данихЯкщо файли на S3 зберігаються як.gzй.gzipй.bz2, .Z, або інші види зовнішніх компресованих файлів даних, які можуть різко (2 - 20Х) вирізати витрати на зберігання файлів. Часто немає часу штрафу за використання зовнішніх компресованих файлів, так як час, що зберігається шляхом передачі меншого файлу з S3 доERDDAPзатемно балансує додатковий час, необхідний дляERDDAP™щоб видалити файл. Щоб використовувати цю функцію, ви просто повинні переконатися, що дані<ФайлNameRegex> дозволяє компресувати тип файлів (наприклад, додавання (|.gz) до кінця regex) й  
  • Для найбільш поширеного випадку, де у вас єERDDAP™встановлена на вашому ПК для тестування/розробки та де дані має файли бінарних даних, які зберігаються як об'єкти у відро S3, один підхід до отримання даних вERDDAP™є:
    1. Створення каталогу на вашому комп'ютері для зберігання декількох файлів даних тестових даних.

    2. Завантажте два файли даних з джерела до каталогу, які ви просто створили.

    3. ЗареєструватисяГенераціяДатасетСмлдля створення шматочкаdatasets.xmlдля набору даних на основі двох локальних файлів даних.

    4. Перевірити те, що датасет працює за бажаннямДатита/або локальніERDDAPй

      Наступні кроки роблять копію цих даних (які отримають дані від S3 відро) на громадськістьERDDAPй

    5. Статус на сервериdatasets.xmlдля збору данихdatasets.xmlдля громадськостіERDDAP™які будуть служити даними.

    6. Створіть каталог на публічнийERDDAP- локальний жорсткий диск для зберігання кешу тимчасових файлів. Не використовуйте багато дискового простору (див. cacheSizeGB нижче) й

    7. Змінення значення індексу даних<fileDir> тег так що він вказує на каталог, який ви просто створили (Хоча каталог порожній) й

    8. ДодатиcacheЗ альбомуUrlтег, який визначає назву відра даних і додатковий префікс (i.e., каталог) в конкретномуФормат URL-адреси Aws S3ERDDAP™Задоволенняй

    9. Додати [<cacheSizeGB>] (#cachefromurl) тег до xml (наприклад, 10 є гарним значенням для більшості даних) розповістиERDDAP™обмежити розмір локального кешу (i.e., не намагайтеся кешувати всі віддалені файли) й

    10. Дивитися, якщо це працює в публічному режиміERDDAPй Зверніть увагу, що перший разERDDAP™навантажує набір даних, він займе довгий час для завантаження, оскількиERDDAP™необхідно завантажити і читати всі файли даних.

Якщо датасет є величезною колекцією величезних сітчастих файлів даних, це займе дуже довго і буде непрактично. У деяких випадках для мережевих файлів даних,ERDDAP™може витягти необхідну інформацію (e.g., часовий пункт для даних у сітчастому файлі даних) від імені файлу і уникнути цієї проблеми. Про насАгрегація через Ім'я файлуй

  1. Додатково (але особливо для EDDTableЗ альбомуFiles datasets) , ви можете додатинТримтег до даних, щоб розповістиERDDAPвикористовувати більше 1 ниток при відповіді на запит користувача на дані. Це мінімує наслідки затримки, що виникає приERDDAP™Читає файли даних з (Головна) AWS S3 відро в місцевий кеш і (апошні) пригнічує їх.

AWS S3 відкритих даних

У складіNOAAРПрограма великих данихйNOAAмає партнерські відносини з п'ять організацій, в тому числі AWS, "дослідити потенційні переваги зберігання копій ключових спостережень і моделей виходів у хмарі, щоб дозволити обчислення безпосередньо на даних без необхідності подальшого розподілу". AWS містить дані, які він отримує відNOAAяк частина програми, яка пропонує публічний доступ до великої колекціїВідкриті дані на AWS S3з будь-якого комп’ютера, будь то екземпляр комп’ютера Amazon (в оренду комп'ютер) на AWS мережі або власний комп'ютер на будь-якій мережі. Приклад нижче передбачає, що ви працюєте з доступом до публічних даних.

Доступ до файлів в AWS S3 Bucket

Для приватного відра даних S3 власник відра повинен надати вам доступ до відро. (Переглянути документацію AWS.)

У всіх випадках вам знадобиться обліковий запис AWS, оскільки AWS SDK дляJava (якіERDDAP™використовувати для отримання інформації про вміст відра) вимагає облікових записів AWS. (докладніше на цьому нижче)

ERDDAP™може отримати тільки доступ до AWS S3 відро, якщо ви вказали [<cacheЗ альбомуUrl>] (#cachefromurl) (або)<fileDir>) в певному форматі: https://bucketName.s3.aws-region.amazonaws.com/prefix/
де

  • ВідроІм'я є короткою формою назви відро, наприклад, noaa-goes17 .
  • Авс-регіон, наприклад, нас-схід-1, знаходиться з стовпчика "Регіон" в одному з таблиць столівAWS Сервіс кінцеві точкиде знаходиться відро.
  • Передфікс необов'язково. Якщо присутній, то він повинен закінчитися'/'й

Наприклад, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
Цей формат URL є одним з рекомендацій AWS S3: дивДоступ до пряжкиіцей опис префіксівйERDDAP™вимагає, щоб ви об'єднали URL-адресу відра і необов'язковий префікс в одну URL для того, щоб вказати<cacheЗ альбомуUrl> (або<fileDir>), де розміщені файли.

Тест громадськості AWS S3 Бакети

Для публічних відро ви можете перевірити URL-адресу відра каталогу AWS S3 у вашому браузері, наприклад,, https://noaa-goes17.s3.us-east-1.amazonaws.com Якщо URL-адреса відра правильно і доречно дляERDDAP, він поверне XML-документ, який має (частковий) список вмісту цього відра. На жаль, повна URL (JavaScript licenses API Веб-сайт Go1.13.8) щоERDDAP™не працює в браузері. Компанія AWS не пропонує систему для перегляду ієрархії відро легко у вашому браузері. (Якщо це неправильно, будь ласка, по електронній пошті Кріс. Джон на noaa.gov. Інакше, Amazon, будь ласка, додайте підтримку для цього!)

Перегляд вмісту пряжки

S3 відра часто містять пару категорій файлів, в парі псевдоповідомлень, які можуть стати пароюERDDAP™дані. Щоб зробитиERDDAP™дані, необхідно знати стартовий каталог для<cacheЗ альбомуUrl> (або<fileDir>) і формат імен файлів, які вказують на те, що підмножити файли. Якщо ви намагаєтеся переглянути весь вміст відра в браузері, S3 просто покаже вам перші 1000 файлів, які недостатньо. В даний час найкращий спосіб для вас, щоб переглянути всі вміст відра, щоб зробитиEDDTableЗ альбомуFileNamesмета (на ПКERDDAP™та/або на громадськістьERDDAP) , який також дає вам простий спосіб перегляду структури каталогів і завантаження файлів. Про нас<fileDir> для цього буде URL, який ви зробили вище, наприклад, https://noaa-goes17.s3.us-east-1.amazonaws.com й\[Чому не AWS S3 пропонує швидкий і простий спосіб, щоб зробити це без облікового запису AWS?\]Зверніть увагу, що коли я роблю це на моєму комп'ютері на мережі немазон, з'являється, що Amazon сповільнює відповідь на хитрість (до 100 (?) Файли на шматку) після перших кількох шматків (від 1000 фото на шматки) скачати. Оскільки відро може мати величезну кількість файлів (Noaa-goes17 має 26 млн) , отримувати всі вміст відра може прийняти EDDTableЗ альбомуFileName кілька годин (Наприклад, 12!) закінчити.\[Amazon, це право?!\]

Виготовлення EDDTable ВідFileNames Dataset з AWS S3 Bucket

Якщо у вас є ім'я відра, але не вже є список файлів у відро S3 або префікс, який визначає розташування відповідних файлів у відрі, скористайтеся інструкціями нижче, щоб зробити EDDTableЗ альбомуFileNames dataset так ви можете переглянути каталог ієрархію відро S3 черезERDDAPР"files"система.

  1. Відкрийте обліковий запис AWS ERDDAP™використанняAWS SDK дляJavaщоб отримати відро інформацію від AWS, так що вам потрібностворити та активувати обліковий запис AWSй Це досить велика робота, з великою кількістю речей, щоб дізнатися.  
  2. Поставте свої значення AWS, деERDDAP™Знайти їх. Дотримуйтесь інструкційНалаштуйте значення AWS та регіон для розвиткудоERDDAP™ (зокрема, AWS SDK дляJava) Ви зможете знайти та використовувати ваші облікові дані AWS. ЯкщоERDDAP™не можна знайти облікові дані, ви побачите скачати Ім'я *ERDDAP's log.txt файл.

Hint для Linux і Mac OS: файл облікових даних повинен бути в домашньому каталозі користувача, який працює Tomcat (іERDDAP) (для цього пункту, ми припустимо, користувач=tomcat) у файлі ~/.aws/credentials . Не припустимо, що ~ є /home / tomcat -- насправді використовувати cd ~ для того, щоб дізнатися, куди думають операційна система ~ для користувача = tomcat. Створіть каталог, якщо він не існує. Крім того, після того, як ви помістили файл облікових даних, переконайтеся, що користувач і група для файлу є tomcat, а потім використовувати chmod 400 облікових даних, щоб переконатися, що файл читає-тільки для користувача=tomcat.

  1. Створіть URL-адресу відра вформатуванняERDDAP™Задоволення, наприклад, https://noaa-goes17.s3.us-east-1.amazonaws.com й (для громадських відро) Перевірте його в браузері, щоб переконатися, що він повертає XML-документ, який має частковий список вмісту цього відра.  
  2. ЗареєструватисяГенераціяДатасетСмлстворитиEDDTableЗ альбомуFileNamesмета:
    • Для стартового каталогу використовуйте цей синтаксис: \\З відOnTheFly, БоккетУрл наприклад, \\\ зНаФлі, https://noaa-goes17.s3.us-east-1.amazonaws.com/

    • Назва файлу regex? .\*

    • Рекурсія? Справедливість

    • перевантаження Що таке? 10080 р.

    • infoUrl? https://registry.opendata.aws/noaa-goes/

    • інститут?NOAA

    • резюме? ні (ERDDAP™автоматично створить гідний підсумок.)

    • Назва? ні (ERDDAP™автоматично створить гідне звання.) Як правило, ви повинні редагувати отриманий XML, щоб перевірити правильність і зробити поліпшення перед шматком даних, використовуючи його вdatasets.xmlй

  3. Якщо ви дотримуйтесь інструкцій вище і завантажте даніERDDAPВи створили EDDTableЗ альбомуFiles dataset. Як приклад, і для того, щоб зробити це простіше для будь-якого, щоб переглядати і завантажувати файли з Відраїв відкритих даних AWS, ми створили EDDTableЗ альбомуFileNames (див. список на https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) за майже всіAWS S3 Open Data відрой \[Кілька відро, які ми не включили або мають велику кількість файлів в кореневому каталозі (більше, ніж можна завантажити в розумній кількості часу) , або не дозволити доступу громадськості (не повинні бути громадськими?) , або запитувач Pays відро (e.g., Сентінель) й\]
    Якщо натиснути на кнопку"files"посилання для одного з цих даних, ви можете переглянути дерево каталогів і файли в цьому відро S3. Через дорогу\\\ * ВідOnTheFly EDDTableЗ альбомуFiles працює, ці каталоги завжди ідеально актуальні, тому щоERDDAP™отримайте їх на Якщо ви натиснете дерево каталогу до фактичного імені файлу і натисніть на ім'я файлу,ERDDAP™перенаправить запит на AWS S3, щоб ви можете завантажити файл безпосередньо з AWS. Ви можете переглянути цей файл.

Троубл? Якщо ваш EDDTableЗ альбомуFiles не завантажуєтьсяERDDAP™ (або ДасДдс) , див. у файлі log.txt для повідомлення про помилку. Якщо ви бачите скачати IllegalArgumentException: файл профілю не може бути порожнім, проблема полягає в тому, що AWS SDK дляJava (використанняERDDAP) не знайде файл облікових даних. Подивитись інструкції щодо критеріїв вище.  

Ми можемо самі зателефонувати одержувачу і узгодити зручний час і місце вручення квітів, а якщо необхідно, то збережемо сюрприз.

Далі можна зробитиERDDAP™дані, які надають користувачам доступ до даних у файлах.
Переглянути інструкціїERDDAP™і S3 Бакети (вище) й Для вибірки EDDTableЗ альбомуFileNames датасет, який ви зробили вище, якщо ви робите трохи походи навколо з каталогом і іменами файлів в дереві каталогів, він стає зрозумілим, що імена верхнього рівня (Наприклад: ABI-L1b-RadC) відповідати тим, щоERDDAP™викликати окремі дані. Відро ви працюєте з може бути схожим. Ви можете переслідувати створення окремих даних вERDDAP™для кожного з цих даних, використовуючи, наприклад, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
як<cacheЗ альбомуUrl>. На жаль, для цього конкретного прикладу, дані у відрі все, здається, рівень 1 або рівень 2 даних, якіERDDAP™ не дуже добре в, оскільки датасет є більш складною зборкою змінних, які використовують різні розміри.  

NcML файли

Файли NcML дозволяють вказати на-тільки зміни одного або декількох оригінальних джерелNetCDF (v3 або v4) .nc, .grib, .bufr, або.hdf (v4 або v5) файли, а потім матиERDDAP™лікування.ncфайли мл у вигляді вихідних файлів.ERDDAP™Приймуть участь дані.ncмл файлів в будь-який час.ncОчікується файли. NcML файли MUST мають розширення.ncр. ДивитисяUnidataДокументий NcML корисно, тому що ви можете зробити деякі речі з ним (наприклад, внесення різних змін до різних файлів у збірник, в тому числі додавання розмірів з певним значенням до файлу) , що ви не можете зробитиERDDAPРdatasets.xmlй

  • Зміни до.ncостаннюЗбережений час файлу призведе до того, що файл буде перезавантажений, коли перезавантаження даних, але зміни до основного.ncФайли даних не помітили.
  • Хін: NcML\*дуже\*чутливий до порядку деяких елементів у файлі NcML. Думка NcML вказуючи ряд інструкцій в зазначеному порядку, з наміром зміни вихідних файлів (стан при старті/топі NcML файл) у файлах призначення (стан в кінці / внизу NcML файл) й

Альтернативою NcML єNetCDFОператори (NCO) й Основна відмінність полягає в тому, що NcML є системою для внесення змін до (тому вихідні файли не змінені) , в той час якNCOможна використовувати для внесення змін до (або нові версії) Файли. ІNCOі NcML дуже гнучкі і дозволяють вам зробити практично будь-які зміни, які ви можете подумати про файли. Для того, щоб зробити те, що ви хочете зробити - перевірити веб для подібних прикладів. Обидва корисні інструменти для приготування netCDF іHDFФайли для використанняERDDAP, можливо, зробити зміни за межі того, щоERDDAPСистема маніпуляції може зробити.

Приклад #1: Додавання розміру часу з одним значенням Ось.ncмл файл, який створює новий зовнішній розмір (час, з 1 значенням: 1041379200) і додає, що розмір до пікової змінної у файлі A2003001.L3m\_DAY\_PIC\_pic\_4km.nc:

    <netcdf xmlns='https://www.unidata.ucar.edu/namespaces/netcdf/ncml-2.2'>
<variable name='time' type='int' shape='time' />
<aggregation dimName='time' type='joinNew'>
<variableAgg name='pic'/>
<netcdf location='A2003001.L3m\\_DAY\\_PIC\\_pic\\_4km.nc' coordValue='1041379200'/>
</aggregation>
</netcdf>

Приклад #2: Зміна значення часу Іноді джерело.ncфайл вже має значення часу і часу, але значення невірно (для ваших цілей) й Це.ncФайл мл говорить: для файлу даних "19810825230030-NCEI...", для змінної розмірів"time", встановити атрибут юнітів з 1970-01T00:00Z' і встановити значення часу, щоб бути 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Оператори (NCO)

Оператори NetCDF (NCO) включає десятки автономних, командно-лінійних програм, які приймають netCDF\[v3 або v4\]йHDF \[v4 або v5\]й\[.grib, .bufr,\]та/абоDAPФайли як вхід, потім працюють (Наприклад, для отримання нових даних, статистичної статистики, друку, гіперлабораторії, маніпулювання метаданих) і виведення результатів на екран або файли в текстових, бінарних, або netCDF форматах.NCOаналіз засобів масової інформації. Стиль оболонки-командиNCOдозволяє користувачам маніпулювати та аналізувати файли інтерактивно, або з виразними сценаріями, які уникають накладів вищих навчальних закладів. (зNCOГоловна) й

АльтернативаNCOПро насНЦМЛй Основна відмінність полягає в тому, що NcML є системою для внесення змін до (тому вихідні файли не змінені) , в той час якNCOможна використовувати для внесення змін до (або нові версії) Файли. ІNCOі NcML дуже гнучкі і дозволяють вам зробити практично будь-які зміни, які ви можете подумати про файли. Для того, щоб зробити те, що ви хочете зробити - перевірити веб для подібних прикладів. Обидва корисні інструменти для приготування netCDF іHDFФайли для використанняERDDAP, можливо, зробити зміни за межі того, щоERDDAPСистема маніпуляції може зробити.

Наприклад, можна використовуватиNCOщоб зробити блоки змінної часу в групі файлів, де вони не відповідали спочатку. Або, ви можете використовуватиNCOподати заявкуscale\_factorіadd\_offsetу групі файлів, деscale\_factorіadd\_offsetмають різні значення у різних вихідних файлах. (Або ви можете зараз боротися з тими проблемамиERDDAP™ЗареєструватисяEDDGridВідNcFilesUnpacked, який є варіантомEDDGridВідNcFiles, які розпаковують дані і стандартизують значення часу на низькому рівні, щоб мати справу з файлами збору, які мають різніscale\_factorйadd\_offset, або різного часу.)

NCOє безкоштовним і відкритим програмним забезпеченням, яке використовуєГПЛ 3,0ліцензія.

Приклад #1: Виготовлення вузлів EDDGridВідФайли та EDDTable З файлів наполягати, що блоки для даної змінної ідентичні у всіх файлах. Якщо деякі файли тривіально (не функціонально) відрізняється від інших (наприклад, часових одиниць "Други з 1970-01 00:00:00 UTC" верст "seconds since 1970-01-01T00:00:00Z"Ви можете використовуватиNCOРкицька. змінити блоки у всіх файлах, щоб бути ідентичними nco/ncatted -a юніти, час,o,c,'други з 1970-01T00:00Z' \*.nc
\[Для багатьох проблем, як це в EDDTableЗ... Файли даних, ви можете використовуватистандартизація ЩорозповістиERDDAPстандартизувати вихідні файли, як вони читаються вERDDAPй\]

Обмеження на розмір Dataset

Ви побачите багато посилань на "2 млрд" нижче. Більш точно, що посилання на 2,147,483,647 (2^31-1) , що є максимальним значенням 32-біту, підписаного цілим. У деяких комп'ютерних мовах, наприкладJava (якіERDDAP™написано в) Це найбільший тип даних, який може використовуватися для багатьох структур даних (наприклад, розмір масиву) й

Для значень String (наприклад, для змінних імен, імен атрибутів, значень атрибутів String та значень даних String) , максимальна кількість символів за Рядок вERDDAP™~2 млрд. Але в практично всіх випадках буде невелика або велика проблема, якщо String перевищує розумний розмір (Наприклад, 80 символів для імен змінних імен та імен атрибутів, і 255 символів для більшості значень атрибутів String та значень даних) й Наприклад, веб-сторінки, які відображають довгострокові змінні імена, будуть висунуті широкі та довгі змінні імена, якщо вони перевищують ліміт типу файлу відповіді.

Для роз'ємних даних:

  • Максимальна кількістьaxisVariables ~2 млрд. Максимальна кількістьdataVariables ~2 млрд. Але якщо датасет має > 100 змінних, він буде громіздкою для користувачів. І якщо датасет має >1 млн змінних, ваш сервер буде потрібно багато фізичної пам'яті, і є інші проблеми.
  • Максимальний розмір кожного виміру (axisVariable) ~2 мільярдів значень.
  • Я думаю, що максимальна загальна кількість клітин (продукт всіх розмірів) є необмеженим, але це може бути ~9e18.

Для табличних даних:

  • Максимальна кількістьdataVariables ~2 млрд. Але якщо датасет має > 100 змінних, він буде громіздкою для користувачів. І якщо датасет має >1 млн змінних, ваш сервер буде потрібно багато фізичної пам'яті, і є інші проблеми.
  • Максимальна кількість джерел (Наприклад, файли) що може бути сукупним ~2 млрд.
  • У деяких випадках максимальна кількість рядків з індивідуального джерела (наприклад, файл, але не бази даних) ~2 млрд рядків.
  • Я не думаю, що є інші обмеження.

Для обох сітчастих і табличних даних існує ряд внутрішніх лімітів за розмірами підмножини, які можуть вимагатися користувачем в одному запиту (часто пов'язані з >2 млрд щось або ~9e18 щось) , але це набагато швидше за все, що користувач буде вражати межі файлів.

  • NetCDFверсія 3.ncФайли обмежені 2GB байтами. (Якщо це дійсно проблема для когось, дозвольте мені знати: Я можу додати підтримкуNetCDFверсія 3.ncРозширення 64-біту абоNetCDFВерсія 4, яка значно підвищить ліміт, але не нескінченно.)
  • Виправлення браузера після тільки ~ 500MB даних, томуERDDAP™обмежити відповідь.htmlTableзапитів до ~400MB даних.
  • Багато програм аналізу даних мають аналогічні обмеження (наприклад, максимальний розмір виміру часто ~2 мільярдів значень) , так що немає причин, щоб працювати важко, щоб отримати навколо специфікацій файлів.
  • Файлотипові ліміти корисні в тому, що вони запобігають надійним запитам на дійсно величезні кількості даних (наприклад, «прогни мене всі дані», коли датасет має 20ТБ даних) , який буде приймати тижні або місяці для завантаження. Довгий завантаження, швидше за все, він не буде для різних причин.
  • Файлотипові ліміти корисно в тому, що вони змушують користувача мати справу з негабаритними субсетами (наприклад, у зв'язку з великим сітчастим даними через файли з даними з одного разу) й  

Вимикач до ACDD-1.3

Ми (невагомоГенераціяДатасетСмл) В даний час рекомендуємоВерсія ACDDD 1.3, яка була ратифікована на початку 2015 року і яка називається "ACDD-1.3" в атрибуті глобальних конвенцій. ДоERDDAP™версія 1.62 (випущений в Червень 2015) йERDDAP™JavaScript licenses API Веб-сайт Go1.13.8NetCDFАтрибутова конвенція для виявлення данихяка була названа як "UnidataDataset Discovery v1.0 в глобальних конвенціях іMetadata\_Conventionsатрибути.

Якщо Ваші дані використовуються раніше версій ACDD, ми рекомендуємо вам переключитися до ACDD-1.3. Не важко. ACDDD-1.3 є високооптимізованим з версією 1.0. Щоб перейти, для всіх даних (доEDDGridВідErddap і EDDTable Відповідні дані) :

  1. Зняти новий світMetadata\_Conventionsатрибут додавання (або шляхом зміни існуючогоMetadata\_Conventionsатрибути)
        <att name="Metadata\\_Conventions">null</att>  

до глобальних даних<addAttributes>.   2. Якщо датасет має атрибут конвенцій у світі<addAttributes>, змінити всі "UnidataДанісет Discovery v1.0" посилання на "ACDD-1.3". Якщо дані не мають атрибуту Конвенції у світі<addAttributes>, потім додайте один, який відноситься до ACDD-1.3. Наприклад,

        <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>  

  3. Якщо датасет має глобальнийstandard\_name\_vocabularyатрибут, будь ласка, змініть формат значення, наприклад,

        <att name="standard\\_name\\_vocabulary">CF Standard Name Table v65</att>  

Якщо посилання на старшу версіюТаблиця розмірів CFй це, ймовірно, хороша ідея для перемикання на поточну версію (65, як ми пишемо це) , так як нові стандартні імена додаються до цієї таблиці з наступними версіями, але старі стандартні імена рідко викопуються і ніколи не видаляються.   4. Хоча ACDDD-1.0 включено глобальні атрибути дляcreator\_nameйcreator\_emailйcreator\_urlйГенераціяДатасетСмлне автоматично додавати їх до певного часуERDDAP™в1.50. Це важлива інформація:

  • creator\_nameдозволяє користувачам дізнатися / написати розробника даних.
  • creator\_emailЯкщо у вас є питання про набір даних.
  • creator\_urlнадає користувачам можливість дізнатися більше про творця.
  • ERDDAP™використовує всю цю інформацію при генеруванні FGDC та ISO 19115-2/19139 метаданих документів для кожного набору даних. Ці документи часто використовуються зовнішніми службами пошуку.

Будь ласка, додайте ці атрибути до глобального набору даних<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>

Що це таке. Я сподіваюся, що не дуже важко.  

Зар

Версія 2.25ERDDAP™читати локальну Файли ЗарEDDTableЗ альбомуNcFilesіEDDGridВідNcFilesй

(Станом на Серпень 2019) Ми можемо легко бути неправильними, але ми ще не переконані, щоЗар, або подібні системи, які розбивають файли даних на менші шматки, є відмінними рішеннями для проблемиERDDAP™читати дані, що зберігаються в хмарних сервісах, таких як Amazon AWS S3. Зар - чудова технологія, яка показала свою корисність в різних ситуаціях, ми просто не впевнені, щоERDDAP+S3 буде однією з тих ситуацій. По-перше, ми говоримо: перед тим, як ми кидаємо, щоб зробити зусилля, щоб зберігати всі наші дані в Заррі, давайте зробити деякі тести, щоб побачити, якщо це дійсно краще рішення.

Проблеми з доступом даних у хмарі є затримки (щоб отримати дані) і доступ до файлів (не більше доступу до блочного рівня) й Зар вирішує проблему доступу до файлів, але нічого не стосується затримки. Порівняно просто завантажити файл (так що це може прочитати як локальний файл з доступом до блочного рівня) , Zarr може навіть погіршувати проблему затримки, оскільки, з Zarr, читання файлу тепер передбачає серію кількох дзвінків, щоб читати різні частини файлу (кожен з власних лаг) й Проблема затримки може бути вирішена паралельно, але це рішення вищого рівня, не залежно від Зара.

А з Зар (як з реляційних баз даних) , ми втратимо зручність, що має файл даних, є простим, одним файлом, який ви можете легко перевірити цілісність, або зробити/завантажити копію.

ERDDAP™ (від v2) має систему підтримки локального кешу файлів з джерела URL (р.р.) (див. [)<cacheЗ альбомуUrl> і<cacheMaxGB>] (#cachefromurl) ). І нові [<nThreads>] (#nthreads) повинні мінімізувати проблему затримки, паралельно за допомогою перерозподілу даних на високому рівні.<cacheЗ альбомуUrl> здається дуже добре працювати для багатьох сценаріїв. (Ми не впевнені, наскільки вигідно<nThreads> без додаткових тестів.) Ми додаємо, що ми не робили часові тести на екземплярі AWS з гарним підключенням мережі, але ми успішно протестували з різними джерелами віддалених URL файлів. ІERDDAPР<cacheЗ альбомуUrl> працює з будь-яким типом файлу даних (Наприклад,.ncй.hdf, .csv,.jsonlCSV) , навіть якщо зовні стискається (Наприклад,.gz) без будь-яких змін до файлів (e.g., перезаписувати їх як колекції Zarr) й

Імовірно, що різні сценарії будуть сприяти різним рішенням, наприклад, лише потрібно лише читати частину файлу один раз (Зар буде виграти) , проти необхідності читати весь файл один раз, проти необхідності читати частину або всі файли багаторазово (<cacheЗ альбомуUrl> переможець.

По-перше, ми говоримо: перед тим, як ми кидаємо, щоб зробити зусилля, щоб зберігати всі наші дані в Заррі, давайте зробити деякі тести, щоб побачити, якщо це дійсно краще рішення.


Перелік даних типів

Якщо вам потрібна допомога, вибираючи тип даних, див. інформаціюВибір типу Datasetй

Види даних потрапляють в дві категорії. (Чому?)

EDDGrid

  • EDDGrid ручка даних, що обробляє дані.
    • УEDDGridДані, змінні дані є багатовимірними масивами даних.
    • Для кожного виміру змінна вісь. Ось змінні MUST вказані в порядку, що змінні дані використовують їх.
    • УEDDGridдані, всі зміни даних MUST (Увійти) всі змінні осі. (Чому? Що робити?)
    • Сортовані значення розмірів - ВсіEDDGridдані, кожен розмір MUST буде упорядкований порядок (загартування або спуск) й Кожен може бути нерегулярним. Не можна зв'язатися з нами Це вимогаСтандарт метаданих CFй Якщо будь-які значення виміру не упорядковуються замовленням, то дані не будуть завантажені іERDDAP™виявить перше несортоване значення в файлі журналу, bigParentПублічний /logs/log.txt .

Кілька підкласів мають додаткові обмеженняEDDGridАгрегатExistingDimension вимагає, щоб зовнішній вигляд (ліворуч, перший) вимір буде завдано.

Несортовані значення розмірів майже завжди вказують на проблему з вихідним даними. Це найбільш часто виникає, коли незрівняний або невідповідний файл включений в агрегацію, яка призводить до несортованого часу. Щоб вирішити цю проблему, див. повідомлення про помилку вERDDAP™log.txt файл, щоб знайти значення часу вимкнення. Потім дивляться у вихідні файли, щоб знайти відповідний файл (або один до одного) не належить до агрегату.

  • Дізнатися більше повного описуEDDGridмодель данихй
  • Про насEDDGridтипи даних:
    • EDDGridВідAudioFilesсукупності даних з групи локальних аудіо файлів.
    • EDDGridВідручка сітчастих даних зDAPсервери.
    • EDDGridВідEDDTableдозволяє перетворювати табличні дані в сітчастий набір даних.
    • EDDGridВідErddapручки сітчасті дані з пульта дистанційного керуванняERDDAPй
    • EDDGridВідEtopoпросто обробляє вбудовані дані еТОПО.
    • EDDGridВідповідіє суперкласом всіхEDDGridВід...Файли класи.
    • EDDGridВідМергетикасукупності даних з групи локальних MergeIR.gzФайли
    • EDDGridВідNcFilesсукупності даних з групи місцевихNetCDF (v3 або v4) .ncі пов'язані файли.
    • EDDGridВідNcFilesUnpackedце варіант, якщоEDDGridВідNcFiles, які також сукупні дані з групи локальнихNetCDF (v3 або v4) .ncі пов'язані файли, якіERDDAP™розпакування на низькому рівні.
    • EDDGridкод товару: 180Визначено довгострокові цінності дитиниEDDGridтак, щоб вони знаходяться в діапазоні -180 до 180.
    • EDDGridЛон0360Визначено довгострокові цінності дитиниEDDGridтак, щоб вони знаходяться в діапазоні 0 до 360.
    • EDDGridБодибилдершиАгрегати 2 або більшеEDDGridбокові дані.
    • EDDGridАгрегатЕксистуванняДіменсіяАгрегати 2 або більшеEDDGridдані, кожен з яких має різні значення для першого виміру, але ідентичні значення для інших розмірів.
    • EDDGridПартнерствоможе зробити локальну копію іншогоEDDGrid- дані та дані з локальної копії.  
  • ВсіEDDGridдані підтримують встановлення nThreads, що говоритьсяERDDAP™скільки ниток використовувати при відповіді на запит. ДивитисянТримдокументація для деталей.  

Головна

  • Головна ручка даних табличних даних.
    • Табличні дані можуть бути представлені в якості бази даних таблиці з рядками та стовпчиками. Кожен стовпчик (змінна даних) має назву, набір атрибутів і зберігає лише один тип даних. Кожен ряд має спостереження (або група відповідних значень) й Джерело даних може мати дані в різних структурах даних, більш складну структуру даних та/або декілька файлів даних, алеERDDAP™необхідно мати можливість розірвати дані джерела в таблиці бази даних для представлення даних у вигляді табличних даних для користувачівERDDAPй
    • Дізнатися більше повного описуМодель даних EDDTableй
    • Типи EDDTable:

Детальні описи типів даних

EDDGridВід

EDDGridВід ручки сітки змінні зDAPсервери.

  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете зібрати інформацію, необхідну для того, щоб зробити свій власний XML дляEDDGridEnglishDeutschPусский简体中文中國傳統EspañolالعربيةFrançaisελληνικάDanskАнглійскаябългарски (шляхом додавання .das і .dds доsourceUrlНаприклад, https://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day.dds ) й  
  • EDDGridВідDap може отримувати дані з будь-якої багатовимірної змінної зDAPсервер даних. (Попередньо,EDDGridВідDap був обмежений змінними, позначеними як "полоска", але це більше не вимога.)
     
  • Сортовані значення розмірів - Цінності для кожного виміру MUST будуть упорядковані замовлення (загартування або спуск) й Значення можуть бути нерегулярними. Не можна зв'язатися з нами Це вимогаСтандарт метаданих CFй Якщо будь-які значення виміру не упорядковуються замовленням, то дані не будуть завантажені іERDDAP™виявить перше несортоване значення в файлі журналу, bigParentПублічний /logs/log.txt .

Несортовані значення розмірів майже завжди вказують на проблему з вихідним даними. Це найбільш часто виникає, коли незрівняний або невідповідний файл включений в агрегацію, яка призводить до несортованого часу. Щоб вирішити цю проблему, див. повідомлення про помилку вERDDAP™log.txt файл, щоб знайти значення часу вимкнення. Потім дивляться у вихідні файли, щоб знайти відповідний файл (або один до одного) не належить до агрегату.

EDDGridВідDap скелет Список

    <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>

 

EDDGridВідEDDTable

EDDGridВідEDDTable дозволяє перетворювати EDDTable табличних даних вEDDGridсітчастий набір даних. Про насERDDAP™обробляти дані якроз'ємні дані (ПідкласиEDDGrid) або табличні дані (Підкласи EDDTable) й

  • Як правило, якщо у вас є сітчасті дані, ви просто встановлюєтеEDDGridпошук даних безпосередньо. Іноді це неможливе, наприклад, коли у вас є дані, що зберігаються у відповідній базі даних, що зберігаються у відповідній базі даних.ERDDAP™EDDTableЗ альбомуDatabase.EDDGridВідedDTable class дозволяє виправити ситуацію.  
  • Очевидно, що дані в базовому EDDTable Dataset повинні бути (в основному) сітчасті дані, але в табличному вигляді. Наприклад, EDDTable dataset може мати дані КТД: вимірювання східного та північно-східного струму, на декількох глибинах, в кілька разів. З глибини однакові в кожній точці,EDDGridВідEDDTable може створювати сітчасті дані з часом та глибиною, яка отримує дані за допомогою базового EDDTable Dataset.  
  • ГенераціяДатасети Хмл -- Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете зібрати інформацію, необхідну для поліпшення грубого проекту.  
  • Джерела атрибутів -- Як з усіма іншими видами даних,EDDGridВідTable має ідею, що є глобальним джереломглобальнийaddAttributes (вказаний вdatasets.xml) , які поєднуються для створення глобального Атрибути, які користувачі дивляться. Для глобальних джерел атрибути,EDDGridВідEDDTable використовує глобальний Атрибути базового EDDTable Dataset. (Якщо ви думаєте про це за хвилину, це почуття.)

Аналогічно, для кожногоaxisVariable- іdataVariableРaddAttributesйEDDGridВідEDDTable використовує комбінований змінний Атрибути з базового EDDTable Dataset якEDDGridВідEDDTable джерело змінних атрибутів. (Якщо ви думаєте про це за хвилину, це почуття.)

Як наслідок, якщо EDDTable має хороші метадані,EDDGridВідEDDTable часто дуже малоaddAttributesметаданих - лише кілька твінків тут і там.

  • dataVariableйaxisVariableй Основна EDDTable має тількиdataVariableй АнжелаEDDGridВідEDDTable Dataset буде мати деякіaxisVariableй (Створено з деяких EDDTabledataVariableй) і деякіdataVariableй (створений з решти EDDTabledataVariableй) йГенераціяДатасетСмлзробить здогадку, до якого EDDTabledataVariables повинні статиEDDGridВідEDDTableaxisVariables, але це просто здогадка. Вам потрібно змінити вихід GenerateDatasetsXml, щоб вказати якийdataVariableбaxisVariableі в якому порядку.  

  • ОсьValues -- Немає нічого про основний EDDTable, щоб розповістиEDDGridВідобразити можливі значенняaxisVariables в сітчастій версії Dataset, тому ви MUST надаєте цю інформацію для кожногоaxisVariableчерез один з цих атрибутів:

    • ОсьValues -- Дозволяє вказати список значень. Наприклад, <Назва поштового відділенняtype="doubleList"\>2, 2.5, 3, 3,5, 4<Українська Примітка використаннятип данихплюс список слів. Також, тип списку (наприклад, подвійний) , MUST відповідає даним Тип змінної в EDDTable іEDDGridВідключені дані.
    • вісьValuesStartStrideStop -- Дозволяє вказати послідовність регулярних значень, вказавши початок, рядок і значення зупинки. Ось тут: <Назва поштового зв'язку: ValuesStartStrideStoptype="doubleList"\>2, 0.5, 4<Українська Знову зауважте використання типу даних списку. Також, тип списку (наприклад, подвійний) , MUST відповідає даним Тип змінної в EDDTable іEDDGridВідключені дані.  

Оновлення -- Так само, як немає способуEDDGridЗЕДВ'ЯЗКАТИ, щоб визначити вісьВід EDDTable спочатку, також немає надійного способу дляEDDGridВідключено визначення від EDDTable при зміні осіValues (необов'язково, коли є нові значення для змінного часу) й В даний час єдиним рішенням є зміна атрибуту вісьValues вdatasets.xmlі перезавантажити дані. Наприклад, ви можете написати скрипт

  1. Пошукdatasets.xmlдля datasetIDй Головна « » » » » » » » » » » » » » » Отже, ви працюєте з правильним набором даних.
  2. Пошукdatasets.xmlна наступний випадок НавігаціяНазва
    так ви працюєте з правильною змінною.
  3. Пошукdatasets.xmlна наступний випадок
        <att name="axisValuesStartStrideStop" type="doubleList">  

так що ви знаєте стартову позицію тегу. 4. Пошукdatasets.xmlна наступний випадок

        </att>  

так ви знаєте кінцеву позицію значень осі. 5. Замініть старий старт, припиніть значення з новими значеннями. 6. Контактипосиланнядля опису данихERDDAP™перезавантаження даних.

Це не ідеальний, але він працює.  

  • точність -- КолиEDDGridВідмовлено відповідь на запит користувача на дані, він переміщує ряд даних з таблиці відповіді EDDTable у таблиці реагування користувача на дані.EDDGridзворотна сітка. Для цього потрібно розібратися, якщо значення "вісь" на заданому ряді в таблиці відповідати деяким поєднанням значень осі в сітку. Для цілих типів даних легко визначити, чи дорівнює два значення. Але для плавань і подвійних, це приносить жахливу проблему плаваючих чисел точкине відповідати точной (Наприклад, 0,2 верст 0.199999999996) й до (намагатися) з цим,EDDGridЗдатний дозволяє вказати атрибут точності для будь-якого зaxisVariables, яка визначає загальну кількість десяткових цифр, які повинні бути ідентичними.
    • Наприклад,<int name="recision" type="int">5<Українська
    • Для різних типів змінних даних існують різні значення точності за замовчуванням. За замовчуванням зазвичай доречні. Якщо вони немає, потрібно вказати різні значення.
    • ДляaxisVariableйчас або час Штамп змінних, За замовчуванням повна точність (точний матч) й
    • ДляaxisVariables, які плавають, точність за замовчуванням 5.
    • ДляaxisVariables, які є подвійними, точність за замовчуванням 9.
    • ДляaxisVariables, які мають цілі типи даних,EDDGridВідEDDTable ігнорує атрибут точності і завжди використовує повну точність (точний матч) й  
    • УВАГА! При перетворенні шматка табличних даних в шматки сітчастих даних, якщоEDDGridВідEDDTable не може відповідати значення EDDTable "вісь" до одного з очікуванихEDDGridВідEDDTable значення осі,EDDGridВідEDDTable мовчки (немає помилок) відкидає дані з цього ряду таблиці. Наприклад, можуть бути інші дані (не на сітці) в EDDTable Dataset. (І якщо пасида > 1, не зрозумілоEDDGridВідповідні, які значення осі є бажаними значеннями і які є одним, щоб бути пропущені через пасиду.) Отже, якщо значення прецизій занадто високі, користувач буде бачити відсутні значення у відповідь даних, коли дійсно існують значення даних.

Зовні, якщо значення точності встановлюються занадто низькими, значення EDDTable "вісь", які не повинні відповідатиEDDGridВідEDDTable значення осі буде (помилково) матч.

Ці потенційні проблеми жахливі, оскільки користувач отримує неправильні дані (або відсутні значення) коли вони повинні отримувати правильні дані (або принаймні повідомлення про помилку) й Це не слава вEDDGridВідповідність.EDDGridЗдатний не може вирішити цю проблему. Проблема властива перетворення табличних даних в сітчасті дані (якщо інші припущення можуть бути зроблені, але вони не можуть бути зроблені тут) й До тебе,ERDDAP™адміністратор, до ТестуванняEDDGridВідEDDTable ретельно щоб уникнути цих проблем.

порназоркі

  • порназоркі--- Це дуже незвичайний тип даних. Оскільки види запитів, які можна зробити (ручка) УвійтиEDDGridмета (пов'язані з діапазонами і пасидамиaxisVariableй) дуже відрізняється від типів запитів, які можна зробити (ручка) EDDTable дані (просто пов'язані з діапазонами деяких змінних) , виконанняEDDGridВідключені дані значно варіюються в залежності від конкретного запиту, який проводиться і швидкості основного EDDTable Dataset. За запитами, які мають значення суперечок > 1,EDDGridВідEDDTable може попросити основну EDDTable для відносно великого шматка даних (як якщо stride=1) а потім просіяти результати, зберігаючи дані з деяких рядків і викинути дані з інших. Якщо він повинен просіяти багато даних, щоб отримати дані, які він потребує, запит буде більше, щоб заповнити.

ЯкщоEDDGridВідEDDTable можна сказати, що будуть великі зазори (з рядами небажаних даних) між рядами з бажаними даними,EDDGridВідEDDTable може вибрати, щоб зробити кілька підзапитів до основного EDDTable замість одного великого запиту, тим самим пропустити небажані ряди даних у великих проміжках. Чутливість для цього рішення регулюється зазоромПопередня вартість вказана в<gapThreshold> тег (За замовчуванням=1000 рядків вихідних даних) й Налаштування зазоруПопередня до меншого числа призведе до виготовлення даних (в цілому) більше підзапитів. Налаштування зазоруПопередня до більшого числа призведе до виготовлення даних (в цілому) менше підзапитів.

Якщо зазорТресхол встановлюється занадто невеликим,EDDGridВідEDDTable буде працювати більш повільно, тому що наклад кількох запитів буде більше, ніж час, що зберігається, отримувати деякі надлишок даних. Якщо зазорТресхол є занадто великим,EDDGridВідEDDTable буде працювати більш повільно, тому що так багато зайвих даних буде отримано від EDDTable, тільки слід відкинути. (Як відкрився Goldilocks, середина «право».) Накладні для різних типів EDDTable datasets значно різняться, тому єдиний спосіб дізнатися фактичну найкращу настройку для вашого набору даних через експериментацію. Але ви не будете занадто далеко неправильно прилипати до за замовчуванням.

Простий приклад: Уявіть собіEDDGridВідповідність лише однимaxisVariable (час, з розміром 100000) , одинdataVariable (температура) , і проміжок за замовчуваннямПопередня кількість 1000.

  • Якщо температура запиту користувача\[0💯5000\], довжина 100 так розмір зазору 99, що менше зазору. Про насEDDGridДля всіх даних, необхідні для запиту (еквівалент температури\[0:5000 Р\]) і викинути всі ряди даних, які не потрібні.
  • Якщо температура запиту користувача\[0:2500:5000\], що пасид 2500 так розмір зазору 2499, який більше, ніж зазор Про насEDDGridВідTable буде здійснювати окремі запити на EDDTable, які еквівалентні температурі\[0 р.\], температура\[2500 р.\], температура\[5000 р.\]й

Розрахунок розміру зазору складніше при наявності декількох осі.

Для кожного запиту користувачаEDDGridВідEDDTable друкує діагностичні повідомлення, пов'язані з цим вJavaScript licenses API Веб-сайт Go1.13.8файл.

  • (Українська)<Увійти (#логів) вdatasets.xmlЦя електронна адреса захищена від спам-ботів \* nOuterAxes=1 з 4 nOuterRequests=22 Якщо nOuterAxes=0, проміжокТрихол не перевищено і тільки один запит буде виготовлений для EDDTable. Якщо nOuterAxes>0, проміжокТрихол було перевищено і nOuterRequests буде зроблено для EDDTable, відповідного до кожного запитуваного поєднання нижньої частини nOuterAxes. Наприклад, якщо датасет має 4axisVariableйdataVariables як східний\[час\]\[знаменитості\]\[довгота\]\[глибина\], лівий (перший) змінна вісь часу.
  • Якщо<Увійти вdatasets.xmlДля всіх, до файлу Log.txt додано додаткову інформацію.  

EDDGridВідEDDTable скелет Список

 <dataset type="EDDGridFromEDDTable" datasetID\="..." active\="..." >
    <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
    <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
    <accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
    <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
    <updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
     For EDDGridFromEDDTable, this only works if the underlying EDDTable
     supports updateEveryNMillis. -->
    <gapThreshold>...</gapThreshold> <!-- 0 or 1. The default is 1000. >
    <defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
    <defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
    <fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
    <iso19115File>...</iso19115File> <!-- 0 or 1 -->
    <onChange>...</onChange> <!-- 0 or more -->
    <addAttributes>...</addAttributes> <!-- 0 or 1 -->
    <axisVariable>...</axisVariable> <!-- 1 or more -->
    <dataVariable>...</dataVariable> <!-- 1 or more -->
    <dataset>...</dataset> <!-- The underlying source EDDTable dataset. -->
 </dataset>

EDD*З альбомуERDDAP

EDDGridВідErddap ручки сітчасті дані з пульта дистанційного керуванняERDDAP™сервер. EDDTableЗ альбомуErddap ручки табличних даних з пульта дистанційного керуванняERDDAP™сервер.

  • EDDGridВідErddap і EDDTableЗ альбомуErddap поводитися по-різному з усіх інших типів данихERDDAPй
    • Як і інші типи даних, ці дані одержують інформацію про дані з джерела і зберігають її в пам'яті.
    • Як і інші типи даних, колиERDDAP™пошуки даних, відображення форми доступу до даних ( datasetID Українська) , або відображає форму графічного зображення ( datasetID .граф) йERDDAP™використовує інформацію про дані, яка знаходиться в пам'яті.
    • EDDGridВідErddap і EDDTable ВідErddap є основою длясітки / причепи / вигодовуваннязERDDAPs, які ефективно розподіляють використання процесора (переважно для створення карт) , використання пам'яті, зберігання даних та використання пропускної здатності великого центру даних.

Перенаправлення

  • На відміну від інших типів даних, колиERDDAP™отримувати запит на дані або зображення з цих даних,ERDDAP перенаправленнязапит на пультERDDAP™сервер. Результат:
    • Це дуже ефективний (Процесор, пам'ять та пропускна здатність) , бо інакше
      1. СкладERDDAP™має надіслати запит на іншийERDDAP™ (що займає час) й
      2. ІншеERDDAP™має отримувати дані, переформатувати та передавати дані до композитуERDDAPй
      3. СкладERDDAP™отримувати дані (за допомогою смуги) , переформатувати (за допомогою процесора та пам'яті) і передавати дані користувачеві (за допомогою смуги) й За допомогою перенаправлення запиту та отримання іншогоERDDAP™відправити відгук безпосередньо на користувача, композитERDDAP™не витрачає час на процесор, пам'ять або пропускну здатність на запит.
    • Переадресація прозора для користувача незалежно від програмного забезпечення клієнта (веб-переглядач або будь-який інший інструмент для командного рядка) й
  • Ви можете розповістиERDDAP™не переадресувати будь-які запити користувачів за допомогою налаштування<реdirect>false</redirect>, але це заперечує більшість переваг ...З альбомуErddap dataset type (помітно, розсіювання навантаження на передній кінецьERDDAP™до віддаленого / зворотного зв'язкуERDDAP) й    

Підписка

Нормально, колиEDDGridВідErddap і EDDTable ВідErddap (Увійти) Завантажено на вашERDDAP, вони намагаються додати підписку на віддалені дані через пульт дистанційного керуванняERDDAPСистема підписки електронної пошти/URL. Таким чином, коли всі зміни віддалених даних, віддаленіERDDAP™КонтактиКомплектDataset Прапор URLна Вашому сайтіERDDAP™Таким чином, локальна датасет перезавантажена ASAP і тому, що локальна датасета завжди ідеально підходить для сучасних і мімічених віддалених даних. Отже, перший раз, коли це відбувається, ви повинні отримати запит на електронну пошту, що ви ввідаєте підписку. Однак, якщо локальнийERDDAP™не може надсилати повідомлення електронної пошти або якщо віддаленоERDDAPСистема підписки електронної пошти/URL не активна, ви повинні надсилати повідомлення дистанційноERDDAP™адміністратор і запит, що s/he вручну додати [<Головна > (Українська) ...</onChange> теги для всіх відповідних даних, щоб викликати ваші даніКомплектDataset URL-адреси Прапоруй ПобачитиERDDAP™щоденний звіт за перелік setDataset Прапор URL-адрес, але тільки надсилайте дляEDDGridВідErddap і EDDTableЗ альбомуErddap datasets до віддаленогоERDDAP™адміністратор.

Чи не працює це? Чи зберігаються локальні дані в синхронізації з дистанційними даними? Для того, щоб ваші дані залишалися актуальними. Перевірити кожен з цих речей в порядку:

  1. Ваше ім'яERDDAP™необхідно мати можливість надсилати електронні листи. Переглядайте налаштування електронної пошти в налаштуваннях.xml.
  2. В цілому (але не завжди) , вашERDDAPР<Головна> та<JavaScript licenses API Веб-сайт Go1.13.8 (Наприклад: 8080, :8443) й Якщо вони роблять, використовуйтеПроксимусдля видалення порту з Урлі.
  3. В налаштуваннях.xml,<Підписатися на розсилку
  4. Коли ваш локальний EDD ... ВідErddap Dataset перезавантажено, він повинен надіслати запит на пультERDDAP™підписатися на віддалені дані. Переглядайте в log.txt, щоб побачити, чи це відбувається.
  5. Ви повинні отримувати повідомлення електронної пошти, щоб підтвердити запит на підписку.
  6. Вам необхідно натиснути на посилання, вказану електронну пошту, щоб підтвердити запит на підписку.
  7. ВіддаленийERDDAP™слід сказати, що валідація була успішним. У будь-який час ви можете запросити електронну пошту з пульта дистанційного керуванняERDDAP™з переліком ваших підписок та дійсних підписок. Переглянути форму дистанційнийErddapBase Уль English, Українська, Français...
  8. При зміні віддалених даних (наприклад, отримує додаткові дані) , віддаленийERDDAP™Вам необхідно звернутися до прапораERDDAPй Ви не можете перевірити це, але ви можете попросити адміністратора дистанційного керуванняERDDAP™перевірити це.
  9. Ваше ім'яERDDAP™повинен отримати запит, щоб встановити прапорець. Ознайомитися з вашою логікою.txt для "setDatasetFlag.txt?" запит (й) і подивитися, якщо є повідомлення про помилку, пов'язані з запитами.
  10. Ваше ім'яERDDAP™потім спробуйте перезавантажити дані (не відразу, але АСАП) й  

До сучасної макс. (час) ?

EDDGrid/TableЗ альбомуErddap datasets only змінює збережену інформацію про кожного джерела даних, коли джерело даних"Завантажити"і деякі зміни метаданих (Наприклад, змінна часactual\_range) , тим самим генеруючи повідомлення про підписку. Якщо джерело даних має дані, які часто змінюються (наприклад, нові дані) і використовує"оновлення"система помітити часті зміни до основних даних,EDDGrid/TableЗ альбомуErddap не буде повідомлено про ці часті зміни до наступного набору даних "завантаження", томуEDDGrid/TableЗ альбомуErddap не буде ідеальною. Ви можете мінімізувати цю проблему, змінивши джерело даних<reloadEveryNMinutes> до меншого значення (60? 15?) так, щоб повідомлення про підписку більше, щоб розповістиEDDGrid/TableЗ альбомуErddap для оновлення його інформації про джерело даних.

Або, якщо система управління даними знає, коли джерело даних має нові дані (наприклад, через скрипт, який копіює файл даних на місце) і якщо це не дуже часто (наприклад, кожні 5 хвилин, або рідше) , є краще рішення:

  1. Не використовуйте<updateEveryNMillis> для збереження вихідних даних
  2. Набір вихідних даних<reloadEveryNMinutes> до більшого числа (1440?) й
  3. У вас є скрипт контакту з вихідним данимипосиланняПісля копіювання нового файлу даних на місце.  

Це призведе до вихідних даних, які ідеально додаються до дати та викликати його для створення повідомлення про підписку, яка буде відправлена до джерела даних, які будуть надіслані на джерело.EDDGrid/TableЗ альбомуErddap Dataset. Що призведе доEDDGrid/TableЗ альбомуErddap Dataset, щоб бути ідеальною (добре, протягом 5 секунд додано нові дані) й І все, що буде зроблено ефективно (без зайвих перевантажень даних) й  

НіaddAttributesйaxisVariableабоdataVariable

На відміну від інших типів даних, EDDTableЗ альбомуErddap іEDDGridВідповідні дані<addAttributes>й<axisVariable>, або<dataVariable> розділи вdatasets.xmlдля цього набору даних. Проблема, що дозволяє тим, хто призведе до невідповідностей:

  1. Повідомляємо, що це дозволено, і ви додали новий глобальний атрибут.
  2. При запиті користувачаERDDAP™для глобальних атрибутів з'явиться новий атрибут.
  3. Але коли користувач запитуєERDDAP™для файлу даних,ERDDAP™перенаправлення запиту на джерелоERDDAPй ЩоERDDAP™є носієм нового атрибуту. Отже, якщо він створює файл даних з метаданими, наприклад,.ncФайл, метадані не мають нового атрибуту.

Є два робочі місця:

  1. Конвінце адміністратор джерелаERDDAP™внести зміни, які ви хочете метаданих.
  2. Замість EDDTableЗ альбомуErddap використовуйтеEDDTableЗ альбомуDapSequenceй Або замістьEDDGridВідErddap, використанняEDDGridВідй Типи EDD дозволяють ефективно підключати дані на пульті дистанційного керуванняERDDAP™ (але без перенаправлення запитів даних) і вони дозволяють включати глобальні<addAttributes>й<axisVariable>, або<dataVariable> розділи вdatasets.xmlй Одна інша відмінність: вам потрібно буде вручну підписатися на віддалені дані, щоб дані, що зберігаються на вашому пристроїERDDAP™буде повідомлено (черезпосилання) при змінах віддаленого набору даних. Таким чином, ви створюєте новий набір даних, замість посилань на віддалені дані.  

Інші ноти

  • З причин безпеки,EDDGridВідErddap і EDDTable ВідErddap не підтримує [<Доступно (#додатково) тег і не можна використовувати з дистанційними даними, які вимагають входу в систему (наприклад, вони використовують [<Доступно (#додатково) ... Про насERDDAPРсистема безпекидля обмеження доступу до деяких даних до деяких користувачів.  
  • Почати зERDDAP™в2.10,EDDGridВідErddap і EDDTableЗ альбомуErddap support the [<доступніViaFiles> (#accessibleviafiles) мітка. На відміну від інших типів даних, за замовчуванням є вірним, але файли даних будуть доступні лише в тому випадку, якщо джерело даних також має<ДоступніViaFiles> встановлюються до true.  
  • Ви можете використовуватиГенераціяДатасети Програма Xmlщоб зробитиdatasets.xmlкурка для даного типу гарнітура. Але ви можете зробити ці типи даних легко вручну.  

EDDGridСкелет Erddap Список

  • EDDGridСкелет Erddap XML Dataset дуже простий, тому що інтенсив просто мимікувати віддалені дані, які вже підходять для використання в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>

EDDTableЗ альбомуErddap скелет Список

  • Скелет XML для EDDTableЗ альбомуErddap dataset дуже простий, тому що інтенент просто мити віддалений набір даних, який вже підходить для використання в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>

EDDGridВідEtopo

EDDGridВідEtopo просто виконуєETOPO1 Глобальний 1-Minute Сітканий набір даних (Ice Surface, сітка зареєстрована, бінарна, 2byte int: etopo1\_ice\_g\_i2.zip) який розподіляється зERDDAPй

  • Тільки дваdatasetIDs підтримуютьсяEDDGridВідEtopo, щоб ви могли отримати доступ до даних з значеннями довготи -180 до 180, або значення довготи 0 до 360.
  • Ви ніколи не опишіть, оскільки дані вже описані вERDDAPй
  • Так два варіантиEDDGridВідповідні дані (доля) :
      <!-- 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" />

EDDGridВідповіді

EDDGridВідповіді є суперкласом всіхEDDGridВід...Файли класи. Ви не можете використовуватиEDDGridВідповіді безпосередньо. Замість використовуйте підклас підкласуEDDGridДля обробки певного типу файлу:

В даний час не підтримується інші типи файлів. Але, як правило, відносно легко додати підтримку інших типів файлів. Зв'язатися з нами, якщо у вас є запит. Або, якщо ваші дані є у старому форматі файлів, який ви хочете відійти від, ми рекомендуємо конвертувати файли, щоб бутиNetCDFв3.ncФайлиNetCDFє широко підтримується, бінарний формат, дозволяє швидко випадковий доступ до даних, і вже підтримуєтьсяERDDAPй

Від файлів Детальніше

До всіх підкласівEDDGridВідповіді.

Агрегація зовнішнього виміру

Всі варіаціїEDDGridВідФайли можуть збирати дані з місцевих файлів, де кожен файл має 1 (чи більше) різні значення для лівої (перший) розмір, зазвичай\[час\], які будуть агрегатовані. Наприклад, розміри можуть бути\[час\]\[висота\]\[знаменитості\]\[довгота\]і файли можуть мати дані для одного (або кілька) часове значення (й) за файл. З’явився набір даних, якщо всі дані файлів були об’єднані. Великі переваги агрегату:

  • Розмір сукупного набору даних може бути набагато більшим, ніж один файл може бути зручно (~2 Гб) й
  • Для локальних даних легко додавати новий файл з найновішим шматком даних. Ви не повинні переписати весь набір даних.

Вимоги до агрегації:

  • Місцеві файли не мають однаковихdataVariableй (як визначено в данихdatasets.xml) й Ці дані будуть матиdataVariables визначений вdatasets.xmlй Якщо заданий файл не маєdataVariableйERDDAP™буде додано відсутні значення в міру необхідності.
  • ВсіdataVariables MUST використовувати те ж самеaxisVariables/dimensions (як визначено в данихdatasets.xml) й Файли будуть агрегатовані на основі першого (ліворуч) розмір, відсортований в порядку зростання.
  • Кожен файл MAY має дані для одного або декількох значень першого виміру, але не можна перекривати між файлами. Якщо файл має більше одного значення для першого виміру, значення MUST будуть відсортовані в порядку, що закінчується, без зв'язків.
  • Всі файли MUST мають однакові значення для всіх інших розмірів. Точність тестування визначаєтьсяЗбігтий
  • Всі файли MUST точно однаковіблокиметаданих для всіхaxisVariableйdataVariableй Якщо це проблема, ви можете використовуватиНЦМЛабоNCOвиправити проблему.  
Агрегація за назвами файлів або глобальними метадані

Всі варіаціїEDDGridВідФайлів також можна агрегатувати групу файлів, додавши нову ліву частину (перший) розмір, як правило, час, виходячи з значення, отриманого з кожного імені файлу або від значення глобального атрибуту, який знаходиться в кожному файлі. Наприклад, назва файлу може містити значення часу для даних у файлі.ERDDAP™а потім створити новий розмір часу.

На відміну від аналогічної функції в THREDDS,ERDDAP™завжди створюєaxisVariableз числовими значеннями (як потрібно CF) , ніколи не String значення (які не допускаються CF) й Також,ERDDAP™буде сортувати файли в агрегації на основі нумеричноїaxisVariableзначення, яке призначене для кожного файлу, так що змінна вісь завжди буде відсортовано значення, як це вимагається CF. THREDDS підхід до створення лексикографічного сорту на основі імен файлів призводить до агрегації, де значення осі не відсортовано (що не дозволено CF) коли імена файлів різняться, ніж отриманіaxisVariableзначення.

Щоб встановити одну з цих агрегатівERDDAP™, ви визначаєте новий лівий (перший) axisVariableз особливим, псевдо<sourceName>, що говоритьERDDAP™де і як знайти значення для нового розміру з кожного файлу.

  • Формат для псевдоsourceNameякий отримує значення з файлу (просто filename.ext) Про нас \*\*З Ім'я файла, дані Тип й екстрактРежекс й JavaScript licenses API Веб-сайт
  • Формат для псевдоsourceNameякий отримує значення від імені абсолютного шляху файлу \*\*З шляхІм'я, дані Тип й екстрактРежекс й JavaScript licenses API Веб-сайт \[Для цього слідове ім'я завжди використовує'/'як символ сепаратора каталогу, ніколи не ''.\]
  • Формат для псевдоsourceNameякий отримує значення з глобального атрибуту \*\*З глобальний: атрибути Ім'я й дані Тип й екстрактРежекс й JavaScript licenses API Веб-сайт
  • Це псевдоsourceNameваріант працює по-різному: замість створення нового лівого (перший) axisVariable, це замінює значення струмуaxisVariableз значенням, витягнутим з файлу (просто filename.ext) й Формат \*\*З заміна ВідFileName, дані Тип й екстрактРежекс й JavaScript licenses API Веб-сайт  

Описи деталей, які необхідно надати:

  • атрибути Ім'я -- назва глобального атрибуту, який знаходиться в кожному файлі і містить значення розмірів.
  • дані Тип --- Це визначає тип даних, який буде використовуватися для зберігання значень. Переглянути стандартний списокдані ТипищоERDDAP™підтримує, крім того, що String не дозволено тут, оскільки змінні осі вERDDAP™не може бути змінними.

Є додаткові псевдоданіType, timeFormat= Увійти Часформа , що говоритьERDDAP™що значення має час StringStampблоки, придатні для рядкових разівй У більшості випадків, рядокTimeFormat вам потрібно буде варіації одного з цих форматів:

  • yyyy-MM-dd'T'HH:mm:ss.SSSZ -- який ISO 8601:2004 (Етикети) формат дати. Вам може знадобитися скорочений варіант цього, наприклад,yyyy-MM-dd'Т'Х:мм:с абоyyyy-MM-ddй
  • yyyymmddHmmss.SSSS -- яка компактна версія формату часу ISO 8601. Вам може знадобитися скорочена версія цього, наприклад, yyyymmddHmmsss або yyyymmdd.
  • М/д/йий H:mm:ss.SSS -- який є форматом дата в США. Вам може знадобитися скорочена версія цього, наприклад, M/d/yyyyy .
  • yyyDDDHmmsSSS -- який рік плюс нульовий день року (Наприклад, 001 = Ян 1, 365 = Дек 31 в неоплачуваний рік; це іноді помилково називається Юліан дата) й Вам може знадобитися скорочена версія цього, наприклад, yyyyDDDDD.

Якщо ви використовуєте цей псевдо dataType, додайте його до нової змінної<addAttributes>:

        <att name="units">seconds since 1970-01-01T00:00:00Z</att>  

Якщо ви хочете змінити всі значення часу, перемістіть значення часу в одиниці, наприклад, 1970-01Т12:00:00З.

  • екстрактРежекс --- Церегулярний вираз (підручники) що включає групу захоплення (у дужках) яка описує, як витягти значення з імені файлу або значення глобального атрибуту. Наприклад, надана назва файлу, як S19980011998031.L3b\_MO\_CHL.nc, група захоплення #1, "\dпідручники", в регулярному виразі S (З\dпідручники) З\dпідручники\.L3b.\* захопить перші 7 цифр після 'S': 1998001.
  • веб камера --- Це число групи захоплення (в пари дужок) в регулярному виразі, який містить інформацію про зацікавленість. Це зазвичай 1, перша група захоплення. Іноді потрібно використовувати групи захоплення для інших цілей в regex, щоб потім важливий номер групи захоплення буде 2 (група другого захоплення) або 3 (третій) та ін.

Повний прикладaxisVariableщо робить сукупний набір даних з новою віссю часу, яка отримує значення часу з імені файлу кожного файлу

      <axisVariable>
<sourceName>\\*\\*\\*fileName,timeFormat=yyyyDDD,S(\\d{7})\\.L3m.\\*,1</sourceName>
<destinationName>time</destinationName>
</axisVariable>

Коли ви використовуєте "timeFormat" Тип,ERDDAP™додасть 2 атрибутиaxisVariableтак, що вони з'являються, щоб приходити з джерела:

    <att name="standard\\_name">time</att>  
<att name="units">seconds since 1970-01-01T00:00:00Z</att>

Так в цьому випадку,ERDDAP™створить нову вісь"time"з двома значеннями (з 1970-01T00:00Z) вилучення 7 цифр після 'S' і до ".L3m" в ім'я файлу і інтерпретації значень часу, відформатованих як yyyyDDDDD.

Ви можете перевизначити час за замовчуванням (1970-01Т00:00:00З) шляхом додаванняДодатиАтрибутякий визначає атрибут різних юнітів з різним базовим часом. Загальна ситуація: є групи файлів даних, кожен з 1 день композиту супутникових даних, де ви хочете значення часу, щоб бути іменем дня, зазначеного в назві файлів (до центру) і хочете змінитиlong\_nameбути «Центрований час». Приклад, який робить це:

      <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>

Зауваження годин=12 в базовий час, який додає 12 годин відносно оригінального базового часу 1970-01T00:00:00Z.

Повний прикладaxisVariableщо робить сукупний набір даних з новою віссю "run" (з значеннями int) який отримує значення запуску з глобального атрибуту "runID" у кожному файлі (з значеннями, такими як "r17\_global", де 17 є номер запуску) Про нас

      <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>

Зверніть увагу на використання групи захоплення No2 для захоплення цифр, які відбуваються після 'r' або 's', а перед "\_global". Цей приклад показує, як додати додаткові атрибути (Наприклад,ioos\_categoryта блоки) до змінної осі.  

Зовні стиснення файлів

  • Дані, які є субсетамиEDDGridВідФайли та EDDTable ВідФайли можуть служити дані безпосередньо з зовнішніх компресованих файлів даних, включаючи.tgzй.tar.gzй.tar.gzipй.gzй.gzipй.zipй.bz2, і .Z файлів.  

  • Це чудово працює!
    У більшості випадків уповільнення, пов'язаних з декомпресацією невеликих і середніх файлів даних, незначно. Якщо необхідно зашифрувати дисковий простір, ми сильно заохочуємо використовувати цю функцію, особливо для старих файлів, які рідко доступні.  

  • Збережіть гроші!
    Це один з небагатьох функційERDDAP™що пропонує вам можливість заощадити багато грошей (хоча при собівартості злегка зниженої продуктивності) й Якщо співвідношення стиснення є наприклад, 6:1 (іноді це буде набагато вище) , потім файли даних Dataset будуть потрібні лише 1/6 дискового простору. Потім, можливо, ви можете отримати з 1 RAID (заданий розмір) замість 6 RAIDS (однакового розміру) й Це величезна економія вартості. Сподіваємось, можливість компресувати деякі файли в колекції (старі?) і не компресувати інших (нових?) , і для того, щоб змінити це в будь-який час, нехай ви мінімізуєте нижній стороні для стиснення деяких файлів (повільний доступ) й І якщо вибір між зберіганням файлів на стрічці (і тільки доступні за запитом, після затримки) проти зберігання компресованих на RAID (і доступні черезERDDAP) , потім існує величезна перевага для використання стиснення, щоб користувачі отримувати інтерактивні та (відносно) швидкий доступ до даних. І якщо це може зберегти вас від покупки додаткових RAID, ця функція може зберегти вас близько $30,000.  

  • Для всіхEDDGridВідФайлів підкласів, якщо файли даних мають розширення, що вказує на те, що вони зовнішні компресовані файли (Зараз:.tgzй.tar.gzй.tar.gzipй.gzй.gzipй.zipй.bz2, або .Z) йERDDAP™буде декомпресувати файли до каталогу кеш-пам'яті Dataset, коли він читає їх (якщо вони вже не в кеші) й Те ж саме стосується бінарного файлу (Наприклад,.nc) Підкласи EDDTableЗ альбомуFiles.  

  • Для EDDTableЗ альбомуFiles підкласи для небінарних файлів (Наприклад, .csv) , файли даних з розширенням, що вказують на те, що вони зовні компресовані файли будуть декомпресовані на файлі, оскільки файл прочитаний.  

  • ОБЛАДНАННЯ: Якщо тип зовнішнього стисненого файлу використовується (Наприклад,.tgzабо.zip) підтримує більше 1 файл всередині стисненого файлу, стиснений файл повинен містити лише 1 файл.  

  • ОБЛАДНАННЯ: Ця функція припускає, що вміст зовнішніх компресованих файлів не змінюється, тому що кешований декомпресований файл може бути повторно використаний. Якщо деякі або всі файли даних, іноді змінюються, не стискайте ці файли. Це послідовно з загальним використанням, так як люди не зазвичай компрес-файли, які вони іноді повинні змінити.  

  • <ФайлNameRegex> Щоб зробити цю роботу, дані<fileNameRegex> повинен відповідати іменам стиснених файлів. Очевидно, що regexes як .\відповідатиме всім іменам файлів. Якщо ви вказали конкретний тип файлу, наприклад, .\\.nc, потім потрібно змінити regex, щоб включити розширення стиснення занадто, наприклад, . \ \.nc\.gz(якщо всі файли будуть чи.nc.gzФайли  

  • Це дрібно, якщо ваш набір даних включає в себе суміш компресованих і не компресованих файлів. Це може бути корисним, якщо ви вважаєте, що деякі файли (Наприклад, старі файли) буде використовуватися рідше і тому буде корисно для збереження дискового простору шляхом їх стиснення. Щоб зробити цю роботу,<fileNameRegex> повинен відповідати стисненим і не стисненим іменам файлів, наприклад, .\або .\\.nc (|\.gz) (де група захоплення наприкінці цього визначає, що.gzДодатково.  

  • Це відмінно, якщо ви компреси або декомпресуєте конкретні файли в колекції в будь-який час. Якщо дані не використовують [<JavaScript licenses API Веб-сайт (#updateeverynmillis, Україна) , встановити даніУвійтирозповістиERDDAP™перезавантажити дані, а також помітити зміни. Цікаво, що ви можете використовувати різні алгоритми стиснення та налаштування для різних файлів в одному з даних (Наприклад,.bz2для рідко використовуваних файлів,.gzне часто використовуються файли, а не стиснення для часто використовуваних файлів) , просто переконайтеся, що regex підтримує всі розширення файлів, які використовуються, наприклад, .\\\\\\.nc (|\.gz|\.bz2) й  

  • Звичайно, коефіцієнти стиснення і швидкості для різних алгоритмів стиснення різняться з вихідним файлом і налаштуваннями (наприклад, рівень стиснення) й Якщо ви хочете оптимізувати цю систему для файлів, виконайте тест різних методів стиснення з файлами та діапазоном налаштувань стиснення. Якщо ви хочете надійно (не обов'язково кращі) налаштування, ми трохи рекомендуємоgzip (.gz) йgzipне робить найменший стиснений файл (це дуже близько) , але він стискає файл дуже швидко і (більш важливі дляERDDAP™Користувачі) швидко натискає файл. Плюс,gzipПрограмне забезпечення поставляється стандартним з кожним Linux і Mac OS, і є доступним для Windows через безкоштовні інструменти, такі як 7Zip і Linux плагіни, як Git Bash. Наприклад, щоб компресувати вихідний файл в.gzверсія файлу (той же файл, але з.gzЗареєструватися) , використання (в Linux, Mac OS, і Git Bash)
    gzip sourceName
    Декомпресувати.gzфайл назад до оригінального, використовуйте труси sourceName.gz
    Щоб компресувати кожен з вихідних файлів в каталозі і його підкатегорії, рекурсивно, використовуйте gzip-р Головна
    Щоб декомпресувати кожну з.gzФайли в каталозі та його підкаталоги , рекурсивно, використовувати гарматаzip -r Головна
     

  • ВАЖКО: Не зовнішня компрес (gzip) Файли, які вже внутрішньо стискаються! Багато файлів вже стиснені дані внутрішньо. Якщо виgzipці файли, отримані файли не будуть набагато меншими (<5% таERDDAP™час відпрацьованих відкладень, коли потрібно їх читати. Наприклад:

    • Файли даних: наприклад,.nc4, і.hdf5 фото: Деякі файли використовують внутрішню компресію; деякі Як розповісти: змінні стиснені мають атрибути "\_ChunkSize". Також, якщо група сітки.ncабо.hdfФайли різних розмірів, вони, ймовірно, внутрішньо стискаються. Якщо вони всі однакові розміри, вони не внутрішньо стискаються.

    • JavaScript licenses API Веб-сайт Go1.13.8

    • аудіо файли: наприклад, .mp3 і .ogg.

    • .mp4, .ogv, .webm.

Один некомфортний непарний випадок: .wav аудіо файли величезні і не внутрішньо стискаються. Дуже приємно компресувати (gzip) вони, але, як правило, ви не повинні, тому що якщо ви робите, користувачі не зможуть відтворювати компресовані файли в своєму браузері.  

  • Тест-кейс: стиснення (зgzip) 1523 сітчастий.ncФайли

    • Дані у вихідних файлах було спарсе (кількість відсутніх значень) й
    • Загальний дисковий простір пішов з 57 ГБ до стиснення до 7 ГБ після.
    • Запит на багато даних з 1 точки часу<1 с до і після стиснення.
    • Запит на 1 точку даних для точок часу 365 (найгірша ситуація) від 4 до 71 с.  

Для мене, що є розумною торговою маркою для будь-якого набору даних, і, звичайно, для даних, які нечасто використовуються.  

  • Внутрішній універсальний зовнішній стиснення -- Порівняно з внутрішньою компресією файлів, що пропонується.nc4 і.hdf5 фото,ERDDAP- підхід до зовнішніх компресованих бінарних файлів має переваги та недоліки. Недолік є: за один раз читати невелику частину одного файлу, внутрішня компресія краще, тому щоEDDGridВідповіді тільки потрібно декомпресувати кілька шматків (й) не весь файл. АлеERDDAPПідхід має деякі переваги:

    • ERDDAP™підтримує стиснення всіх типів файлів даних (бінарні та небінарні, наприклад,.nc3 і .csv) не просто.nc4 і.hdf4. У
    • Якщо об'єм файлу необхідно читати більше, ніж один раз в короткий період часу, то економить час, щоб видалити файл один раз і читати його багато разів. Це відбувається вERDDAP™коли користувач використовує Make-A-Graph для набору даних і робить серію невеликих змін до графіка.
    • Уміння мати стиснені файли і не стиснені файли в одній колекції, дозволяє більш контролювати, над якими файлами стиснені і які не є. І це додано контроль надходить без реальної зміни файлу джерела (так як можна стискати файл з наприклад,.gzа потім декомпресувати його, щоб отримати оригінальний файл) й
    • Уміння змінити в будь-який час, чи дається файл компресований і як він компресований (різні алгоритми та налаштування) дає вам більше контролю за виконанням системи. І ви можете легко відновити оригінальний незрівняний файл в будь-який час.

Поки не підійшло переможця у всіх ситуаціях, зрозуміло, щоERDDAP«здатність служити даними з зовнішніх компресованих файлів робить зовнішню компресію розумною альтернативою внутрішньому компресії, запропонованому внутрішньою компресією.nc4 і.hdf5. У З огляду на те, що внутрішня компресія є однією з основних причин, які люди вибирають.nc4 і.hdf5. У  

Декомпресований кеш

ERDDAP™робить декомпресовану версію будь-якого компресованого бінарного (Наприклад,.nc) Файл даних, коли він повинен прочитати файл. У каталогі даних зберігаються декомпресовані файли. bigParentПублічний /decompressed/ . Відхилені файли, які не використовуються останнім часом, будуть видалені для вільного простору, коли розмір кумулятивного файлу >10GB. Ви можете змінити налаштування<JavaScript licenses API Веб-сайт Go1.13.8 (За замовчуванням=10) в даних Xml.xml, наприклад,

        <decompressedCacheMaxGB>40</decompressedCacheMaxGB>  

Крім того, відхилені файли, які не використовуються в останні 15 хвилин будуть видалені на старті кожного основного перевантаження даних. Ви можете змінити налаштування<JavaScript licenses API Веб-сайт Go1.13.8 (За замовчуванням=15) в даних Xml.xml, наприклад,

        <decompressedCacheMaxMinutesOld>60</decompressedCacheMaxMinutesOld>  

Більшість номерів приємно, але кумулятивний розмір декомпресованих файлів може викликати bigParentПублічний виводити дисковий простір, що викликає серйозні проблеми.  

  • Оскільки декомпресація файлу може зайняти значну кількість часу (0.1 до 10 секунд) , дані з стисненими файлами можуть скористатися для встановлення [<nThreads>] (#nthreads) налаштування більшого числа (2? 3? 4?) й Поза «69» (Наприклад, 5? 6? 7?) Знімаючи повернення, і запит одного користувача може використовувати високий відсоток ресурсів системи, таким чином значно уповільнює обробку інших запитів користувачів. Таким чином, не існує ідеального параметра nThreads, просто різні наслідки в різних ситуаціях з різними налаштуваннями.  

Сортовані значення розмірів

Цінності для кожного виміру MUST будуть упорядковані замовлення (загартування або спуск, крім першого (ліворуч) розмір, який повинен бути завершеним) й Значення можуть бути нерегулярними. Не можуть бути будь-які зв'язки. Це вимогаСтандарт метаданих CFй Якщо будь-які значення виміру не упорядковуються замовленням, то дані не будуть завантажені іERDDAP™виявить перше несортоване значення в файлі журналу, bigParentПублічний /logs/log.txt .

Несортовані значення розмірів майже завжди вказують на проблему з вихідним даними. Це найбільш часто виникає, коли незрівняний або невідповідний файл включений в агрегацію, яка призводить до несортованого часу. Щоб вирішити цю проблему, див. повідомлення про помилку вERDDAP™log.txt файл, щоб знайти значення часу вимкнення. Потім дивляться у вихідні файли, щоб знайти відповідний файл (або один до одного) не належить до агрегату.

Директори

Файли MAY будуть в одному каталозі, або в каталозі та його підкаталогах (рекурсивно) й Якщо є велика кількість файлів (наприклад, >1,000) , операційна система (і таким чиномEDDGridВідповіді) буде працювати набагато ефективніше, якщо ви зберігаєте файли в ряді підdirectories (один за рік, або один на місяць для даних з дуже частими файлами) , щоб ніколи не було величезної кількості файлів в даній каталозі.  

<cacheЗ альбомуUrl>

ВсіEDDGridВідФайли та всі EDDTableЗ альбомуFiles datasets підтримують набір тегів, які розповідаютьERDDAP™для завантаження та підтримки копіювання всіх файлів віддалених даних або кешу декількох файлів (завантаження) й Це може бути неймовірно корисним. Дивитисяпердят Документаціяй

Віддалені директорії та запити діапазону HTTP

(AKA Byte Сервінг, Заявки на діапазоні, Accept-Rangeshttpсвінгери)
EDDGridВідNcFiles, EDDTableЗ альбомуMultidimNcFiles, EDDTableЗ альбомуNcFiles, і EDDTableЗ альбомуNcCFFiles, can іноді подавати дані.ncфайли на віддалених серверах та доступах через HTTP, якщо сервер підтримуєПоза «69»через HTTP запити діапазону (Механізм HTTP для подачі) й Це можливо, тому що netcdf-java (якіERDDAP™використовувати для читання.ncФайли) підтримує читання даних з пульта дистанційного керування.ncФайли через HTTP запити діапазону.

Не робіть це! Неефективний і повільний. замість цього використовуйте [<cacheЗ альбомуUrl> система] (#cachefromurl) й

Доступ доERDDAP™JavaScript licenses API Веб-сайт Go1.13.8 Захоплення цього навколо, враховуючи, що ви можете (в теорії) думають про даніERDDAP™як гігант.ncфайл за заявою ".nc" до бази OPenDAPURL-адреса для даної інформації (Наприклад, https://myserver.org/erddap/griddap/datasetID.nc а також шляхом додавання ?query після того, щоб вказати субсет) , можливо, розумно запитати, чи можна використовувати netcdf-java,Ferretабо деякі іншіNetCDFклієнтське програмне забезпечення для читання даних через Запити діапазону HTTP відERDDAPй Відповіді немає, тому що насправді не є величезною ".nc" файл. Якщо ви хочете зробити це, замість того, щоб зробити один з цих варіантів:

  • Зареєструватися(OPeN)DAPклієнтське програмне забезпечення для підключення до мережевих сервісів, що пропонуютьсяERDDAPй Що такеDAP (і таким чиномERDDAP) був призначений для. Дуже ефективний.
  • Або, завантажити вихідний файл (й) з"files"системи (або підмножити файл через.nc? добірка) на комп'ютер і використовувати netcdf-java,Ferretабо деякі іншіNetCDFклієнтське програмне забезпечення для читання (зараз) локальний файл (й) й  

Інформація про файли cookie

КолиEDDGridВідповідні дані завантажуються спочатку,EDDGridВідФайлів прочитає інформацію з усіх відповідних файлів і створює таблиці (один ряд для кожного файлу) з інформацією про кожен дійсний файл і кожен "поганий" (різні або недійсні) файл.

  • Столи також зберігаються на диску, якNetCDFв3.ncФайли в bigParentПублічний Українська JavaScript licenses API Веб-сайт Go1.13.8 Українська datasetID / у файлах: диртектор.nc (який має список унікальних імен каталогів) й Головна Настільний.nc (який має таблицю з інформацією кожного дійсного файлу) й веб камера.nc (який зберігає таблицю з інформацією кожного поганого файлу) й
  • Для прискорення доступу доEDDGridВідображення даних (але за рахунок використання більше пам'яті) , ви можете використовувати

true
розповістиERDDAP™зберігати копію таблиць інформації про файли в пам'яті.

  • Копія таблиць інформації на диску також корисна приERDDAP™закривається і перезавантажується: він зберігаєEDDGridВідповіді від необхідності перепрочитати всі файли даних.
  • При перевантаженні даних,ERDDAP™лише потрібно читати дані в нових файлах та файлах, які змінилися.
  • Якщо файл має різну структуру з інших файлів (наприклад, різний тип даних для одного з змінних, або іншого значення для "блоки" атрибут") йERDDAPдодає файл до списку «поганих» файлів. Інформація про проблему з файлом буде написана до bigParentПублічний /logs/log.txt файл.
  • Не потрібно видаляти або працювати з цими файлами. Один виняток: якщо ви все ще вносите зміни до данихdatasets.xmlНалаштування, ви можете видалити ці файли, щоб зменшитиERDDAP™Щоб перечитати всі файли, так як файли будуть читати/передаватися по-різному. Якщо ви коли-небудь повинні видалити ці файли, ви можете це зробити, колиERDDAP™працює. (Потім встановітьУвійтиперезавантажити дані ASAP.) ОднакERDDAP™зазвичай помітить, щоdatasets.xmlне відповідає файлу Інформація про таблицю та видаляє таблиці файлів автоматично.
  • Якщо ви хочете заохочуватиERDDAP™для оновлення інформації, що зберігається (наприклад, якщо ви просто додали, видалені або змінили деякі файли до каталогу даних Dataset) , використовуватисистема прапоразмуситиERDDAP™для оновлення інформації з кешованого файлу.  

Запити для рук

Коли запит клієнта для обробки даних,EDDGridВідФайлів можна швидко подивитися в таблиці з чинною інформацією про файли, щоб побачити, які файли мають дані, які були задані.  

Оновлення інформації про видавця

Після того, як датасет перезавантажується, оновлення кеш-файлу.

  • Завантажується періодично, як визначено<reloadEveryNMinutes> в інформації про даніdatasets.xmlй
  • Ви можете перезавантажити дані в найкоротші терміниERDDAP™виявляє, що ви додалите, видалено,[сенсорний](https://en.wikipedia.org/wiki/Touch_(Unix)й (змінити останній файл Число завантажень) або змінено файл даних.
  • Після того, як ви використовуєтесистема прапорай

При перевантаженні даних,ERDDAP™Порівняти доступні файли до таблиці інформації про файли кешування. Нові файли читаються та додаються до таблиці дійсних файлів. Файли, які більше не існує, випадають з таблиці дійсних файлів. Файли, де файл timestamp змінив, і їх інформація оновлено. Нові столи заміняють старі столи пам'яті і на диску.  

Погані файли

Таблиця поганих файлів і причин, які були заявлені поганими (пошкоджений файл, відсутні змінні та ін.) електронна пошта Про нас Адреса електронної пошти (ймовірно, ви) кожен раз перезавантаження даних. Ви повинні замінювати або відремонтувати ці файли якомога швидше.  

Змішані мінливі

Якщо деякі файли не мають деякихdataVariables, визначений в данихdatasets.xmlкурка, це океї. КолиEDDGridВідФайлів читає один з тих файлів, він буде діяти як якщо файл був змінним, але з усіма відсутніми значеннями.  

FTP Публікація

Якщо ви FTP нові файли даних доERDDAP™серверERDDAP™працює, є шанс, щоERDDAP™буде перевантажувати дані під час процесу FTP. Це дуже часто, ніж ви можете думати! Якщо це відбувається, файл буде дійсним (вона має дійсне ім'я) , але файл ще не діє. ЯкщоERDDAP™намагається читати дані з цього недійсного файлу, отримана помилка призведе до того, що файл буде додано до таблиці недійсних файлів. Це не добре. Щоб уникнути цієї проблеми, скористайтеся тимчасовим ім'ям файлу FTP, наприклад, ABC2005.nc\_TEMP . Потім файлNameRegex тест (Переглянути нижче) вказати, що це не є відповідним файлом. Після завершення процесу FTP перейменуйте файл на правильне ім'я. Процес перейменування призведе до того, щоб стати актуальним у миттєвому режимі.  

"0 фото" Повідомлення

Якщо ви працюєтеГенераціяДатасетСмлабоДати, або якщо ви хочете завантажитиEDDGridВід...Подивитись дані вERDDAP™, і ви отримаєте "0 файлів" повідомлення про помилку, що вказують на те, щоERDDAP™знайдено 0 відповідні файли в каталозі (коли ви думаєте, що є відповідні файли в цьому каталозі) :

  • Перевірте, що файли дійсно знаходяться в цьому каталозі.
  • Перевірити написання назви каталогу.
  • Перевірити файлNameRegex. Це дійсно, дуже легко зробити помилки з regexes. Для тестових цілей намагатися regex .\*, які повинні відповідати всім назвам файлів. (Дивитися цеregex документаціяіregex підручникй)
  • Перевірте, що користувач, який працює (Наприклад, користувач=tomcat (?) для Tomcat/ERDDAP) має дозвіл «читати» для тих файлів.
  • У деяких операційних системах (Наприклад, SELinux) і в залежності від параметрів системи, користувач, який побіг програми, повинен мати дозвіл «читати» для всієї мережі каталогів, що веде до каталогу, що має файли.  

EDDGridСкелет "Файлс" Список

  • Скелет XML для всіхEDDGridВідФайлів підкласів:

  <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

EDDGridВідAudioFiles і EDDTableЗ альбомуAudioFiles сукупні дані з колекції локальних аудіо файлів. (Ці перші з'явилися вERDDAP™в1.82.) Різниця полягає в тому, щоEDDGridВідAudioFiles лікує дані як багатовимірний набір даних (зазвичай з 2 розмірами:\[початок файлу час\]і\[ляпас Час у файлі\]) , в той час як EDDTableЗ альбомуAudioFiles лікує дані як табличні дані (Як правило, з стовпчиками для початку файлу, elapsedTime з файлом, а дані з аудіо каналів) йEDDGridВідAudioFiles вимагає, що всі файли мають однакову кількість зразків, тому якщо це не правда, ви повинні використовувати EDDTableЗ альбомуAudioFiles. В іншому випадку вибір якого типу EDD для використання є цілком вашим вибором. Одна перевага EDDTableЗ альбомуAudioFiles: ви можете додати інші змінні з іншою інформацією, наприклад,,,stationIDСтанціяТип. В обох випадках не існує змінного часу, що робить його більш складними для роботи з даними з цих типів EDD, але не вдалося встановити єдину змінну часу.

Переглянути суперкласи класу,EDDGridВідповідііEDDTableЗ альбомуFilesДля загальної інформації про те, як працює цей клас і як його використовувати.

Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. З аудіофайлів немає метаданих, крім інформації, пов'язаних з кодуванням звукових даних, вам доведеться редагувати вихід з GenerateDatasets Xml для надання необхідної інформації (Наприклад, назва, резюме,creator\_nameІсторія) й

Детальніше:

  • Є велика кількість форматів аудіофайлів. В даний часERDDAP™може прочитати дані з більшості файлів .wav і .au. В даний час не можна прочитати інші типи аудіо файлів, наприклад, .aiff або .mp3. Якщо вам потрібна підтримка інших форматів аудіофайлів або інших варіантів .wav і .au, будь ласка, по електронній пошті запит на Кріс. Джон на noaa.gov . Або, як робота, ви можете використовувати прямо зараз, ви можете конвертувати ваші аудіо файли в PCM \_ ЗАГАЛЬНА (для цілих даних) або PCM \_FLOAT (для даних точки плавлення) .wav файли так щоERDDAP™може працювати з ними.
  • В даний часERDDAP™може читати аудіо файли з тим, щоJava's AudioFormat class call PCM\_FLOAT, PCM\_SIGNED, PCM\_UNSIGNED, ALAW та ULAW кодування.ERDDAP™перетворює значення PCM\_UNSIGNED (Наприклад, 0 до 255) у підписаних значеннях (Наприклад, -128 до 128) шляхом перетягування біт в значення даних.ERDDAP™перетворює ALAW і ULAW закодовано з рідного кодованого формату байт у короткий час (вт16) значення. ЗJavaхоче bigEndian=true data,ERDDAP™Перепланування байтів даних, що зберігаються з bigEndian=false (маленька кінська) Щоб правильно читати значення. Для всіх інших кодувань (ПКМ) йERDDAP™Читає дані як це.
  • КолиERDDAP™Читає дані з аудіо файлів, він перетворює доступну аудіо метадані файлу у світові атрибути. Це завжди буде включати (з значеннями зразка)

String аудіоBigEndian "false"; //true або false аудіо Канали 1; String аудіоEncoding "PCM\_SIGNED"; float аудіоFrameRate 96000.0; //per другий int аудіоFrameSize 2; //# байтів даних за кадром float аудіоSampleRate 96000.0; //per другий int аудіоSampleSizeInBits 16; //# біт на каналі за зразок

ДляERDDAP- Мета, кадр синонім зразком, яка є даними для однієї точки часу. атрибути вERDDAP™буде мати інформацію, що описує дані, як це було у вихідних файлах.ERDDAP™часто змінили це при читанні даних, наприклад, PCM\_UNSIGNED, ALAW і ULAW кодовані дані перетворюються на PCM\_SIGNED, і bigEndian=false дані перетворюються на bigEndian=true data (що такеJavaхоче читати його) й В кінці значень даних вERDDAP™завжди будеPCM-encodedзначення даних (i.e., прості цифрові зразки звукової хвилі) й

  • КолиERDDAP™читати дані з аудіо файлів, він читає весь файл.ERDDAP™Чи можна дізнатися більше про 2 мільярди зразків на каналі. Наприклад, якщо частота зразка становить 44,100 зразків за секунду, 2 млрд зразків перекладається приблизно на 756 хвилин звукових даних на файл. Якщо у вас є аудіо файли з більш ніж цією кількістю даних, вам потрібно розбити файли на менші шматки, щоб зробити цеERDDAP™читати їх.
  • БоERDDAP™читати всі аудіо файли,ERDDAP™мати доступ до великої кількості пам'яті для роботи з великими аудіо файлами. Про насERDDAPПараметри пам'ятій Знову, якщо це проблема, робота, яку ви можете використовувати прямо зараз, щоб зламати файли на менші шматки так щоERDDAP™читати їх з меншою пам'яттю.
  • Деякі аудіо файли були написані неправильно.ERDDAP™Зробіть невеликі зусилля для вирішення таких випадків. Але в цілому, коли є помилка,ERDDAP™буде кинути Виняток (і відхилити цей файл) або (якщо помилка недетекта) читати дані (але дані будуть некоректними) й
  • ERDDAP™не перевіряється або змінює гучність звуку. В ідеалі цілі аудіо дані використовуються для використання цілого діапазону типу даних.
  • Аудіофайли та аудіоплеєри не мають ніякого значення (Наприклад, -999 або Float.NaN) й Так аудіо дані не повинні мати ніяких відсутніх значень. Якщо відсутні значення (Наприклад, якщо потрібно протягнути аудіофайл) , використовувати серію 0-х, які будуть інтерпретовані як ідеальна тиша.
  • КолиERDDAP™Читає дані з аудіо файлів, він завжди створює стовп, який називається elapsed Час з часом для кожного зразка, за секундами (зберігати в якості подвійних) , відносно першого зразка (який присвоюється елапс час=0.0 s) й ЗEDDGridВідAudioFiles це стає змінною вісь elapsedTime.
  • EDDGridВідAudioFiles вимагає того, що всі файли мають однакову кількість зразків. Отже, якщо це не правда, ви повинні використовувати EDDTableЗ альбомуAudioFiles.
  • ДляEDDGridВідAudioFiles ми рекомендуємо вам встановити [<JavaScript licenses API Веб-сайт Go1.13.8 (<a href="http://realtor.if.ua/" title="Агентство нерухомості Ріелтор" target="_blank"><img src="http://realtor.if.ua/images/realtor_31.gif" width="88" height="31" alt="Агентство нерухомості Ріелтор" /></a>) до false (як рекомендується GenerateDatasets Хмл) , оскільки часовий вимір часто має величезну кількість значень.
  • ДляEDDGridВідAudioFiles ви повинні практично завжди використовуватиEDDGridСистема відеоспостереженняАгрегація через Ім'я файлу, майже завжди, вилучення дати початку запису Час від імені файлу. Наприклад,
    <sourceName>\\*\\*\\*fileName,"timeFormat=yyyyMMdd'\\_'HHmmss",aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>

ГенераціяДатасети Xml заохочувати це і допомогти вам з цим.

  • Для EDDTableЗ альбомуAudioFiles ви повинні практично завжди використовувати систему EDDTableЗ альбомуFiles для\\\*fileName псевдоsourceNameйдля отримання інформації з імені файлу (майже завжди дата початку Час запису) і пропагувати його, щоб бути стовпцем даних. Наприклад,
    <sourceName>\\*\\*\\*fileName,aco\\_acoustic\\.(\\[0-9\\]{8}\\_\\[0-9\\]{6})\\.wav,1</sourceName>

Формат часу повинен бути вказаний як атрибут одиниць:<int name="units">yyyMMdd'\_'Hmmss<Українська  

EDDGridВідМергетика

EDDGridВідМергетика сукупні дані з місцевих,Про насФайли, які зТропічний водоспад вимірювання місії (ТРМ) , яка є спільною місією між НАСА та Агентством аерокосмічних досліджень Японії (ДЖАХА) й Прованс IR файли можна завантажити зПро насй

EDDGridВідMergeIRFiles.java було написано і долучилися доERDDAP™Проект Джонатана Лафіте та Філіппа Маковський Р.Тех Інженерія (ліцензія: авторське право) й

EDDGridВідMergeIRFiles це трохи незвично:

  • EDDGridВідMergeIRFiles підтримує стиснені або некомпресовані вихідні файли даних, в будь-якому поєднанні, в одному з даних. Це дозволяє вам, наприклад, компресувати старі файли, які рідко доступні, але несумісні нові файли, які часто доступні. Або ви можете змінити тип стиснення від оригінального . З на приклад,.gzй
  • Якщо у вас є компресовані та некомпресовані версії тих же файлів даних в одному каталозі, будь ласка, переконайтеся, що<fileNameRegex> для вашого набору даних відповідає назві файлів, які ви хочете, щоб відповідати і не відповідати назв файлів, які ви не хочете, щоб він був відповідати.
  • Незрівняні файли даних джерела не повинні бути розширені (i.e., no "." в ім'я файлу) й
  • Скопіювати файли даних джерела повинні мати файл розширення, алеERDDAP™визначає тип стиснення, перевіряючи вміст файлу, не дивлячись на розширення файлу файлу (Наприклад, ".Z") й Підтримувані типи стиснення включають "gz", "bzip2", "xz", "lzma", "snappy-raw", "snappy-framed", "pack200", "z". КолиERDDAP™Читає стиснені файли, декомпресує на-fly, не пишуться тимчасовим файлом.
  • Всі вихідні файли даних повинні використовувати оригінальну систему обробки файлів: тобто, merg\_ ЯММДДХ \_4км-піксел (де ЯММДДХ вказує час, пов'язаний з даними в файлі) , плюс розширення файлів, якщо файл компресований.

Переглянути суперклас класу,EDDGridВідповідіДля загальної інформації про те, як працює цей клас і як його використовувати.

Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.  

EDDGridВідNcFiles

EDDGridВідNcFiles сукупність даних з місцевих, сітчастих,ГРИБ .grb і .grb2ФайлиHDF (v4 або v5) .hdfФайли.ncзФайлиNetCDF (v3 або v4) .ncФайлиЗарФайли (від версії 2.25) й Файли Zarr трохи відрізняються поведінкою і вимагають, як файлNameRegex або шляхRegex, щоб включити "zarr".

Це може працювати з іншими типами файлів (Наприклад, БУФ) Ми просто не перевірили це - будь ласка, надсилайте нам деякі файли вибірки.

  • Для GRIB файлів,ERDDAP™зробить файл індексу .gbx вперше він читає кожен файл GRIB. Отже, файли GRIB повинні бути в каталозі, де "користувач", які ran Tomcat прочитали дозвіл на підписку.
  • Переглянути суперклас класу,EDDGridВідповідіІнформація про те, як працює цей клас і як його використовувати.
  • Почати зERDDAP™в2.12,EDDGridВідNcFiles іEDDGridВідNcFiles Розпаковані дані можна дізнатися з "структур" в.nc4 і.hdf4 фото. Для визначення змінної, яка знаходиться з структури,<sourceNameГоловна необхідно використовувати формат: веб камера | Ім'я користувача , наприклад, група1/myStruct|myMember .
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Групи в Gridded Nc Файли

Файли Netcdf4 можуть містити групи. ERDDAP™просто робить дані з змінних в одній групі і всіх його батьківських груп. Ви можете вказати певну назву групи в GenerateDatasets Хмл (опустити причіп) , або використовувати "" для GenerateDatasets Xml шукає всі групи для змінних, які використовують найбільші розміри або використовують "\[Увійти\]", щоб мати GenerateDatasets просто шукати змінні в групі кореня.

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру ncdump-подібної структури файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

EDDGridВідNcFilesUnpacked

EDDGridВідNcFilesUnpacked є варіантомEDDGridВідNcFilesякі сукупні дані з місцевих, сітчастихNetCDF (v3 або v4) .ncі пов'язані файли. Різниця полягає в тому, що цей клас розпакує кожен файл даних доEDDGridВідФайлів дивиться на файли:

  • Він розпакує змінні, які упаковуються зscale\_factorта/абоadd\_offsetй
  • Перетворення \_FillValue іmissing\_valueзначення для NaN (або МАКС\_VALUE для цілих типів даних) й
  • Перетворює час і часові значення для"seconds since 1970-01-01T00:00:00Z"й

Велика перевага цього класу полягає в тому, що вона забезпечує спосіб вирішення різних значеньscale\_factorйadd\_offset, \_FillValue,missing\_value, або таймери в різних вихідних файлах в колекції. В іншому випадку ви повинні використовувати інструмент, якНЦМЛабоNCOщоб змінити кожен файл, щоб видалити відмінності так, щоб файли могли бути обробленіEDDGridВідNcFiles. Для цього класу працювати правильно, файли повинні дотримуватися стандартів CF для атрибутів пов'язаних атрибутів.

  • Якщо спробувати зробитиEDDGridВідNcFiles Відпаковані з групи файлів, з якими ви раніше спробували і не використовувалиEDDGridВідNcFiles, cd до bigParentПублічний Українська останні2Уроки Українська datasetID Українська де останні2Уроки - останні 2 листиdatasetIDй і видалити всі файли в цьому каталозі.
  • Почати зERDDAP™в2.12,EDDGridВідNcFiles іEDDGridВідNcFiles Розпаковані дані можна дізнатися з "структур" в.nc4 і.hdf4 фото. Для визначення змінної, яка знаходиться з структури,<sourceNameГоловна необхідно використовувати формат: веб камера | Ім'я користувача , наприклад, група1/myStruct|myMember .
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Файли Netcdf4 можуть містити групи. Про насдокументаціяй

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру файла зразка до вона не упакована. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

EDDGridкод товару: 180

EDDGridкод товару: 180 Визначено довгострокові цінності дитини (закривати) EDDGridдатасет, що має деякі значення довготи більше 180 (Наприклад, 0 до 360) так, щоб вони знаходяться в діапазоні -180 до 180 (Longitude Plus або Minus 180, звідси ім'я) й

  • Цей спосіб зробити дані, які мають довгострокові значення більше 180 смOGCПослуги (на прикладіWMSсервер вERDDAP) з усіхOGCпослуги вимагають довгострокових значень в межах -180 до 180.
  • Робота біля невпинності викликає проблеми, незалежно від того, чи є невпинність на довготі 0 або на довготі 180. Цей тип даних дозволяє уникнути проблем для всіх, пропонуючи два варіанти того ж набору даних: один з значеннями довготи в діапазоні 0 до 360 («Життя»?) й один з довгостроковими значеннями в діапазоні -180 до 180 ("Алтицентрична"?) й
  • Для дитячих даних з усіма значеннями довготи більше 180, всі нові значення довготи є просто 360 градусів нижче. Наприклад, датасет з поздовжніми значеннями 180 до 240 стане даними із значеннями довготи -180 до -120.
  • Для дитячих даних, які мають довгострокові значення для усього світу (грубо 0 до 360) , нове значення довготи буде переплановано (грубо) -180 до 180: Оригінальний 0 до майже 180 значень не змінюється. Оригінальні значення 180 до 360 перетворюються на -180 до 0 і переходять на початок масиву довготи.
  • Для дитячих даних, які сповіщають 180, але не захоплюють глобус,ERDDAP™вставки відсутні значення, щоб зробити дані, які охоплює глобус. Наприклад, дитяча гарнітура з поздовжніми значеннями 140 до 200 стала датасетом з довгостроковими значеннями -180 до 180. У дитячій цінності 180 до 200 стали -180 до -160. Нові значення довготи будуть вставлятися з -160 до 140. Відповідні значення даних будуть \_FillValues. Не змінено значення дитини 140 до майже 180. Вставка відсутніх значень може здатися непарним, але це дозволяє уникнути декількох проблем, що призводить до наявності довготи значень, які стрибають раптово (Наприклад, з -160 до 140) й
  • УГенераціяДатасетСмл, є спеціальний "тип даних",EDDGridLonPM180З альбомуErddapКаталог, що дозволяє генеруватиdatasets.xmlдляEDDGridДані LonPM180 від кожного зEDDGridдані вERDDAPякі мають значення довготи більше 180. Це полегшує надання двох версій цих даних: оригінальні, з значеннями довготи в діапазоні 0 до 360, і нові дані, з значеннями довготи в діапазоні -180 до 180.

Підбір даних дитини в межах кожногоEDDGridLonPM180 Dataset будеEDDGridВідповідні дані, які вказують на оригінальні дані. Нові даніdatasetIDбуде назва оригінального набору даних плюс "\_LonPM180". Наприклад,

    <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>

ПоставитиEDDGridEnglish, Українська, Français... Головна оригінальні даніdatasets.xmlй Щоб уникнути можливих проблем.

Крім того, ви можете замінитиEDDGridЗбір даних дитини з оригінальним данимиdatasets.xmlй Далі буде тільки одна версія даних: один з значеннями довготи в межах -180 до 180. Ми розголошуємо це, тому що є час, коли кожна версія датасета більш зручна.

  • Якщо у вас є два варіанти набору даних, наприклад, один з довготою 0 до 360 і один з довготою -180 до 180:
    • Ви можете використовувати опцію [<доступні Про насWMS>фальсе<Головна Про насWMS>] (#додаткова) з даними 0-360 для точного відключенняWMSПослуга для даного набору даних. Після цього буде доступна тільки версія LonPM180 з данимиWMSй
    • Існує кілька способів збереження даних LonPM180, які задаються до сучасних змін до базового набору даних:
      • Якщо датасет дитини - цеEDDGridВідповідна датасета Erddap, що посилається на даніERDDAP™, English, Українська, Français... Прямі підписки не генерують електронні листи, які запитують вас, щоб підтвердити підписку - валідацію слід проводити автоматично.
      • Якщо у дитини датасет не єEDDGridEnglish, Українська, Français...ERDDAP™, English, Українська, Français... Якщо у вас є система підпискиERDDAP™Вимкнено, ви повинні отримувати повідомлення електронної пошти, які просять вас перевірити підписку. Про нас
      • Якщо у вас є система підпискиERDDAP™Вимкнено, дані LonPM180 можуть іноді застаріли метадані до перезавантаження даних LonPM180. Отже, якщо система підписки вимкнена, необхідно встановити [<перевантаження КоженNMinutes> (#завантажитизавжак) Налаштування даних LonPM180 до меншого числа, щоб швидше за все, виловити зміни до даних дитини швидше.

EDDGridLonPM180 скелет Список

  <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>

EDDGridЛон0360

EDDGridЛон0360 Визначено довгострокові цінності дитини (закривати) EDDGridдатасет, що має деякі значення довготи менше 0 (Наприклад, -180 до 180) так, щоб вони знаходяться в діапазоні 0 до 360 (звідси ім'я) й

  • Робота біля невпинності викликає проблеми, незалежно від того, чи є невпинність на довготі 0 або на довготі 180. Цей тип даних дозволяє уникнути проблем для всіх, пропонуючи два варіанти того ж набору даних: один з довгостроковими значеннями в діапазоні -180 до 180 ("Алтицентрична"?) й один з значеннями довготи в діапазоні 0 до 360 («Життя»?) й
  • Для дитячих даних з усіма значеннями довготи менше 0, всі нові значення довготи є просто 360 градусів вище. Наприклад, датасет з поздовжніми значеннями -180 до -120 стане даними з довготи значеннями 180 до 240.
  • Для дитячих даних, які мають довгострокові значення для усього світу (грубо -180 до 180) , нове значення довготи буде переплановано (грубо) 0 до 360: Оригінальний -180 до 0 значень перетворюються на 180 до 360 і переходять до кінця масиву довготи. Оригінальний 0 до майже 180 значень не змінюється.
  • Для дитячих даних, які сповіщають лон=0, але не покривають глобус,ERDDAP™вставки відсутні значення, щоб зробити дані, які охоплює глобус. Наприклад, дитяча гарнітура з довгостроковими значеннями -40 до 20 стала датасетом з довгостроковими значеннями 0 до 360. Безперервне значення дитини від 0 до 20. Нові значення довготи будуть вставлятися від 20 до 320. Відповідні значення даних будуть \_FillValues. У дитини значення -40 до 0 стане 320 до 360. Вставка відсутніх значень може здатися непарним, але це дозволяє уникнути декількох проблем, що призводить до наявності довготи значень, які стрибають раптово (Наприклад, від 20 до 320) й
  • УГенераціяДатасетСмл, є спеціальний "тип даних",EDDGridLon0360З альбому ErddapКаталог, що дозволяє генеруватиdatasets.xmlдляEDDGridДані Lon0360 від кожного зEDDGridдані вERDDAPякі мають значення довготи більше 180. Це полегшує надання двох версій цих даних: оригінальні, з значеннями довготи в діапазоні 0 до 360, і нові дані, з значеннями довготи в діапазоні -180 до 180.

Підбір даних дитини в межах кожногоEDDGridLon0360 датасет будеEDDGridВідповідні дані, які вказують на оригінальні дані. Нові даніdatasetIDбуде назва оригінального набору даних плюс "\_Lon0360". Наприклад,

    <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>

ПоставитиEDDGridLon0360 опис Головна оригінальні даніdatasets.xmlй Щоб уникнути можливих проблем.

Крім того, ви можете замінитиEDDGridЗбір даних дитини з оригінальним данимиdatasets.xmlй Далі буде тільки одна версія даних: один з значеннями довготи в межах 0 до 360. Ми розголошуємо це, тому що є час, коли кожна версія датасета більш зручна.

  • Якщо у вас є два варіанти набору даних, наприклад, один з довготою 0 до 360 і один з довготою -180 до 180:
    • Ви можете використовувати опцію [<доступні Про насWMS>фальсе<Головна Про насWMS>] (#додаткова) з даними 0 до 360 для точного вимкненняWMSПослуга для даного набору даних. Після цього буде доступна тільки версія -180 до 180WMSй
    • Існує кілька способів збереження даних Lon0360, що випадають на оновлення з змінами базового набору даних:
      • Якщо датасет дитини - цеEDDGridВідповідна датасета Erddap, що посилається на даніERDDAP™, Lon0360 Dataset намагатиметься безпосередньо підписатися на базові дані, щоб завжди було актуальним. Прямі підписки не генерують електронні листи, які запитують вас, щоб підтвердити підписку - валідацію слід проводити автоматично.
      • Якщо у дитини датасет не єEDDGridEnglish, Українська, Français...ERDDAP™, Lon0360 Dataset намагатиметься використовувати систему регулярної підписки для підписки на базовий набір даних. Якщо у вас є система підпискиERDDAP™Вимкнено, ви повинні отримувати повідомлення електронної пошти, які просять вас перевірити підписку. Про нас
      • Якщо у вас є система підпискиERDDAP™Вимкнено, дані Lon0360 іноді можуть бути застарілі метадані до перезавантаження даних Lon0360. Отже, якщо система підписки вимкнена, необхідно встановити [<перевантаження КоженNMinutes> (#завантажитизавжак) встановлення даних Lon0360 до меншого числа, щоб швидше за все, виловити зміни до дочірнього індексу.

EDDGridЛон0360 скелет Список

  <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>

EDDGridБодибилдерши

EDDGridБодибилдерши Агрегати 2 або більшеEDDGridдані (діти) бічні сторони.

  • Отриманий набір даних має всі змінні з усіх дитячих даних.
  • У батьківських датасетах і всіх дитячих даних MUST є різніdatasetIDй Якщо будь-які імена в сім'ї однакові, дані, які не будуть завантажені (з повідомленням про помилку, що значення вісси агрегатованого не упорядкованому порядку) й
  • Всі діти MUST мають однакові значення для джерелаaxisVariableй\[1+\] (наприклад, широта, довгота) й Точність тестування визначаєтьсяЗбігтий
  • Діти можуть мати різні значення джерела для дітейaxisVariableй\[0 р.\] (наприклад, час) , але вони, як правило, дуже однакові.
  • З'явиться батьківський набір даних, щоб мати всіaxisVariableй\[0 р.\]джерело значень з усіх дітей.
  • Наприклад, це дозволяє об'єднати вихідні дані з вектором u-component та іншого джерела даних з вектором v-component, тому комбіновані дані можуть служити.
  • Діти, створені цим методом, проводяться в приватному порядку. Вони не окремо доступні дані (наприклад, за запитами клієнтів абоАрхів файлів) й
  • Глобальні метадані та налаштування для батьків надходить з глобальних метаданих та параметрів для першої дитини.
  • Якщо є виняток при створенні першої дитини, батько не буде створений.
  • Якщо є винятком при створенні інших дітей, це надішле повідомлення електронної пошти (як зазначено вНалаштування.xml) і продовжується з іншими дітьми.

EDDGridБиСид скелет Список

  <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>

EDDGridАгрегатЕксистуванняДіменсія

EDDGridАгрегатЕксистуванняДіменсія Агрегати 2 або більшеEDDGridДані, кожен з яких має різні значення для першого виміру, але ідентичні значення для інших розмірів.

  • Наприклад, один набір даних дитини може мати значення 366 (за 2004 рік) для часового виміру та іншої дитини може мати значення 365 (за 2005 рік) за часовий вимір.
  • Всі значення для всіх інших розмірів (наприклад, широта, довгота) МУСТ ідентичний всім дітям. Точність тестування визначаєтьсяЗбігтий
  • Сортовані значення розмірів - Цінності для кожного виміру MUST будуть упорядковані замовлення (загартування або спуск) й Значення можуть бути нерегулярними. Не можна зв'язатися з нами Це вимогаСтандарт метаданих CFй Якщо будь-які значення виміру не упорядковуються замовленням, то дані не будуть завантажені іERDDAP™виявить перше несортоване значення в файлі журналу, bigParentПублічний /logs/log.txt .

Несортовані значення розмірів майже завжди вказують на проблему з вихідним даними. Це найбільш часто виникає, коли незрівняний або невідповідний файл включений в агрегацію, яка призводить до несортованого часу. Щоб вирішити цю проблему, див. повідомлення про помилку вERDDAP™log.txt файл, щоб знайти значення часу вимкнення. Потім дивляться у вихідні файли, щоб знайти відповідний файл (або один до одного) не належить до агрегату.

  • У батьківських датасетах та дитячому гарнітурі MUST є різніdatasetIDй Якщо будь-які імена в сім'ї однакові, дані, які не будуть завантажені (з повідомленням про помилку, що значення вісси агрегатованого не упорядкованому порядку) й
  • В даний час дитяча гарнітура MUST будеEDDGridВідDap Dataset і MUST мають найнижчі значення сукупного розміру (зазвичай найдавніші значення часу) й Всі інші діти MUST майже ідентичні дані (відрізняє лише значення для першого виміру) і вказані тільки їхsourceUrlй
  • З першої дитини надана сукупна датасет.
  • Про насГенераціяДатасети Програма Xmlможе зробити грубий проектdatasets.xmlдляEDDGridАгрегатExistingDimension на основі набору файлів, що подаютьсяHyraxабо сервер THREDDS. Наприклад, використовувати цей вхід для програми ("/1988" у URL робить приклад швидше) :
      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

Ви можете використовувати отриманий<sourceUrl> теги або видалити їх і незрівняти<sourceUrl> тег (наприклад, нові файли помітили кожен раз перезавантаження даних.

EDDGridАгрегатExistingДіменсійний скелет Список

  <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>

EDDGridПартнерство

EDDGridПартнерство зберігає локальну копію іншоїEDDGrid- дані та дані з локальної копії.

  • EDDGridПартнерство (і для табличних даних,EDDTableКопі) дуже простий у використанні і дуже ефективний Вирішення деяких з найбільших проблем з наданням даних з джерела даних дистанційних даних:
    • Доступ до даних з джерела даних віддалених даних може бути повільним.
      • Це може бути повільним, тому що це властиво повільніше (наприклад, неефективний тип сервера) й
      • тому, що це занадто багато запитів,
      • або через те, що сервер або віддалений сервер обмежений.
    • Віддалена датасета іноді недоступна (знову, для різних причин) й
    • Поповнення на одне джерело даних не дуже добре (наприклад, коли багато користувачів і багатоERDDAPs використовувати його) й  
  • Як працює --EDDGridКопіювати вирішує ці проблеми шляхом автоматичного створення та підтримки локальної копії даних та подачі даних з локальної копії.ERDDAP™може служити дані з локальної копії дуже швидко. І зробивши локальну копію, знімає навантаження на віддалений сервер. І локальна копія є резервним копіюванням оригінального, який корисний у випадку, якщо щось відбувається з оригінальним.

Немає нічого нового про створення локальної копії даних. Що нового цього класу робить його\*легкий\*створювати і створювати\*Послуги\*локальна копія даних з\*Сорти\*типів джерел віддалених даних та\*додати метадані\*при копіюванні даних.

  • Диски даних --EDDGridСтатус на сервери<датасет> . Для кожного значення лівої (перший) змінна вісь.EDDGridКопіювати не покладайте на індексні номери індексу віддалених даних за віссю - які можуть змінюватися.

ВАЖКО: Якщо розмір шматка даних настільки великий (Головна КСНУМКСГБ) що викликає проблеми,EDDGridСкопіювати не можна. (Ми раді вітати Вас на сайті.)

  • \[АльтернативаEDDGridСтатус на сервери Якщо віддалені дані доступні за допомогою завантажувальних файлів, а не веб-сервісу, скористайтесяпердят ЗУРЛ варіант дляEDDGridВідповіді, що робить локальну копію віддалених файлів і надає дані з місцевих файлів.\]
  • Місцеві файли -- Кожен горб даних зберігається в окремомуNetCDFфайл в піддиректорі bigParentПублічний Українська datasetID Українська (як зазначено вНалаштування.xml) й Файли, створені з значень осі, модифіковані, щоб зробити їх файл-name-safe (наприклад, фени замінені "x2D") - це не впливає на фактичні дані.  
  • Нові дані --- Кожен разEDDGridСтатус на сервери<dataset>, щоб побачити, які шматки доступні. Якщо файл для шматка даних не існує, запит на отримання куртки додається в чергу.ERDDAP's завданняThread змінює всі черги запитів для шматків даних, один-в-одному. Ви можете побачити статистику для задачіРеєстраціяі вЩоденний звітй (Так,ERDDAP™може призначити кілька завдань до цього процесу, але це буде використовувати багато пропускної здатності джерела даних, пам'яті та часу процесора, і багато локальнихERDDAP"перемикання, пам'ять і час процесора, ні з чого хороша ідея.)

ОНОВЛЕННЯ: Перший разEDDGridСтатус на сервери (якщо все добре) Багато запитів на шматки даних будуть додані в задачуПопередня черга, але не створюються локальні файли даних. Так конструктор не буде, але завданняПрочитати буде продовжувати працювати і створювати локальні файли. Якщо все добре йде, задачаThread зробить деякі локальні файли даних і наступну спробу перезавантажити дані (в ~15 хвилин) буде успішним, але спочатку з дуже обмеженою кількістю даних.

ОНОВЛЕННЯ: Після того, як локальний гарнітур має деякі дані і з'являється у вашомуERDDAP, якщо віддалений датасет тимчасово або назавжди не доступний, локальний датасет все ще буде працювати.

WARNING: Якщо віддалений гарнітур є великим і / або віддаленим сервером повільніше (Це проблема, це не так?!) , це займе багато часу, щоб зробити повну локальну копію. У деяких випадках необхідний час неприпустимо. Наприклад, передача 1 ТБ даних по лінії T1 (0.15 Гб/с) займає мінімум 60 діб, при оптимальних умовах. Плюс, він використовує багато пропускної здатності, пам'яті та часу процесора на віддалених і локальних комп'ютерах. Розчин полягає в тому, щоб надіслати жорсткий диск адміністратору встановлених даних, щоб с/га може зробити копію даних та надіслати жорсткий диск назад до вас. Використовуйте ці дані як початкова точка іEDDGridСкопіювати дані до неї. (Це один спосіб,Хмарний сервіс Amazon's EC2ручить проблему, хоча система має багато пропускної здатності.)

ВАЖКО: Якщо дана вартість за ліворуч (перший) змінна вісь зникає з віддаленого набору даних,EDDGridСкопіювати не видаляти локальний скопійований файл. Якщо ви хочете, ви можете видалити його самостійно.

Статус на сервери Дані

Про насdatasets.xmlдля цього набору даних може мати додатковий тег

    <checkSourceData>true</checkSourceData>  

Значення за замовчуванням є вірним. Якщо ви налаштували його на false, дані, які не перевіряють вихідний дані, щоб побачити, чи доступні додаткові дані.

Український

Ви можете розповістиEDDGridСкопіювати копію підмножини джерела даних, замість усього джерела даних, додавши тег у форму<тількиСинце> деякі Ціна </onlySince> до данихdatasets.xmlгорб.EDDGridСкопіювати тільки дані, пов'язані з значеннями першого виміру (Як правило, розмір часу) які більше деякі Ціна й деякі Ціна може бути:

  • Відносний час, зазначений черезnow- труси й Наприклад,<тількиСинце>now-2 роки</onlySince> розповідає про те, що дані, що містять лише локальні копії даних для даних, де значення зовнішнього виміру (зазвичай значення часу) останні 2 роки (коли він шукає нові дані для копіювання) й Дивитисяnow- труси Опис синтаксисуй Це корисно, якщо перший вимір має часові дані, які він зазвичай робить.

    EDDGridКопіювати не видаляти локальні файли даних, які містять дані, які, з часом, стають старшими, ніжnow- труси й Ви можете видалити файли в будь-який час, якщо ви вибрали. Якщо ви робите, ми рекомендуємо вам встановитиУвійтипісля видалення файлів, щоб розповістиEDDGridСтатус на сервери

  • Фіксована точка в часі, зазначена як ISO 8601 рядокyyyy-MM-ddTHH:mm:ssZй Наприклад,<тількиSince>2000-01T00:00Z</onlySince> розповідає дані тільки для того, щоб зробити локальні копії даних, де значення першого виміру є \>=2000-01T00:00Z . Це корисно, якщо перший вимір має часові дані, які він зазвичай робить.  

  • Номер точки плавлення. Наприклад,<код товару:946684800.0</тількиСинце> . Агрегати будуть пунктами призначення першого виміру. Наприклад, для розмірів часу, вузлів вERDDAP™завжди"seconds since 1970-01-01T00:00:00Z"й Так 946684800.0"seconds since 1970-01-01T00:00:00Z"еквівалент 2000-01T00:00Z. Це завжди корисний варіант, але особливо корисний при першому вимірі не має даних часу.

EDDGridСтатус на сервери

  1. Створити<датасет> Увійти (рідний тип, неEDDGridПартнерство) для джерела даних віддалених даних. Отримайте правильність роботи, включаючи всі необхідні метадані.
  2. Якщо це занадто повільно, додайте XML-код, щоб загорнути його вEDDGridСтатус на сервери
    • Використовуйте різніdatasetID (можливо, змінившиdatasetIDстаріdatasetIDтрохи) й
    • Статус на сервери<доступні До>,<перезавантаженняВсіNMinutes> і<onChange> з дистанційного керуванняEDDGrid's XML до XMLEDDGridСтатус на сервери (Наші цінностіEDDGridСкопіювати матерію; їх значення для внутрішнього набору даних стає незворотним.)
  3. ERDDAP™зробить і підтримувати локальну копію даних.  
  • ВАЖКО:EDDGridКопіювати припускає, що значення даних для кожного шматка не змінюється. Якщо / коли вони роблять, потрібно вручну видалити файли згортки в bigParentПублічний Українська datasetID / які змінилися іУвійтиЗамінити дані, щоб бути перевантажені так, щоб видалені шматки будуть замінені. Якщо у вас є підписка на електронну пошту до набору даних, ви отримаєте два електронні листи: один, коли дані, які спочатку перевантажуються і починають копіювати дані, а інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.  
  • Всі значення осі повинні бути рівні. Для кожного з осей, крім лівої (перший) , всі значення повинні бути рівні для всіх дітей. Точність тестування визначаєтьсяЗбігтий  
  • Налаштування, метадані, змінні --EDDGridСкопіювати налаштування, метадані та змінні з заданого джерела даних.  
  • Зміна метаданих --- Якщо необхідно змінити будь-якийaddAttributesабо змінити порядок змін, пов'язаних з вихідним даними:
    1. ЗмінаaddAttributesдля вихідних данихdatasets.xml, як це потрібно.
    2. Видалити один з копіюваних файлів.
    3. ВстановитиУвійтинегайно перезавантажити дані. Якщо ви використовуєте прапор і ви маєте підписку на електронну пошту до датасета, ви отримаєте два електронні листи: один, коли дані, які спочатку перезавантажуються і починає копіювати дані, а також інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
    4. Виданий файл буде відновлено з новим метаданих. Якщо вихідний датасет ніколи не доступний,EDDGridСкопіювати дані, які будуть отримувати метадані з регенерованого файлу, оскільки він є наймолодшим файлом.

EDDGridКопіювати скелет Список

  <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>

EDDTableЗ альбомуCassandra

EDDTableЗ альбомуCassandra обробка даних з одногоКассандрастіл. Кассандра - база даних NoSQL.

  • ERDDAP™може працювати з Cassandra v2 і v3 без змін або відмінностей в налаштуваннях. Ми протестували зКассандра v2 і v3 з Афішай Імовірно, щоERDDAP™також може працювати з Кассандра завантаження з DataStax.  
  • Для Aug 2019 - травень 2021, ми мали труднощі отримувати Кассандра працювати з AdoptOpenJdkJavav8. Прокинув EXCEPTION\_ACCESS\_VIOLATION. Але зараз (Травень 2021) , що проблема пішов: ми можемо успішно використовувати Cassandra v2.1.22 і AdoptOpenJdk jdk8u292-b10.  

Один стіл

Cassandra не підтримує "joins" у спосіб, що стосуються бази даних. ОдинERDDAP™EDDTableЗ альбомуCassandra Dataset карти на одну (можливо, підмножити один) Кассандра стіл.

Кассандраdatasets.xml

  • ERDDAP™поставляється з КассандраJavaводія, тому не потрібно встановлювати його окремо.
  • Уважно прочитайте інформацію про EDDTableЗ альбомуCassandra. Деякі деталі дуже важливі.
  • КассандраJavaДрайвер призначений для роботи з Apache Cassandra (1.2+) та DataStax Enterprise (3,1+) й Якщо ви використовуєте Apache Cassandra 1.2.x, ви повинні редагувати файл cassandra.yaml для кожного вузла, щоб встановити початок\_native\_transport: true, потім перезавантажити кожну вершину.
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити це, щоб додати його (особливо [<Перегородки Ключові назви> (#partitionkeysourcenames) ). Ви можете зібрати більшу частину інформації, яку потрібно створити XML для EDDTableЗ альбомуCassandra dataset, зв'язавшись з адміністратором Cassandra і з пошуку веб-сайту.

ГенераціяДатасети Xml має два спеціальні параметри для EDDTableЗ альбомуCassandra:

  1. Якщо ви вводите "!!!!!!!!!" (без котирування) для ключового простору програма буде відображати список ключових просторів
  2. Якщо ви вводите конкретний ключовий простір, а потім введіть "!!!!!!!!! (без котирування) Для назви таблиці програма буде відображати список таблиць у цьому ключовому просторі та їх стовпці.
Чутливість корпусу
  • Кейс-індуктивний ключовий простір та назви таблиці - Кассандра лікує ключові місця та назви таблиці у випадку-інтенсивний спосіб. У зв'язку з цим, ви маєте право використовувати працевлаштування (але з різним корпусом) як ключовий простір Кассандра або назва таблиці.
  • Назва стовпців -- За замовчуванням, Кассандра лікує імена стовпців у випадку-інтенсивний спосіб. Якщо ви використовуєте один з зарезервованих слів Кассандри як назву стовпця (Не пропустіть!) , ви використовуєте MUST
        <columnNameQuotes>"<columnNameQuotes>  

вdatasets.xmlдля цього набору даних так, щоб Кассандра іERDDAP™буде обробляти імена стовпців у випадку-чутливий спосіб. Це, ймовірно, буде масивний головний біль для вас, тому що важко визначити випадкові-чутливі варіанти назв стовпців - Кассандра практично завжди відображає назви стовпців як всі нижні диски, незалежно від справжнього випадку.

  • Робота тісно з адміністратором Кассандра, який може мати відповідний досвід. Якщо гарнітура не завантажується, читайтеповідомлення про помилкуретельно з'ясувати чому.  

Кассандра<підключення Майно-гт;

Кассандра має властивості з'єднання, які можна вказати вdatasets.xmlй Багато з них будуть впливати на виконання Кассандри-ERDDAP™підключення. На жаль, властивості Кассандри повинні бути встановленими програмамиJavaйERDDAP™повинен мати код для кожного майнаERDDAP™опори. В даний часERDDAP™підтримує ці властивості: (За замовчуванням, показано, що ми бачимо. За замовчуванням Вашої системи може бути різним.)

  • Загальні параметри
    <підключення Назва майна Компресор > немає|ЛЗ4|христина <Контакти Об'єкти (JavaScript licenses API Веб-сайт Go1.13.8)
    (Загальні рекомендації щодо стиснення: Використовуйте "не" якщо підключення Кассандри таERDDAP™- локальна/фастна і використовується "LZ4", якщо підключення віддалено/повільне.)
    <підключення Назва майна Цілі > JavaScript licenses API Веб-сайт <Контакти Об'єкти (це літр'/')
    <підключення Назва майна метрики > Справедливість|Логін <Контакти Об'єкти (2021-01-25 був за замовчуванням=true, тепер ігнорував і завжди помилково)
    <підключення Назва майна Портфоліо > аніматор <Контакти Об'єкти (За замовчуванням для рідного бінарного протоколу=9042)
    <підключення Назва майна ср > Справедливість|Логін <Контакти Об'єкти (JavaScript licenses API Веб-сайт)
    (Моя швидка спроба використовувати ssl не вдалося. Якщо ви досягнете успіху, будь ласка, покажіть мені, як ви це робили.)
  • Параметри запиту
    <підключення Назва майна Консультація Рівень > Всі|будь-який|Звонить для|Українська|Українська|Українська|один|біржа|Про нас|тример|дві <Контакти Об'єкти (JavaScript licenses API Веб-сайт Go1.13.8)
    <підключення Назва майна кицька > аніматор <Контакти Об'єкти (За замовчуванням=5000)
    (Не встановлюйте fetchSize до меншого значення.)
    <підключення Назва майна Сергій > Всі|будь-який|Звонить для|Українська|Українська|Українська|один|біржа|Про нас|тример|дві <Контакти Об'єкти (JavaScript licenses API Веб-сайт Go1.13.8)
  • Параметри розетки
    <підключення Назва майна ПідключенняTimeoutMillis > аніматор <Контакти Об'єкти (За замовчуванням=5000)
    (Не встановити підключення TimeoutMillis до меншого значення.)
    <підключення Назва майна Увійти > Справедливість|Логін <Контакти Об'єкти <підключення Назва майна Про нас > аніматор <Контакти Об'єкти (Кассандра за замовчуванням читанняTimeoutMillis 12000, алеERDDAP™змінити за замовчуванням до 120000. Якщо Кассандра кидає час читання, збільшуючи це може допомогти, оскільки Кассандра іноді кидає їх до цього часу. Проблема, швидше за все, ви зберігаєте занадто багато даних за розділ Ключове поєднання.)
    <підключення Назва майна отримуватиBufferSize > аніматор <Контакти Об'єкти (Це не зрозуміло, що отримуємо за замовчуваннямBufferSize. Не встановлюйте це невеликим значенням.)
    <підключення Назва майна свінгери > аніматор <Контакти Об'єкти <підключення Назва майна JavaScript licenses API Веб-сайт Go1.13.8 > Справедливість|Логін <Контакти Об'єкти (За замовчуванням=null)

Якщо вам необхідно встановити інші властивості з'єднання, див. нашрозділ про отримання додаткової підтримкий

Для заданого запуску Tomcat з'єднанняПроперти використовують лише перший раз, для заданої адреси Cassandra створюється датасет. Усі перевантаження даних та всі наступні дані, які діляться однаковою URL-адресою, будуть використовувати ці оригінальні з'єднання.

КХЛ

English Русский Українська (КХЛ) є надзвичайно схожим на SQL, мова запиту, яка використовується традиційними базами даних. БоOPeNDAP's табличних запитів даних були розроблені для запитів на табличних SQL, це можливо дляERDDAP™для перетворення поштових запитів даних в CQL Зв'язування/ПрепаратованіДержавності.ERDDAP™ввійти заяву вJavaScript licenses API Веб-сайт Go1.13.8як Заява як текст: Статус на сервери
У версії заяви ви побачите текстове представлення заяви і буде тільки "?", де будуть розміщені значення обмеження.  
Не так просто - На жаль, CQL має багато обмежень, на які стовпчики можуть бути перераховані, з якими типами обмежень, наприклад, ключові стовпчики можуть бути обмежені = і IN, томуERDDAP™Відправляє деякі обмеження на Кассандра і застосовує всі обмеження після отримання даних з Кассандра. ДопомогтиERDDAP™ефективно боротися з Кассандра, потрібно вказати [<Перегородки Ключові назви> (#partitionkeysourcenames) й<кластерColumnSourceNames>] (#кластерколюмнsourcenames) й [<indexColumnSourceNames>] (#indexcolumnsourcenames) вdatasets.xmlдля цього набору даних. Це найбільш важливі способи допомогтиERDDAP™ефективно працювати з Кассандра. Якщо ви не знаєтеERDDAP™Ця інформація, датасет буде болючим уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.  

<Перегородки KeySourceNames>

Оскільки ключі розділу відіграють центральну роль у таблицях Кассандра,ERDDAP™знати їхsourceNames і, якщо відповідні, інші відомості про те, як працювати з ними.

  • Ви MUST вкажіть список назв стовпців з роздільною здатністю розділівdatasets.xmlЗареєструватися<Перегородки Клавіатура>. Простий приклад,
        <partitionKeySourceNames>station, deviceid<partitionKeySourceNames>  

Більш складний приклад,

        <partitionKeySourceNames>deviceid=1007, date/sampletime/1970-01-01<partitionKeySourceNames>
  • TimeStamp Partition Keys -- Якщо один з ключових стовпців перегородки є таймером, який має копіювальну версію іншого таймера, вкажіть це через JavaScript licenses API Веб-сайт Go1.13.8time\_precision
    деtime\_precisionє однією зtime\_precisionрядки, які використовуються в іншому місціERDDAPй Причіп Z вtime\_precisionstring is the default, тому він не має значення, якщоtime\_precisionstring ends в Z або ні. Наприклад,ERDDAP™буде інтерпретувати дату/час/1970-01 як "Конкурси на дату можна будувати з обмежень на час зразка, використовуючи цеtime\_precision. » » » » » » » » » » » » » » » » Актуальне перетворення обмежень є більш складним, але це огляд. Використовуйте це, коли він є актуальним. МожливістьERDDAP™ефективно працювати з Кассандра. Якщо це зв'язок між стовпчиками існує в таблиці Кассандра і ви не скажетеERDDAP™, датасет буде болючим уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.
  • Одномісний Ключові слова визначення вартості -- Якщо ви хочетеERDDAP™датасет для роботи з тільки одним значенням одного ключа розділу, вказати розділKeySourceName=value й Не використовуйте котирування для числового стовпця, наприклад, пристрій=1007 Використовуйте котирування для струнного стовпа, наприклад, стислий="Point Pinos"
  • Замовлення за замовчуванням -- Порядок ключа розділу<dataVariable> вdatasets.xmlвизначає порядок сортування за замовчуванням результатів від Cassandra. Звичайно, користувачі можуть запитати інший порядок сортування для даного набору результатів за допомогою додатків таorderBy (« » » » » » » » » » » » » » » Список змінних « » » » » » » » » » » » » » ») до кінця запиту.
  • За замовчуванням, Кассандра іERDDAP™обробляти імена стовпців у випадку-інтенсивному режимі. Але якщо ви встановилиJavaScript licenses API Веб-сайт Go1.13.8до ",ERDDAP™буде обробляти стовпці Кассандра в разі чутливого способу.  

<Перегородки Ключові слова:

Якщо це зазначено,ERDDAP™використовувати його замість запиту Кассандра для розділу Перегляд інформації кожного разу перезавантаження даних. Це забезпечує список відмінних значень ключів розділу, в порядку, які вони будуть використані. Потрібні дати в час з 1970-01T00:00Z. Але є ще два спеціальні альтернативні способи уточнення часу (кожен зашифрований як рядок) :

1 час (АІСО8601 час) (MAY кодувати як рядок)
2) "часи (JavaScript licenses API Веб-сайт Go1.13.8) « » » » » » » » » » » » » » » (MUST кодувати як рядок)
Увійти час може бути ISO8601 Час або "now-nUnits" час (Наприклад, "now-3 хвилини) й Увійти Час не повинен бути точний матч час + x strideSeconds. Ряд з часом () значення отримує розширені в декілька рядків до кожного запиту, тому список розділу Ключові слова можуть бути завжди ідеально актуальні. Наприклад,

    <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>

розширюється в цей стіл комбінації клавіш розділів:

    deviceid,date
1001,1.4148E9
1001,1.4148864E9
1007,1.4153184E9
1008,1.4154048E9
1009,1.4154912E9

<кластерColumnSourceNames>

Кассандра приймає на кластерних колонах, які утворюють другу частину основного ключа (після ключа розділу (й) ) й Отже, важливо, що ви виявите ці стовпчики через<кластерColumnSourceNames>. Це дозволяєERDDAP™ефективно працювати з Кассандра. Якщо є кластерні стовпці і ви не скажетеERDDAP, датасет буде болючим уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.

  • Наприклад,<кластерColumnSourceNames> myClusterColumn1, myClusterColumn2 </КлючСтуденткаНазва>
  • Якщо таблиця Кассандра не має кластерних стовпців, або не вкажіть<кластерColumnSourceNames> або вказати його без значення.
  • За замовчуванням, Кассандра іERDDAP™обробляти імена стовпців у випадку-інтенсивному режимі. Але якщо ви встановилиJavaScript licenses API Веб-сайт Go1.13.8до ",ERDDAP™буде обробляти імена стовпців Кассандра у випадку-чутливий спосіб.  

<indexColumnSourceNames>

Кассандра приймає'='обмеження на вторинні стовпці індексу, які є стовпчиками, які ви явно створили індекси для через

    CREATE INDEX *indexName* ON *keyspace.tableName* (*columnName*);  

(Так, потрібні дужки.)
Отже, дуже корисно, якщо ви виявите ці стовпчики через<indexColumnSourceNames>. Це дозволяєERDDAP™ефективно працювати з Кассандра. Якщо є індексні стовпці і ви не скажетеERDDAP, деякі запити не потрібні, болюче уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.

  • Наприклад,<indexColumnSourceNames> myIndexColumn1, myIndexColumn2 </indexColumnSourceNames>
  • Якщо таблиця Кассандра не має індексних стовпчиків, або не вкажіть<indexColumnSourceNames> або вказати його без значення.
  • WARNING: індекси Кассандра не люблять індекси бази даних. Кассандра індексує лише допомогу'='обмеження. І вони тількиРекомендованідля стовпців, які мають набагато менші значення, ніж загальні значення.
  • За замовчуванням, Кассандра іERDDAP™обробляти імена стовпців у випадку-інтенсивному режимі. Але якщо ви встановилиJavaScript licenses API Веб-сайт Go1.13.8до ",ERDDAP™буде обробляти імена стовпців Кассандра у випадку-чутливий спосіб.  

<maxRequestFraction>

КолиERDDAP™ (Увійти) завантажує дані,ERDDAP™отримує від Cassandra список різних комбінацій клавіш розділу. Для величезної кількості комбінацій буде величезним. Якщо ви хочете запобігти запитам користувачів від запиту більшості або всіх даних (або навіть запит, який запитуєERDDAP™для подальшого фільтрування) , ви можете розповістиERDDAP™тільки для того, щоб дозволити запитам, які знижують кількість комбінацій через деяку кількість<maxRequestFraction>, який є плаваючим числом точки між 1e-10 (що означає, що запит не потребує більше 1 комбінації в мільярді мільярдів доларів) й 1 (За замовчуванням, що означає, що запит може бути для всіх даних) й Наприклад, якщо датасет має 10000 відмінних комбінацій ключів розділу та максимального результату потім запити, які потрібні дані від 1001 або більше комбінацій, створять повідомлення про помилку, але допускаються запити, які необхідні дані від 1000 або менше комбінацій.

Як правило, чим більше даних, тим нижче потрібно встановити<maxRequestFraction>. Таким чином, ви можете встановити його до 1 для невеликого набору даних, 0,1 для середнього розміру, 0.01 для великого набору даних, і 0.0001 для величезного набору даних.

Цей підхід далеко від ідеального. Це призведе до деяких розумних запитів, які відхиляються, і деякі занадто-великі запити, які допускаються. Але це складна проблема і це рішення набагато краще, ніж нічого.

КассандраsubsetVariables

Як з іншими EDDTable datasets, ви можете вказати список категорій<dataVariableГоловнаdestinationNames в глобальному атрибуті називається "subsetVariables" визначити змінні значення, які мають обмежену кількість значень. Після того, як на веб-сторінці .subset буде показано список різних значень для тих змінних у списку випадаючих сторінок.

Включаючи лише змінні ключі розділу та статичні стовпці у списку є STRONGLY ENCOУПРАВЛІННЯ. Кассандра зможе швидко створити список відмінних комбінацій і легко кожен раз перезавантаження даних. Один виняток є ключами часової перегородки, які є грубими версіями деяких інших часових стовпців - це, ймовірно, краще залишити ці з переліку списку списку спискуsubsetVariablesОскільки є велика кількість значень і вони не дуже корисні для користувачів.

Якщо ви включите ключ, нестатичні змінні в списку, то, ймовірно, буде дуже обчислюється дорого для Кассандри кожен раз перезавантаження даних, тому щоERDDAP™Щоб створити інформацію, необхідно ознайомитися з кожним рядом даних, щоб створити інформацію. Насправді, запит, ймовірно, не вдається. Так, крім дуже малих даних, це СТРАХОВНО ЗНИЖКА.

Кассандра Типи даних

Що таке неоднозначність про якуТипи даних Кассандрамапа до якогоERDDAP™типи даних, необхідно вказати [<датаТип> (Головна) Теги для кожного [<dataVariable>] (#datavariable) розповістиERDDAP™які даніТип для використання. СтандартERDDAP™дані Типи (і найпоширеніші типи даних Кассандра) :

  • болеан (болеан) , якіERDDAP™потім зберігає як байти
  • Увійти (int, якщо діапазон -128 до 127)
  • шемале (int, якщо діапазон -32768 до 32767)
  • Увійти (int, лічильник?, варин?, якщо діапазон -2147483648 до 2147483647)
  • довгий (bigint, лічильник?, варин?, якщо діапазон -9223372036854775808 до 9223372036854775807)
  • плавати (плавати)
  • подвійний (подвійний, десятковий (з можливою втратою точності) , час)
  • мар (ascii або текст, якщо вони ніколи не мають значення 1)
  • Ступінь (ascii, текст, варchar, inet, uuid, timeuid, blob, мапа, набір, список?)

КассандрачасОсобливий випадок: використанняERDDAPподвійні дані Тип.

Якщо ви вказали String dataType вERDDAP™для карти Кассандра, встановити або список, карту, встановити або перерахувати на кожному рядку Кассандра буде перетворено на один рядок на одному рядку в одному рядкуERDDAP™стіл.ERDDAP™має альтернативну систему для списків; див. нижче.

Тип Списки --ERDDAP[:ru]<датаТип> (Головна) тег для КассандраdataVariables може включати регулярніERDDAP™дані Типи (Переглянути вище) плюс кілька спеціальних данихТип, які можуть бути використані для Кассандра список стовпців: booleanList, байтList, ubyteList, shortList, ushortList, intList, uintList, longList, ulongList, floatList, doubleList, charList, StringList. Коли один з цих стовпців списку є в результатах, які пройшлиERDDAP™, кожен ряд вихідних даних буде розширюватися до списку. розмір () ряди даних вERDDAP; прості дані Типи (Наприклад, int) в цьому ряді вихідних даних буде дублікати списку. розмір () час. Якщо результати містять більше одного списку змінних, всі списки на заданому ряді даних MUST мають однакові розміри і MUST повинні бути "паралельні" списки, абоERDDAP™генерувати повідомлення про помилку. Наприклад, для вимірювань струму від ADCP, глибина\[0 р.\], урент\[0 р.\], vCurrent\[0 р.\]й zCurrent\[0 р.\]всі пов'язані, і глибина\[1 час\], урент\[1 час\], vCurrent\[1 час\]й zCurrent\[1 час\]є всі пов'язані, ... Якщо ви не хочетеERDDAP™для розширення списку в кілька рядків вERDDAP™стіл, вкажіть Рядок якdataVariable- дані Тип так весь список буде представлений як один рядок на одному рядкуERDDAPй

Cassandra TimeStamp Дані

Часові дані Кассандри завжди знають про часові пояси. Якщо ви вводите часові дані, не вказавши часовий пояс, Кассандра приймає часову пам'ять, використовуючи місцеву часову зону.

ERDDAP™підтримує часові дані і завжди представляє дані вZulu/ Часовий пояс ГМТ. Отже, якщо ви вводите часові дані в Кассандра за допомогою часової зони, відмінногоZulu/GMT, пам'ятайте, що вам потрібно зробити всі запити для даних про часERDDAP™використанняZulu/ Часовий пояс ГМТ. Так не дивиться, коли часові значення, які виходять зERDDAPчерез кілька годин через часовий пояс з місцевих доZulu/GMT час.

  • УERDDAPРdatasets.xml, у<dataVariable> тег для змінного часу, набір
          <dataType>double</dataType>  

і в<addAttributes> комплект

          <att name="units">seconds since 1970-01-01T00:00:00Z</att>
  • Придбання: Якщо дані є діапазоном часу, він корисний для того, щоб мати часові значення, відносяться до центру діапазону часу (Наприклад, онон) й Наприклад, якщо користувач має дані для 2010-03-26T13:00Z з іншого гарнітура даних, і вони хочуть закривати дані з цієї бази даних Кассандра, яка має дані для кожного дня, після чого дані для 2010-03-26T12:00Z (представлення даних Кассандра на цю дату) Найкращий (на ніч до або після того, як він менш очевидний, що краще) й
  • ERDDAP™має утиліту дляПеретворення Numeric Час до / з часу Stringй
  • Про насЯкERDDAP™Пропозиції з часомй  

Інтегер nulls

Cassandra підтримує nulls в cassandra int (ERDDAP™Увійти) і великий (ERDDAP™довгий) стовпчики, алеERDDAP™не підтримує справжні nulls для будь-якого цілого типу даних. За замовчуванням, Cassandra цілих nulls буде перетворюватися вERDDAP™до 2147483647 для int стовпців, або 9223372036854775807 для довгих колон. Це з'явиться як "НаН" в деяких типах текстових вихідних файлів (Наприклад, .csv) , "" в інших типах текстових вихідних файлів (наприклад,.htmlTable) і конкретний номер (2147483647 для відсутніх значень int) в інших типах файлів (Наприклад, бінарні файли, такі як.ncі мати) й Користувач може шукати ряди даних з цим типом відсутнього значення, посилаючись на "NaN", наприклад, "&windSpeed=NaN".

Якщо ви використовуєте деякі інші значення цілого значення, щоб вказати відсутні значення в таблиці Кассандра, будь ласка, вкажіть, що значення вdatasets.xml:

<att name="missing\_value" type="int"\>-999</att>

Для Кассандра плаваючі точкові колонки, nulls перетворюються на NaNs вERDDAPй Для типів даних Кассандра, які перетворюються на Рядки вERDDAP™, nulls перетворюються на порожні Рядки. Це не повинно бути проблеми.

"ВОДЯГАННЯ: Перепідготовка вже готових запитів"

  • "ВОДЯГАННЯ: Перепідготовка вже готових запитів" домка Українська (або інший файл Tomcat)
    Документація Кассандра говорить про те, що є проблеми, якщо той самий запит, виконаний в підготовці (чи більше) й (Дивитися цеЗвіт про помилкий) Щоб уникнути виготовлення Кассандри,ERDDAP™кешує всі підготовлені Цей кеш втратив, якщо / коли Tomcat /ERDDAP™перезавантажений, але я думаю, що є окай, тому що готові (міжJavaі Кассандра) , яка також втратила. Отже, ви можете бачити ці повідомлення. Я не знаю іншого розчину. На щастя, це попередження, не помилка (Хоча Кассандра загрожує, що це може призвести до проблем з виконанням) й

Кассандра стверджує, що ПриготованіERDDAP- Приготовлені держави, які ніколи не можуть стати застарілими. Якщо це не вірно, і ви отримаєте помилки про певні приготованіERDDAP™очиститиERDDAP- кеш готових

Кассандра безпеки

Про насSecuring Кассандра

Під час роботи з Кассандра вам потрібно зробити речі безпечно і безпечно, щоб уникнути, що дозволяє шкідливий користувач пошкодити Кассандра або отримати доступ до даних, які не повинні доступу до даних.ERDDAP™намагатися робити речі в безпечному режимі.

  • Ми заохочуємо вас налаштуватиERDDAP™щоб підключитися до Кассандри як користувача Кассандра, який має доступ до актуальна стіл (й) і тільки має привілеї РЕАД.
  • Ми заохочуємо вас налаштувати підключенняERDDAP™до Кассандра так що це
    • завжди використовує SSL,
    • дозволяє підключенням від однієї IP-адреси (або один блок адрес) і з одногоERDDAP™Користувач,
    • лише перерахування паролів у формі MD5.
  • \[ЗНОВН ПРОБЛЕМИ\]З'єднання (включаючи пароль) зберігаються як звичайний текстdatasets.xmlй Ми не знайшли способу введення пароля Кассандра під часERDDAP's стартап в Tomcat (що відбувається без введення користувача) , щоб пароль був доступний у файлі. Щоб зробити це більш безпечним:
    • Ви (Про насERDDAP™адміністратор) повинен бути власникомdatasets.xmlі мати доступ до сайту.
    • Зробіть групу, яка включає тільки користувач=tomcat. Використовуйте chgrp, щоб зробити цю групу дляdatasets.xml, з просто одержувати привілеї.
    • Використовуйте chmod для позначення привілеїв o-rwx (немає доступу до облікових записів для користувачів "other") дляdatasets.xmlй
  • КолиERDDAP™, пароля та інші властивості з'єднання зберігаються в "приваті"Javaзмінні.
  • Запити від клієнтів приурочуються та перевіряють строк дії перед створенням запитів CQL для Кассандра.
  • Запити на Кассандра виготовляються з пов'язкою CQL/PreparedStatements, щоб запобігти ін'єкції CQL. У будь-якому випадку, Кассандра властиво менш схильним до ін'єкції CQL, ніж традиційні бази доІн'єкції SQLй  

Кассандра швидкість

Кассандра може бути швидко або повільно. Ви можете зробити це швидко:

  • В цілому - Природа CQL є те, що запити єдекларативнийй Вони просто вказують, що користувач хоче. Вони не включають специфікацію або підказки для того, як запит буде оброблятися або оптимізовано. Так немає способуERDDAP™щоб створити запит таким чином, що він допомагає Cassandra оптимізувати запит (або будь-яким чином визначає, як запитувати запит) й В цілому, це до адміністратора Кассандра, щоб налаштувати речі (наприклад, індекси) для оптимізації певних видів запитів.  
  • Вкажіть часові стовпці, які пов'язані з коарсером-точністю часу розділу за допомогою [xml]<Перегородки Ключові назви> (#partitionkeysourcenames) Найголовніший спосіб допомогтиERDDAP™ефективно працювати з Кассандра. Якщо ці стосунки існують в таблиці Кассандра і ви не скажетеERDDAP™, датасет буде болючим уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.  
  • Вказати кластерні стовпчики за допомогою [<кластерColumnSourceNames>] (#кластерколюмнsourcenames) - другий найважливіший спосіб допомогтиERDDAP™ефективно працювати з Кассандра. Якщо є кластерні стовпці і ви не скажетеERDDAP, великий підмножити на можливі запити для даних, буде потрібно без зайвих зусиль, боляче уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.  
  • ЗАМОВИТИІндексидля загальноприйнятих змінних -- Ви можете прискорити кілька запитів, створивши індекси для стовпців Кассандра, які часто протипоказані "=" обмеженнями.

Кассандра не може робити індекси для списку, набору, або стовпців карт.

  • Вказати індексні стовпчики за допомогою [<indexColumnSourceNames>] (#indexcolumnsourcenames) важливо допомогтиERDDAP™ефективно працювати з Кассандра. Якщо є індексні стовпці і ви не скажетеERDDAP, деякі запити для даних будуть не потрібні, болюче уповільненняERDDAP™і використовувати тонни ресурсів Кассандра.  

Кассандра Стати

        \\* Cassandra stats: partitionKeyTable: 2/10000=2e-4 < 0.1 nCassRows=1200 nErddapRows=12000 nRowsToUser=7405  

Використання номерів у прикладі вище, це означає:

  • КолиERDDAP™останні (Увійти) завантажено цей набір даних, Кассандра розповівERDDAP™що було 10000 відмінних комбінації клавіш розділу.ERDDAP™Заплановано всі різні комбінації у файлі.
  • Через обмеження користувача,ERDDAP™Виявлено 2 комбінації з 10000, які можуть мати необхідні дані. Так,ERDDAP™зробить 2 дзвінки на Кассандра, для кожного поєднання ключів розділу. (Що вимагає Кассандра.) Якщо великий набір даних має велику кількість комбінацій ключів розділу і заданий запит не різко знизить. Ви можете вимагати, щоб кожен запит знизив ключовий простір за допомогою налаштування [<maxRequestFraction>] (#maxrequestфракція) й Ось, 2/10000=2e-4, що менше, ніж MaxRequestFraction (0 р.) , щоб запит був дозволений.
  • Після внесення обмежень на ключі розділу,кластерні колонкийіндексні стовпчикиякі були відправленіERDDAP™, Кассандра повернула 1200 рядів даних доERDDAP™в Результат
  • Результат Встановити потрібнодані Тип= Приклад Списокколонки (з середнім 10 одиниць за список) , боERDDAP™розширено 1200 рядків з Кассандри в 12000 рядів вERDDAPй
  • ERDDAP™завжди застосовує всі обмеження користувачів до даних від Cassandra. У цьому випадку обмеження, які Кассандра не обробляли зменшену кількість рядків до 7405. Що таке кількість рядків, відправлених користувачеві.

Найголовніше використання цих діагностичних повідомлень полягає в тому, щоб переконатися, щоERDDAP™Ви думаєте, що це робить. Якщо це не (наприклад, це не зменшення кількості різних комбінацій, як очікується?) , потім ви можете використовувати інформацію, щоб спробувати зрозуміти, що відбувається неправильно.  

  • Дослідження та експеримент, щоб знайти та встановити краще [<ПідключенняПроперти>] (#cassandra-connectionproperty) Р  
  • Перевірити швидкість підключення мережі між Кассандра іERDDAPй Якщо з'єднання є повільним, див. якщо ви можете поліпшити його. Найкраща ситуація, колиERDDAP™працює на сервері, прикріпленому до того ж (швидко) Переключення як сервер, що працює на вершині Кассандра, до якого ви підключені.  
  • Будь ласка, зв'яжіться з нами Читати інформацію тут і в документації Кассандра. Експеримент. Перевірити роботу. Якщо Кассандра-ERDDAP™З'єднання все ще повільніше, ніж ви очікуєте, будь ласка, вкажіть, що ваше ім'я Кассандра столу і вашуERDDAP™куркаdatasets.xmlі подивитися нашірозділ про отримання додаткової підтримкий  
  • Якщо все інше не виходить, розглянути зберігання даних в збірникуNetCDFв3.ncФайли (Природні.ncФайли, які використовуютьПанчохи Дискретні шамплінг геометереї (ДСГ) Контигузовані конструкції масивних даних і так можна обробитиERDDAPРEDDTableЗ альбомуNcCFFiles) й Якщо вони логічно організовані (кожен з даними для шматка простору і часу) йERDDAP™може отримувати дані з них дуже швидко.  

EDDTableЗ альбомуCassandra скелет 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>

EDDTableЗ альбомуDapSequence

EDDTableЗ альбомуDapSequence ручки змінні в межах 1- і 2-рівневих послідовностей відDAPсервери, такі якDAPПЕР (був https://www.pmel.noaa.gov/epic/software/dapper/ , тепер припинено) й

  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його. Ви можете збирати інформацію, необхідну для пошуку файлів DDS та DAS у вашому браузері (додаючи .das та .dds доsourceUrl(на прикладі на https://dapper.pmel.noaa.gov/dapper/epic/tao\\_time\\_series.cdp.dds ).

  • змінна вDAPпослідовність, якщо відповідь .dds вказує на те, що структура даних, що містить змінну, є "наслідками" (випадок нечутливості) й

  • У деяких випадках ви побачите послідовність в послідовності, послідовність 2-рівневого рівня -- EDDTableЗ альбомуDapSequence ручить цим.

EDDTableЗ альбомуDapSequence скелет Список

  <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>

EDDTableЗ альбомуDatabase

EDDTableЗ альбомуDatabase обробка даних з одного стола бази даних абоПереглянути.

Один стіл або вид

Якщо дані, які ви хочете подати, є в двох або більше таблицях (і тим самим потрібен JOIN для отримання даних з обох таблиць одночасно) , вам потрібно зробити одинденормалізація (вже приєдналися) стіл абоПереглянути з усіма даними, які ви хочете, щоб зробити доступ одними данимиERDDAPй

Для великих, складних баз даних, може виникнути відчуття відокремити кілька шматків як денормалізовані столи, кожен з різними типами даних, які стануть окремими даними вERDDAPй

Виготовлення денормованого столу для використання вERDDAP™може звучати як божевільна ідея. Будь ласка, довірте нам. Ось кілька причин чомуERDDAP™роботи з денормалізовані столи:

  • Це набагато простіше для користувачів. КолиERDDAP™Ми можемо самі зателефонувати одержувачу. Більшість користувачів ніколи не чули про нормалізовані таблиці, і дуже мало зрозуміти ключі, іноземні ключі, або таблиці приєднується, і вони практично, безумовно, не знають деталі різних типів приєднується, або як вказати SQL для вступу (або кілька з'єднань) правильно. Використання денормалізовані таблиці дозволяє уникнути всіх проблем. Ця причина виправдовує використання денормованого єдиного таблиці для представлення данихERDDAP™користувачів.  
  • Звичайні таблиці (кілька таблиць, пов'язаних з ключовими колонами) для зберігання даних в базі даних. Але навіть в SQL результат, який повертається користувачу, є денормалізовані (Увійти) одномісний столик. Отже, здається доцільно представити дані користувачів як величезний, денормований, єдиний стіл, з якого вони можуть потім запитати субсети (наприклад, показати мені рядки таблиці, де температура> 30 хв) й  
  • Ви можете внести зміниERDDAP™без зміни таблиць. ERDDAP™має кілька вимог, які можуть відрізнятися від того, як ви встановили базу даних. Наприклад,ERDDAP™вимагає, щоб часові дані зберігаються в полях "timestamp з таймером". Зробляючи окремий стіл / перегляд дляERDDAP™, ви можете внести ці зміни, коли ви робите денормалізовані таблиці дляERDDAPй Таким чином, ви не повинні вносити зміни до ваших таблиць.  
  • ERDDAP™відтворить структуру нормалізованих таблиць. Ви можете вказати, які стовпці даних надходять з таблиць «outer», а отже, мають обмежену кількість значень.ERDDAP™збирати всі різні комбінації значень у цих стовпчиках і пред’являти їх користувачам на спеціальному рівні. Підмножити веб-сторінку, що дозволяє користувачам швидко вибрати підмножини даних. Визначені значення для кожного стовпчика також відображаються у списку випадкових записів на інших сторінках даних.  
  • Денормалізовані таблиці забезпечують передачу даних від вас доERDDAPадміністратор легко. Ви є експертом для цього набору даних, тому це означає, що ви приймаєте рішення про які таблиці та які стовпці, щоб приєднатися і як їх приєднатися. Так ви не повинні давати нам (або гірше, кінцевих користувачів) кілька столів і докладних інструкцій для того, як приєднатися до них, ви просто повинні дати нам доступ до денормалізовані таблиці.  
  • Денормалізовані таблиці дозволяють ефективно отримувати доступ до даних. Денормалізовані форми зазвичай швидше для доступу, ніж нормалізована форма. Приєднуватися можна повільно. Кілька з'єднань можуть бути дуже повільно.  

Для отримання даних з двох або більше таблиць в базі данихERDDAP™, є три варіанти:  

  • Рекомендований варіант: Ви можете створити файл comma- або tab-separated-value з даними з таблиці денормалізації. Якщо датасет величезний, то він має сенс створити кілька файлів, кожен з кошейним підбором денормалізації таблиці (наприклад, дані з меншого діапазону часу) й

Велика перевага тутERDDAP™дасть можливість обробляти запити користувачів для даних без додаткових зусиль для вашої бази даних. Про насERDDAP™не буде тягар на базі даних або ризику безпеки. Це найкращий варіант практично всіх обставин, тому щоERDDAP™може зазвичай отримувати дані з файлів швидше, ніж з бази даних (якщо ми конвертуємо файли .csv в.ncФайли CF) й (Частина причини полягає в тому, щоERDDAP+files - це система зчитування та не має жодних проблем з внесеними змінамиАКЦІЇ (Atomicity, консистенція, Ізоляція, довговічність) й) Крім того, ви, ймовірно, не потребуєте окремого сервера, оскільки ми можемо зберігати дані на одному з наших RAID і отримати його з існуючимиERDDAP™на поточний сервер.

  • Параметри Okay: Ви налаштуєте нову базу даних на іншому комп'ютері, використовуючи лише денормалізовані таблиці. Оскільки база даних може бути безкоштовним і відкритим вихідним бази даних, таких як MariaDB, MySQL та PostgreSQL, цей параметр не вимагає багато.

Велика перевага тутERDDAP™дасть можливість обробляти запити користувачів для даних без додаткових зусиль для вашої поточної бази даних. Про насERDDAP™не буде тягар на поточній базі даних. Це також виключає багато проблем безпеки, оскількиERDDAP™не буде доступу до бази даних.

  • Параметри дискримінації: Ми можемо підключитисяERDDAP™до вашої поточного бази даних. Для цього потрібно:

    • Створення окремого столу або перегляду з денормалізовані таблиці даних.
    • Створення користувача «erddap», який прочитав-тільки доступ до тільки денормалізовані таблиці (й) й  

Це варіант, якщо дані дуже часто і ви хочете датиERDDAP™Користувачі миттєвого доступу до тих змін, проте, навіть так, це може сенс використовувати параметр файлу вище і періодично (кожні 30 хвилин?) замінити файл, який має дані на сьогоднішній день. Величезні недоліки даного підходу полягає в тому, щоERDDAP™запити користувачів, ймовірно, розміщують нестерпне навантаження на вашу базу даних і щоERDDAP™з'єднання є ризиком безпеки (Хоча ми можемо мінімізувати / керувати ризиком) й

Оформлення денормованого столу або вигляду дляERDDAP™– це гарна можливість зробити декілька змінERDDAP™не впливає на ваші оригінальні таблиці:

  • Зміна дати та часових полів / стовпів для використання данихType, який викликає повідомленнячастамп з часовою зоною (або еквівалент вашої бази даних) й Переваги без інформації про часову зону не працюють правильноERDDAPй
  • Зробіть індекси для стовпців, які часто шукають користувачів.
  • Будьте в курсісправа назв поля/холодильника (наприклад, використовуйте всі опади) коли ви набираєте їх.
  • Не використовуйте зарезервовані слова для таблиці та для назв поля / стовпів.

Якщо вам потрібна допомога, що робить денормований столик або перегляд, будь ласка, зв'яжіться з адміністратором бази даних. Якщо ви хочете поговорити про це весь підхід або розшукати, як краще це зробити, будь ласка, по електронній пошті Кріс. Джон на noaa.gov .

база данихdatasets.xml

Складно створити правильнийdatasets.xmlінформація, необхідну дляERDDAP™встановити підключення до бази даних. Будьте хворими. Будьте методичні.

  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

ГенераціяДатасети Xml має три спеціальні параметри для EDDTableЗ альбомуDatabase:

  1. Якщо ви вводите "!!!!!!!!!" (без котирування) для назви каталогу програма буде відображати список імен каталогів.
  2. Якщо ви вводите "!!!!!!!!!" (без котирування) для ім'я схеми, програма буде відображати список назв schema.
  3. Якщо ви вводите "!!!!!!!!!" (без котирування) для назви таблиці програма буде відображати список таблиць та їх стовпців. Перший "!!!ЛИСТ!!!" запис, який ви робите, це той, хто буде використовуватися.
  • Уважно прочитайте всю інформацію про EDDTableЗ альбомуDatabase.
  • Ви можете зібрати більшу частину інформації, яку потрібно створити XML для EDDTableЗ альбомуDatabase, зв'язавшись з адміністратором бази даних та пошуком веб-сайту.
  • Хоча бази даних часто лікують імена стовпців та назви таблиці у випадку-інтенсивний спосіб, вони є чутливими до випадківERDDAPй Отже, якщо повідомлення про помилку з бази даних говорить, що ім'я стовпця невідомо (Наприклад, "Невідомий ідентифікатор= Р стовпчик\_name «») Хоча ви знаєте, що це існує, спробуйте використовувати всі столи, наприклад, COLUMN\_NAME , яка часто є справжньою, випадаючою версією назв стовпця.
  • Робота тісно з адміністратором бази даних, які можуть мати відповідний досвід. Якщо гарнітура не завантажується, читайтеповідомлення про помилкуретельно з'ясувати чому.  

Драйвер JDBC

  • [JDBC драйвер і<драйверName>] (#jdbc-драйвер) --- Ви повинні отримати відповідні JDBC 3 або JDBC 4 драйвера .jar файл для вашої бази та покласти його в домка /webapps/erddap/WEB-INF/lib після установкиERDDAPй Далі, у вашомуdatasets.xmlдля цього набору даних, необхідно вказати<драйверName> для цього драйвера, який є (Навігація) відрізняється від імені файлу. Пошук на сайті драйвера JDBC для вашої бази даних та драйвераНазва, щоJavaвикористовувати його.

    • Для MariaDB намагатися https://mariadb.com/kb/en/about-the-mariadb-java-client/
      Про нас<драйверName> для використання вdatasets.xml (Переглянути нижче) org.mariadb.jdbc. Драйвер .
    • Для MySQL та Amazon RDS спробуйте https://dev.mysql.com/downloads/connector/j/
      Про нас<драйверName> для використання вdatasets.xml (Переглянути нижче) є, ймовірно, com.mysql.jdbc. Драйвер .
    • ДляOracle, намагатися https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html й Про нас<драйверName> для використання вdatasets.xml (Переглянути нижче) є, ймовірно, oracle.jdbc.driver.OracleДрайвер .
    • Для Postgresql ми отримали драйвер JDBC 4 від https://mvnrepository.com/artifact/org.postgresql/postgresql
      Про нас<драйверName> для використання вdatasets.xml (Переглянути нижче) org.postgresql. Драйвер .
    • Для SQL Server ви можете отримати драйвер JTDS JDBC від https://jtds.sourceforge.net й Про нас<драйверName> для використання вdatasets.xml (Переглянути нижче) English, Українська, Français... Драйвер .

Після того, як ви поставили драйвер JDBC .jar вERDDAP™lib каталог, вам потрібно додати посилання на цей .jar файл в .bat і/або .sh скрипт файлів для GenerateDatasets Xml, DasDds і АрхівADataset, які знаходяться в домка /webapps/erddap/WEB-INF/ каталог; інакше ви отримаєте класNotFoundException при запуску цих скриптів.

На жаль, JDBC іноді є джерелом неприємностей. У своїй ролі як посередництвоERDDAP™і бази даних, іноді робить тонкі зміни до стандартної / загальної бази даних SQL запиту, щоERDDAP™створює, тим самим викликаючи проблеми (наприклад, пов'язані зідентифікатори верхнього/низуі пов'язані здата/час) й Будь ласка, будь ласка, будь ласка, уважно прочитайте інформацію, перевірте вашу роботу, і див. нашурозділ про отримання додаткової підтримкий

База даних<підключення Майно-гт;

  • Про нас<ПідключенняПроперти>] (#database-connectionproperty) --- Уdatasets.xmlдля вашого набору даних, необхідно визначити декілька з'єднань Теги нерухомості, щоб розповістиERDDAP™Як підключитися до бази даних (наприклад, вказати ім'я користувача, пароль, з'єднання ssl ірозмір fetch) й Це відрізняється для кожної ситуації і трохи важко розібратися. Пошук веб-сайтів для прикладів використання драйвера JDBC для підключення до бази даних. Про нас<ПідключенняПроперти> імен (Наприклад, "користувач", "password", "ssl") , і деякі з з'єднаньОсобисті значення можна знайти за допомогою пошуку веб-сторінок для властивостей підключення JDBC База даних Тип « » » » » » » » » » » » » » » (наприклад,OracleI am not a Georgian citizen Я не є громадянином Грузії I am not a Georgian citizen მე არ ვარ საქართველოს მოქალაქე I am not a Georgian citizen I am not a Georgian citizen I am not a Georgian citizen Я не являюсь гражданином Грузии I am not a Georgian citizen) й  

Котирування для імен та чутливості корпусу

  • Котирування для польових/колонних імен; Чутливість- За замовчуванням EDDTableЗ альбомуDatabase кладає стандартні подвійні лапки ANSI-SQL на полі / об'ємні імена в SELECT ви можете використовувати зарезервоване слово як ім'я поля / стовпа, або спеціальний символ у назві поля / стовпа. У подвійних котируваннях також вигадують певні типи атак з ін'єкцій SQL. Ви можете розповістиERDDAP™використовувати ", ', або ні котирування через<JavaScript licenses API Веб-сайт Go1.13.8 вdatasets.xmlдля цього набору даних.

Для багатьох баз даних, використовуючи будь-який тип котирування викликає базу даних для роботи з іменами поля / стовпів у разі чутливого способу (замість випадаючого пристрою за замовчуванням) й Бази даних часто відображають імена файлів/копалів як у всіх верхніх рядках, коли в реальності чутлива форма є різною. УERDDAP™, будь ласка, завжди обробляти імена стовпців бази даних, як конфіденційна справа.

  • Для Марія DB, потрібно запустити базу даних з\-sql-mode=ANSI\_QUOTESй

  • Для MySQL і Amazon RDS вам потрібно запустити базу даних з\-sql-mode=ANSI\_QUOTESй

  • Oracleпідтримує стандартні подвійні котирування ANSI-SQLза замовчуваннямй

  • PostgreSQL підтримує стандартні подвійні лапки ANSI-SQL за замовчуванням.

Не використовуйте зарезервоване слово для бази даних, каталогу, схеми або назви таблиці.ERDDAP™не кладуть котирування навколо них.

Якщо це можливо, скористайтеся всіма нижнями для бази даних, каталогу, схеми, назв таблиць та назв поля при створенні таблиці бази даних (або перегляд) і при переході на поле/зварювальні імена вdatasets.xmlвERDDAPй В іншому випадку ви можете отримати повідомлення про помилку, що вказують на базу даних, каталог, схему, таблицю та/або поле не знайдено. Якщо ви отримуєте це повідомлення про помилку, спробуйте використовувати випадковий варіант, всі версії верхнього рядка, і всі версії нижнього рядка назви вERDDAPй Одна з них може працювати. Якщо ні, вам необхідно змінити назву бази даних, каталогу, схеми та/або таблиці на всі нижні диски.

База даних<дані Тип і гт;

  • База данихПро нас<датаТип> (Головна) Теги -- Що таке неоднозначність про якутипи даних бази данихмапа до якогоERDDAP™типи даних, необхідно вказати [<датаТип> (Головна) Теги для кожного [<dataVariable>] (#datavariable) розповістиERDDAP™які даніТип для використання. Частина проблеми полягає в тому, що різні дані використовують різні умови для різних типів даних - так завжди намагаються відповідати визначенням, не тільки іменам. Переглянути описстандартERDDAP™дані Типи, що включає посилання на відповідні типи даних SQL.Дата і часОсобливі випадки: використанняERDDAPподвійні дані Тип.  

Дані часу бази даних

Деякі стовпчики часу бази даних не мають чіткого часу. Такі стовпчики є проблемою дляERDDAPй Бази даних підтримують концепцію дати (з або без часу) без часової зони, як приблизний діапазон часу. АлеJava (і таким чиномERDDAP) тільки пропозиції з миттєвою датою + часами з таймером. Так ви можете дізнатися, що дані часу на дату на основі локальної зони часу (з або без денного часу збереження) (Українська)Zuluчасовий пояс, алеJava (іERDDAP) немає. Ми спочатку думали, що ми можемо працювати над цією проблемою (наприклад, вказавши часову зону для стовпця) , але бази даних+JDBC+JavaВзаємодія зробила це ненадійне рішення.

  • Так,ERDDAP™вимагає, щоб ви зберігаєте всі дані часу та дати в таблиці бази даних з типом бази даних, що відповідає типу JDBC "timestamp з часовою зоною" (Ідеально підходить для того, щоб використовувати JavaScriptZuluчасовий пояс) й
  • УERDDAPРdatasets.xml, у<dataVariable> тег для змінного часу, набір

      <dataType>double</dataType>

і в<addAttributes> комплект

          <att name="units">seconds since 1970-01-01T00:00:00Z</att>
  • Придбання: Якщо дані є діапазоном часу, він корисний для того, щоб мати часові значення, відносяться до центру діапазону часу (Наприклад, онон) й Наприклад, якщо користувач має дані для 2010-03-26T13:00Z з іншого набору даних, і вони хочуть закривати дані з бази даних, яка має дані на кожен день, після чого дані бази даних для 2010-03-26T12:00Z (представлення даних за цією датою) Найкращий (на ніч до або після того, як він менш очевидний, що краще) й
  • ERDDAP™має утиліту дляПеретворення Numeric Час до / з часу Stringй
  • Про насЯкERDDAPПропозиції з часомй

Інтегер nulls

Бази даних підтримують nulls в цілому (int, smallint, крихітна) стовпчики, алеERDDAP™не підтримує справжні нулі. Нагородження бази даних будуть перетворені вERDDAP™127 для байтних стовпчиків, 255 для увігнутих стовпчиків, 32767 для коротких стовпчиків, 65535 для укорочених стовпчиків, 2147483647 для вхідних колон, 4294967295 для унітні стовпчики, 9,223,372,036,854,775,807 для довгих колон, або 18446744073709551615 для удовгих колон. Якщо ви використовуєте ці за замовчуванням, будь ласка, визначте ціmissing\_values для користувачів Dataset вERDDAP™з

<att name="\_FillValue" type="int"\>2147483647</att>

або

<att name="\_FillValue" type="short"\>32767</att>

Крім того, можна використовувати "missing\_value" атрибут замість "\_FillValue". ГенераціяДатасети Xml автоматично додає ці атрибути \_FillValue, коли він генерує запропонованіdatasets.xmlдля даних бази даних.

Для бази даних, що плавають, nulls перетворюються на NaNs вERDDAPй Для типів даних бази даних, які перетворюються на Рядки вERDDAP™, nulls перетворюються на порожні Рядки.

Безпека бази даних

  • При роботі з базами, вам потрібно зробити це безпечно і безпечно, щоб уникнути, що дозволяє шкідливий користувач пошкодити вашу базу або отримати доступ до даних, які не повинні доступу до даних.ERDDAP™намагатися робити речі в безпечному режимі.
    • Розглянемо реплікацію, на іншому комп'ютері, бази даних та таблиць бази даних з даними, які ви хочетеERDDAP™подавати. (Так, для комерційних баз даних, таких якOracle, це передбачає додаткові ліцензійні збори. Але для відкритих вихідних баз даних, таких як PostgreSQL, MySQL, Amazon RDS і MariaDB, це коштує нічого.) Це дає вам високий рівень безпеки і також запобігаєERDDAP™запити від уповільнення початкової бази даних.
    • Ми заохочуємо вас налаштуватиERDDAP™для підключення до бази даних як користувача бази даних, який має доступ лише до бази даних актуальна База даних (й) і тільки має привілеї РЕАД.
    • Ми заохочуємо вас налаштувати підключенняERDDAP™до бази даних
      • завжди використовує SSL,
      • дозволяє підключенням від однієї IP-адреси (або один блок адрес) і з одногоERDDAP™Користувач,
      • лише перерахування паролів у формі MD5.
    • \[ЗНОВН ПРОБЛЕМИ\]З'єднання (включаючи пароль) зберігаються як звичайний текстdatasets.xmlй Ми не знайшли способу введення пароля бази даних під часERDDAP's стартап в Tomcat (що відбувається без введення користувача) , щоб пароль був доступний у файлі. Щоб зробити це більш безпечним:
      • Ви (Про насERDDAP™адміністратор) повинен бути власникомdatasets.xmlі мати доступ до сайту.
      • Зробіть групу, яка включає тільки користувач=tomcat. Використовуйте chgrp, щоб зробити цю групу дляdatasets.xml, з просто одержувати привілеї.
      • Використовуйте chmod для позначення привілеїв o-rwx (немає доступу до облікових записів для користувачів "other") дляdatasets.xmlй
    • КолиERDDAP™, пароля та інші властивості з'єднання зберігаються в "приваті"Javaзмінні.
    • Заявки від клієнтів подаються і перевіряють строк дії до утворення запитів на SQL для бази даних.
    • Запити до бази даних виготовляються з SQL-підготовкою, щоб запобігтиІн'єкції SQLй
    • Запити до бази даних подаються з виконанням Книжка (не виконання) щоб обмежити запити, які слід прочитати (Таким чином, намагалася ін'єкція SQL, щоб змінити базу даних, не буде з цієї причини, занадто) й  

Проксимус

  • БоOPeNDAP's табличні запити даних були розроблені для запитів на табличних SQL, це легко дляERDDAP™для перетворення поштових запитів даних у прості SQL, підготовлені Наприклад,ERDDAP™запит
    time,temperature&time>=2008-01-01T00:00:00Z&time&lt;=2008-02-01T00:00:00Z  

буде перетворюватися в SQL

    SELECT "time", "temperature" FROM *tableName*  
WHERE "time" >= 2008-01-01T00:00:00Z AND "time" &lt;= 2008-02-01T00:00:00Z

ERDDAP™Запити з &distinct () та/абоorderBy ( змінні ) додавати DISTINCT та/або ЗАМОВЛЕННЯ змінні до готової заяви SQL. В цілому це значно сповільнить відповідь від бази даних. ERDDAP™колоди ПриготовленіJavaScript licenses API Веб-сайт Go1.13.8як

    statement=*thePreparedStatement*  

Це буде текстове представлення Приготовленого Наприклад, в Приготуванні, часи закодовані особливим способом. Але в текстовому представленні вони з'являються як ISO 8601 час.  

Швидкість бази даних

  • Бази даних можуть бути повільними. Є деякі речі, які ви можете зробити:
    • В цілому - Природа SQL полягає в тому, що запити єдекларативнийй Вони просто вказують, що користувач хоче. Вони не включають специфікацію або підказки для того, як запит буде оброблятися або оптимізовано. Так немає способуERDDAP™генерувати запит таким чином, що він допомагає базі даних оптимізувати запит (або будь-яким чином визначає, як запитувати запит) й В цілому це до адміністратора бази даних, щоб налаштувати речі (наприклад, індекси) для оптимізації певних видів запитів.
Встановити розмір Fetch

База даних повертає дані доERDDAP™в горбах. За замовчуванням, різні бази даних повертаються різну кількість рядків у шматках. Нерідко це число дуже мало і так дуже неефективне. Наприклад, за замовчуванням дляOracleдо 10! Прочитайте документацію JDBC для драйвера JDBC для пошуку майна з'єднання для того, щоб збільшити це, і додайте його до опису даних у драйвері JDBCdatasets.xmlй Наприклад, Для MySQL та Amazon RDS використовуйте

        <connectionProperty name="defaultFetchSize">10000</connectionProperty>  

Для MariaDB в даний час немає способу змінити розмір куртки. Але це запитана функція, тому пошук веб-сторінок, щоб побачити, чи це було реалізовано. ДляOracle, використання

        <connectionProperty name="defaultRowPrefetch">10000</connectionProperty>  

Для PostgreSQL використовуйте

        <connectionProperty name="defaultRowFetchSize">10000</connectionProperty>  

але не соромтеся змінити номер. Налаштування кількості занадто великий призведе доERDDAP™використовувати багато пам'яті і швидше за все, щоб вийти з пам'яті.

Контакти

Кожна база даних має інші властивості з'єднання, які можна вказати вdatasets.xmlй Багато хто з них вплине на виконання бази данихERDDAP™підключення. Будь ласка, прочитайте документацію для драйвера JDBC для перегляду параметрів. Якщо ви знайдете властивості з'єднання, які корисні, будь ласка, надсилайте електронну пошту з деталями, щоб дізнатися більшеerd dot data at noaa dot govй

  • Зробіть таблицю - Ви, ймовірно, отримаєте більш швидке реагування, якщо ви періодично (щоденно? коли є нові дані?) генерувати таблицю (Аналогічно до того, як ви створили ОГЛЯД) і розповістиERDDAP™отримувати дані з таблиці замість ОГЛЯДу. З будь-якого запиту на таблицю можна виконати без реєстрації іншого столу, відповідь буде набагато швидше.
  • Вакуумний столик - MySQL і Amazon RDS набагато швидше, якщо ви використовуєтеОПТИМІЗОВАНА КАБЕЛЬй Марія DB буде набагато швидше, якщо ви використовуєтеОПТИМІЗОВАНА КАБЕЛЬй PostgreSQL набагато швидше, якщо виВАКУУМстіл. Oracleне потребує аналогового командування.
  • ЗАМОВИТИІндексидля загальноприйнятих змінних -- Ви можете прискорити багато запитів, створюючи індекси в базі даних для змінних (які бази даних виклику «холоди») часто протипоказані в запиті користувача. В цілому ці ж змінні, вказані [<subsetVariables>] (#сумісний) і / або широтість, довгота і часові змінні.
Використання підключення басейн

Нормально,ERDDAP™робить окреме підключення до бази даних для кожного запиту. Це найнадійніший підхід. Чим швидше альтернатива – використовувати DataSource, який підтримує басейн з'єднанням. Щоб встановити його, вкажіть (Приклад)

        <dataSourceName>java:comp/env/jdbc/postgres/erddap</dataSourceName>  

прямо поруч<sourceUrl>,<драйверName>, і<підключення Майно >. І в домка /conf/context.xml, визначає ресурс з однаковою інформацією, наприклад,

        <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"/>

Загальна інформація про використання DataSource в https://docs.oracle.com/javase/tutorial/jdbc/basics/sqldatasources.html й Про насTomcat DataSource інформаціяіПриклади Tomcat DataSourceабо пошук веб-сайтів для прикладів використання DataSources з іншими серверами додатків.

  • Якщо все інше не виходить, розглянути зберігання даних в збірникуNetCDFв3.ncФайли (Природні.ncФайли, які використовуютьПанчохи Дискретні шамплінг геометереї (ДСГ) Контигузовані конструкції масивних даних і так можна обробитиERDDAPРEDDTableЗ альбомуNcCFFiles) й Якщо вони логічно організовані (кожен з даними для шматка простору і часу) йERDDAP™може отримувати дані з них дуже швидко.  

EDDTableЗ альбомуDatabase скелет Список

  <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>

EDDTableЗ альбомуEDDGrid

EDDTableЗ альбомуEDDGrid дозволяє створювати EDDTable дані з будь-якогоEDDGridдатасет.

  • Деякі загальні причини для цього є:
    • Це дозволяє отримувати дані за допомогоюOPeNDAPвибір обмежень, які є типом «коротки за значенням» (який користувач може запитати) й
    • Ці дані притаманні табличних даних.
  • Значення глобального атрибуту "maxAxis0" (як правило, тип="int") й (За замовчуванням 10) буде використовуватися для обмеження кількості осі\[0 р.\] (як правило,"time"вісь) значення закриваєтьсяEDDGridдані, які можна отримати за запитом на дані. Якщо ви не хочете бути будь-яким лімітом, вкажіть значення 0. Ця установка важлива, тому що, інакше, це буде занадто легко для користувача, щоб запитати EDDTableЗ альбомуEDDGridпереглянути всі дані, що скріплюються. Що б зробити довгий час і буде майже точно не вдається з помилкою часу. Це налаштування, яка робить його безпечним для EDDTableЗ альбомуEDDGridдані у ваших данихERDDAPбез страху, що призведе до необґрунтованого використання обчислювальних ресурсів.
  • Якщо закритоEDDGridєEDDGridВідErddapіERDDAP™це те жERDDAP, потім EDDTableЗ альбомуEDDGridзавжди використовується в даний час доступна версія наведеної інформації. Це дуже ефективний спосіб EDDTableЗ альбомуEDDGridдоступу до даних, що скріплюються.
  • Цей клас [<перевантаження КоженNMinutes> (#завантажитизавжак) Що таке кількість. ЗакритиEDDGridР<reloadEveryNMinutes> ігнорується.
  • Якщо значення для [<JavaScript licenses API Веб-сайт (#updateeverynmillis, Україна) подається на цей набір даних, він ігнорується. ЗакритиEDDGridР<updateEveryNMillis> це те, що має значення.
  • ГенераціяДатасетСмлhas an option для dataset type=EDDTableЗ альбомуEDDGridякий просить URL-адресуERDDAP (зазвичай те ж самеERDDAP) (Закінчення в "/erddap/") і звичайний вираз. ГенераціяДатасети Xml потім генерувати XML для EDDTableЗ альбомуEDDGridнабір даних для кожної сіткиERDDAP™що маєdatasetIDякий відповідає формальному виразу (Використовуйте .\*, щоб відповідати всімdatasetIDs для сітчастих даних) й

Шинка XML, яка генерується GenerateDatasetsXml для кожного набору даних включає:

  • РdatasetIDщо такеEDDGridРdatasetIDплюс "\_Asatable".
  • Новий підсумковий глобальний атрибут, який єEDDGrid's резюме плюс новий перший абзац, що описує цей набір даних.
  • Новий світовий атрибутEDDGrid's title плюс ", (Як на столі) ".
  • Новий глобальний атрибут maxAxis0 з значенням 10.

EDDTableЗ альбомуEDDGridСписок 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>

EDDTableЗ альбомуFileNames

EDDTableЗ альбомуFileNames створює дані з інформації про групу файлів в файловій системі сервера, включаючи URL для кожного файлу, щоб користувачі могли завантажити файли черезERDDAPР"files"системий На відміну від всіхEDDTableЗ альбомуFilesсубкласи, цей тип даних не містить даних у файлах.

  • EDDTableЗ альбомуFileNames корисно коли:
    • У вас є група файлів, які ви хочете розподіляти всі файли, оскільки вони не містять "дані" таким же чином, що регулярні файли даних мають дані. Наприклад, файли зображень, відео файли, документи Word, файли електронних таблиць Excel, файли презентації PowerPoint або текстові файли з неструктурованим текстом.
    • У вас є група файлів, які мають дані у форматі, якийERDDAP™не можна читати. Наприклад, специфіка проекту, користувацький, бінарний формат.  

EDDTableЗ альбомуFileNames даних

  • Дані в EDDTableЗ альбомуFileNames- таблиця, якаERDDAP™створює інформацію про групу локальних файлів. У таблиці є ряд для кожного файлу. Чотири спеціальні атрибути вdatasets.xmlдля данихвизначити, які файли будуть включені в цей набір даних:
Головна Дір
  • <JavaScript licenses API Веб-сайт Це визначає вихідний каталог у файловій системі сервера з файлами для цього набору даних. Файли, які фактично знаходяться в файловій системі сервера в<fileDir> з'явиться у виворітному стовпці цього набору даних у віртуальному каталозі https://serverUrl/erddap/files/datasetID/ й Наприклад, якщоdatasetIDДЖПЛМУRSSТ, і<JavaScript licenses API Веб-сайт Go1.13.8 і що каталог має файл jplMURSST20150103000000.png, потім буде показано URL-адресу для цього файлу https://serverUrl/erddap/jplMURSST/jplMURSST20150103000000.png й

Крім використання локального каталогу для<fileDir>, ви також можете вказати URL-адресу віддаленої, каталог-подібної сторінки. Це працює з:

відOnTheFly

\\\* зНаФлі--- Для деяких величезних S3 відро (як noaa-goes17, що має 26 мільйонів файлів) , може знадобитисяERDDAP™до 12 годин для завантаження всієї інформації про вміст відра (а потім є інші проблеми) й Для цього існує спеціальний спосіб використання<fileDir> в EDDTableЗ альбомуFileNames, щоб зробити набір даних з каталогом і іменами файлів від AWS S3 відро. Список всіх каталогів S3 та імен файлів, які користувач може шукати за допомогою запитів до Dataset. Але датасет отримуватиме імена каталогів та файлів, якщо користувач перетворює каталог ієрархію з даними"files"варіант. Таким чином, це дозволяє користувачам переглядати ієрархію файлів S3 відра та файли за допомогою Dataset"files"система. Щоб зробити це, замість того, щоб вказати URL для відро S3 як "Почати каталог" (в GenerateDatasets Хмл) або<файлДир> (вdatasets.xml) , використання:

\\*\\*\\*fromOnTheFly,*theS3BucketUrl*  

Наприклад:

\\*\\*\\*fromOnTheFly,https://noaa-goes17.s3.us-east-1.amazonaws.com/  

Переглянути документаціюробота з S3 Buckets вERDDAP™, можливо, опис конкретного формату, який повинен бути використаний для S3 відро URL. І див ці деталі та прикладвикористання\\\* зНаФлі.

рекурсивний
  • <рекурсивний> -- Файли в піддиректорах<fileDir> з іменами, які відповідають<файлRegex> з'явиться в одному підкатегорії"files"URL-адреси<рекурсивний> встановлюється на true. За замовчуванням false.
  • Про нас<шляхРежекс>] (Українська) --- Якщо рекурсив=true, тільки імена каталогів, які відповідають шляхуRegex (За замовчуванням=".\*") буде прийнята. Якщо рекурсив=false, це ігнорується. Це рідко використовується, але може бути дуже корисним в незвичайних обставинах. (Дивитися цеregex документаціяіregex підручникй)
файлRegex
  • <ФайлRegex> -- Тільки імена файлів, в яких весь файл (не включаючи назву каталогу) відповідати<ФайлRegex> буде включений в цей набір даних. Наприклад, jplMURSSТ.{14}\.png . (Дивитися цеregex документаціяіregex підручникй)
     
Від вмісту таблиці даних File Names

У таблиці будуть стовпчики з:

  • url -- URL-адреса, які користувачі можуть використовувати для завантаження файлу черезERDDAPР"files"системий

  • Ім'я -- Назва файлу (без назви каталогу) й

  • lastModified -- Час останнього оновлення файлу (зберігати в якості подвійних з"seconds since 1970-01-01T00:00:00Z") й Ця змінна є корисною, тому що користувачі можуть бачити, якщо / коли вміст вказаного файлу змінено. Ця змінна єчас Штамп змінний, так що дані можуть відображатися як числові значення (з 1970-01T00:00Z) або значення String (ISO 8601:2004 (Етикети) Головна) в залежності від ситуації.

  • розмір -- Розмір файлу в байтах, що зберігаються як подвійні. Вони зберігаються як подвійні, тому що деякі файли можуть бути більшими, ніж ints дозволяють і довги не підтримуються в деяких типах файлів відповіді. Подвійні дадуть точний розмір, навіть для дуже великих файлів.

  • Додавання стовпчиків, визначенихERDDAP™адміністратор з інформацією, вилученою з файлу (наприклад, час, пов'язаний з даними в файлі) на основі двох атрибутів, які ви вказали у метаданих для кожного додаткового стовпця/dataVariable:

    • екстрактRegex -- Церегулярний вираз (підручники) й Весь регіон повинен відповідати всій назві файлів (не включаючи назву каталогу) й regex повинен включати принаймні одну групу захоплення (розділ формального виразу, який закривається дужками) якіERDDAP™Використовуйте для визначення якого розділу імені файлу для отримання даних.
    • Екстракт Група -- Це число групи захоплення (#1 - перша група захоплення) у формальному виразі. За замовчуванням 1. Група захоплення є розділом формального виразу, який закривається дужками.

Ось два приклади:

            <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>

У разі зміни часу, якщо файл має ім'я jplMURSST20150103000000.png, екстрактRegex відповідатиме назві файлів, витягувати символи, які відповідають групі першого захоплення ("20150103000000") як dataType=String, потім використовуйтеблоки, придатні для рядкових разівзадати рядки в значення даних часу (2015-01-03Т00:00:00З) й

У разі зміни дня, якщо файл має ім'я jplMURSST20150103000000.png, екстрактRegex відповідатиме назві файлів, витягувати символи, які відповідають групі першого захоплення ("03") як [<датаТип> (Головна) \=навіть, виймаючи значення даних 3.

Інформація

  • Без категорії<JavaScript licenses API Веб-сайт (#updateeverynmillis, Україна) --- Цей тип даних не потребує і не може використовуватися<updateEveryNMillis> tag, тому що інформація, що подається EDDTableЗ альбомуFileNames завжди відмінно up-to-date, тому щоERDDAP™запитує файлову систему, щоб відповісти на кожен запит на дані. Навіть якщо є величезна кількість файлів, цей підхід повинен працювати належним чином. Відповідність може бути повільним, якщо є величезна кількість файлів і датасет не було переглянуто протягом деякого часу. Але протягом декількох хвилин після цього операційна система зберігає інформацію в кеші, тому відповіді повинні бути дуже швидко.  
  • Ви можете використовуватиГенераціяДатасети Програма Xmlщоб зробитиdatasets.xmlкурка для даного типу гарнітура. Ви можете додати / додати додаткові стовпчики з інформацією, отриманою з файлу, як показано вище.  

EDDTableЗ альбомуFileNames скелет Список

  <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>

EDDTableЗ альбомуFiles

EDDTableЗ альбомуFiles є суперклас всіх EDDTableЗ альбому...Файли класи. Ви не можете використовувати EDDTableЗ альбомуFiles безпосередньо. Замість, використовуйте підклас EDDTableЗ альбомуFiles для обробки певного типу файлу:

В даний час не підтримується інші типи файлів. Але, як правило, відносно легко додати підтримку інших типів файлів. Зв'язатися з нами, якщо у вас є запит. Або, якщо ваші дані є у старому форматі файлів, який ви хочете відійти від, ми рекомендуємо конвертувати файли, щоб бутиNetCDFв3.ncФайли (і особливо.ncФайли зПанчохи Дискретні шамплінг геометереї (ДСГ) Структура даних Contiguous Ragged Array --ERDDAP™може отримувати дані з них дуже швидко) йNetCDFє широко підтримується, бінарний формат, дозволяє швидко випадковий доступ до даних, і вже підтримуєтьсяERDDAPй

ВідФайли Детальніше

Наступна інформація стосується всіх підкласів EDDTableЗ альбомуFiles.

Агрегіон

Цей клас сукупно дані з місцевих файлів. Кожен файл має (відносно) невеликий стіл даних.

  • Отримані дані з'являються, якщо всі таблиці файлів були поєднані (всі ряди даних з файлу #1, плюс всі рядки з файлу #2, ...) й
  • Файли не повинні мати всіх зазначених змінних. Якщо заданий файл не має вказаної змінної,ERDDAP™буде додано відсутні значення в міру необхідності.
  • У всіх файлах MUST є однакові значення дляadd\_offsetйmissing\_valueй\_Філл Цінайscale\_factorйблокиатрибути (якщо) йERDDAP™перевіряє, але це недосконалий тест - якщо є різні значення,ERDDAPне знаю, що це правильно і тому, що файли не є недійсними. Якщо це проблема, ви можете використовуватиНЦМЛабоNCOвиправити проблему.  
Стиснені файли

EnglishDeutschPусский简体中文中國傳統EspañolالعربيةFrançaisελληνικάDanskАнглійскаябългарскиCatalàČeskýEestiSuomiGaeilgeहिन्दीHrvatskiMagyarIndonesiaIcelandicItalianoעברי日本の한국의LietuvosLatvijasмакедонскиMalayMaltiNederlandsNorskPolskiPortuguêsRomânescSlovenskýSlovenskiShqiptarCрпскиSvenskaไทยTürkçeYкраїнськийTiếng việtייִדישKiswahili (Наприклад,.tgzй.tar.gzй.tar.gzipй.gzй.gzipй.zipй.bz2, або .Z) й ДивитисяЗовнішня компресована документація файлівй  

Інформація про файли cookie
  • Коли EDDTableЗ альбомуFiles Dataset спочатку завантажується, EDDTableЗ альбомуFiles читає інформацію з усіх відповідних файлів і створює таблиці (один ряд для кожного файлу) з інформацією про кожен дійсний файл і кожен "поганий" (різні або недійсні) файл.
    • Столи також зберігаються на диску, якNetCDFв3.ncФайли в bigParentПублічний Українська JavaScript licenses API Веб-сайт Go1.13.8 Українська datasetID / у файлах: диртектор.nc (який має список унікальних імен каталогів) й Головна Настільний.nc (який має таблицю з інформацією кожного дійсного файлу) й веб камера.nc (який зберігає таблицю з інформацією кожного поганого файлу) й
    • Для прискорення доступу до EDDTableЗ альбомуFiles dataset (але за рахунок використання більше пам'яті) , ви можете використовувати Про нас<JavaScript licenses API Веб-сайт<Головна > (#filetableinmemory)
      розповістиERDDAP™зберігати копію таблиць інформації про файли в пам'яті.
    • Копія таблиць інформації на диску також корисна приERDDAP™Закривається і перезавантажується: він зберігає EDDTable Відповіді від необхідності перепрочитати всі файли даних.
    • При перевантаженні даних,ERDDAP™лише потрібно читати дані в нових файлах та файлах, які змінилися.
    • Якщо файл має різну структуру з інших файлів (наприклад, різний тип даних для одного з змінних, або іншого значення для "блоки" атрибут") йERDDAPдодає файл до списку «поганих» файлів. Інформація про проблему з файлом буде написана до bigParentПублічний /logs/log.txt файл.
    • Не потрібно видаляти або працювати з цими файлами. Один виняток: якщо ви все ще вносите зміни до данихdatasets.xmlНалаштування, ви можете видалити ці файли, щоб зменшитиERDDAP™Щоб перечитати всі файли, так як файли будуть читати/передаватися по-різному. Якщо ви коли-небудь повинні видалити ці файли, ви можете це зробити, колиERDDAP™працює. (Потім встановітьУвійтиперезавантажити дані ASAP.) ОднакERDDAP™зазвичай помітить, щоdatasets.xmlне відповідає файлу Інформація про таблицю та видаляє таблиці файлів автоматично.
    • Якщо ви хочете заохочуватиERDDAP™для оновлення інформації, що зберігається (наприклад, якщо ви просто додали, видалені або змінили деякі файли до каталогу даних Dataset) , використовуватисистема прапоразмуситиERDDAP™для оновлення інформації з кешованого файлу.  
Запити для рук
  • ERDDAP™Заявки на дані табличних даних можуть наносити обмеження на будь-яку змінну.
    • Коли запит клієнта для обробки даних, EDDTableFromFiles може швидко виглядати в таблиці з чинною інформацією про файл, щоб побачити, які файли можуть мати відповідні дані. Наприклад, якщо кожен вихідний файл має дані для одного фіксованого розміщення буй, EDDTableЗ альбомуFiles може дуже ефективно визначати, які файли можуть мати дані в діапазоні довготи і широтості.
    • Оскільки поточний файл інформаційний стіл включає мінімальне і максимальне значення кожної змінної для кожного дійсного файлу, EDDTableЗ альбомуFiles може часто обробляти інші запити досить ефективно. Наприклад, якщо деякі з буй не мають датчика тиску повітря, а дані про клієнта для AirPressure!=NaN, EDDTableЗ альбомуFiles може ефективно визначити, що буйс мають дані тиску повітря.  
Оновлення інформації про видавця

Після того, як датасет перезавантажується, оновлення кеш-файлу.

  • Завантажується періодично, як визначено<reloadEveryNMinutes> в інформації про даніdatasets.xmlй
  • Ви можете перезавантажити дані в найкоротші терміниERDDAP™виявляє, що ви додалите, видалено,[сенсорний](https://en.wikipedia.org/wiki/Touch_(Unix)й (змінити останній файл Число завантажень) або змінено файл даних.
  • Після того, як ви використовуєтесистема прапорай

При перевантаженні даних,ERDDAP™Порівняти доступні файли до таблиці інформації про файл кешування. Нові файли читаються та додаються до таблиці дійсних файлів. Файли, які більше не існує, випадають з таблиці дійсних файлів. Файли, де файл timestamp змінив, і їх інформація оновлено. Нові столи заміняють старі столи пам'яті і на диску.  

Погані файли

Таблиця поганих файлів і причин, які були заявлені поганими (пошкоджений файл, відсутні змінні, неправильні значення осі тощо.) електронна пошта Про нас Адреса електронної пошти (ймовірно, ви) кожен раз перезавантаження даних. Ви повинні замінювати або відремонтувати ці файли якомога швидше.  

Змішані мінливі

Якщо деякі файли не мають деякихdataVariables, визначений в данихdatasets.xmlкурка, це океї. Коли EDDTableЗ альбомуFiles читатиме одну з цих файлів, вона буде діяти як якщо файл був змінним, але з усіма відсутніми значеннями.  

Поруч з даними реального часу
  • EDDTableЗ альбомуFiles лікує запити на останні дані як спеціальний випадок. Проблема: Якщо файли, що складаються з набору даних, часто оновлюються, швидше за все, дані, які не будуть оновлюватися кожен раз, коли файл змінюється. Так EDDTableЗ альбомуFiles не буде в курсі змінених файлів. (Ви можете використовуватисистема прапора, але це може призвести доERDDAP™перезавантаження даних практично безперервно. Ми не рекомендуємо.) Замість EDDTableЗ альбомуFiles працює з цією системою: КолиERDDAP™отримувати запит на дані протягом останніх 20 годин (наприклад, 8 годин тому до) йERDDAP™буде шукати всі файли, які мають будь-які дані за останні 20 годин. Так,ERDDAP™не потрібно мати ідеальної інформації для всіх файлів, щоб знайти останні дані. Ви все ще повинні встановити [<перевантаження КоженNMinutes> (#завантажитизавжак) до малої вартості (наприклад, 60) , але це не повинно бути крихітним (наприклад, 3) й  
    • Не рекомендується організація вихідних даних у файлах: Якщо, наприклад, у вас є дані, які зберігає дані для численних станцій (або буй, або траєкторія, ...) протягом багатьох років ви можете влаштувати файли так, щоб, наприклад, є один файл на станцію. Але потім, кожен раз нові дані для станції приїжджає, ви повинні прочитати великий старий файл і писати великий новий файл. І колиERDDAP™перезавантажує набір даних, повідомляє, що деякі файли були модифіковані, тому він повністю читає файли. Що таке неефективність.  

    • Рекомендовані організація вихідних даних у файлах: Зберігайте дані в шматках, наприклад, всі дані для однієї станції/buoy/traatory протягом одного року (або місяць) й Після цього, коли новий світ прибуває, тільки файл з цього року (або місяць) Постраждати дані.

    • Кращий: ЗареєструватисяNetCDFв3.ncфайли з необмеженим розміром (час) й Потім, щоб додати нові дані, ви можете просто додати нові дані без того, щоб прочитати і переписати весь файл. Зміна виконана дуже ефективно і в основному атомічно, тому файл не вічно в невідповідному стані.

    • Інакше: Якщо ви не використовуєте.ncфайли з необмеженим розміром (час) , потім, коли потрібно додати нові дані, ви повинні прочитати і переписати весь уражений файл (Насолоджуйтеся невеликими, оскільки це просто має рік (або місяць) Вартість даних) й На щастя, всі файли за останні роки (або місяці) для цієї станції залишаються незмінними.

У обох випадках, колиERDDAP™перезавантажити набір даних, більшість файлів незмінні; тільки кілька, змінилися файли і потрібно прочитати.  

Директори

Файли можуть бути в одному каталозі, або в каталозі та його дочірніх каталогах (рекурсивно) й Якщо є велика кількість файлів (наприклад, >1,000) , операційна система (і таким чином EDDTableЗ альбомуFiles) буде працювати набагато ефективніше, якщо ви зберігаєте файли в ряді підdirectories (один за рік, або один на місяць для даних з дуже частими файлами) , щоб ніколи не було величезної кількості файлів в даній каталозі.  

Віддалені директорії та запити діапазону HTTP
  • Віддалені директорії та запити діапазону HTTP (AKA Byte Сервінг, Byte діапазон запитів) --- EDDGridЗNcFiles, EDDTableЗ альбомуMultidimNcFiles, EDDTableЗ альбомуNcFiles, і EDDTableЗ альбомуNcCFFiles, іноді може служити дані з.ncфайли на віддалених серверах та доступах через HTTP, якщо сервер підтримуєПоза «69»через HTTP запити діапазону (Механізм HTTP для подачі) й Це можливо, тому що netcdf-java (якіERDDAP™використовувати для читання.ncФайли) підтримує читання даних з пульта дистанційного керування.ncФайли через HTTP запити діапазону.

    Не робіть це!
    замість цього використовуйте [<cacheЗ альбомуUrl> система] (#cachefromurl) й

CacheЗ альбомуUrl
  • Про нас ** <cacheЗ альбомуUrl> ** до (#cachefromurl) до ВсіEDDGridВідФайли та всі EDDTableЗ альбомуFiles datasets підтримують набір тегів, які розповідаютьERDDAP™для завантаження та підтримки копіювання всіх файлів віддалених даних або кешу декількох файлів (завантаження) й Це неймовірно корисна функція.
    • Про нас<cacheЗ альбомуUrl> tag дозволяє вказати URL з переліком файлів віддалених даних з віддаленого списку файлів.

      ERDDAP™скопіювати або кешувати ці файли в даних<fileDir> каталог. Якщо вам потрібна підтримка іншого типу віддаленого списку файлів (Наприклад, FTP) , будь ласка, по електронній пошті запит на Кріс. Джон на noaa.gov .

      • Значення за замовчуванням для<cacheЗ альбомуUrl> тег null. Якщо ви не вказали значення для<cacheЗ альбомуUrl> tag, система копіювання / кеш не буде використовуватися для цього набору даних.
      • Якщо дані<ФайлRegex> Налаштування - це щось інше, ніж .\*,ERDDAP™Завантажте файли, які відповідають файлуRegex.
      • Якщо дані<recursive> налаштування true і віддалені файли знаходяться в підкаталогах,ERDDAP™буде виглядати на віддалених підкаталогах, які відповідають даним [<шляхРежекс>] (Українська) , створити однакову структуру каталогів локально, і покласти локальні файли в одному підкатегорі.
      • У GenerateDatasets Xml, якщо ви вказуєте<cacheЗ альбомуUrl> значення, Generate Дані Xml створить локальне<fileDir> каталог і копіювання 1 віддаленого файлу в ньому. ГенераціяДатасети Xml потім генеруватиdatasets.xmlкруглий на основі цього файлу зразка (вказати зразок Файл=nothing) й
      • Якщо джерело даних є дистанційнимERDDAP™, використанняEDDGridВідErddapабоEDDTableЗ альбомуErddapзамість<cacheЗ альбомуUrl>. Таким чином, ваш локальнийERDDAP™не потрібно зберігати дані локально. Єдина причина використання<cacheЗ альбомуUrl> для отримання даних з дистанційного керуванняERDDAP™Якщо у вас є інші причини, чому ви хочете мати локальну копію файлів даних. У цьому випадку:
        • Цей набір даних буде намагатися підписатися на Dataset на пульті дистанційного керуванняERDDAPтак, що зміни до цього набору даних будуть називати цей прапор даних Урл, викликаючи ці локальні дані для перевантаження та завантаження змінних віддалених файлів. Таким чином, локальні дані будуть дуже скоро після внесення змін до віддалених даних.
        • Вам необхідно надіслати адміністратора дистанційного керуванняERDDAP™запитатиdatasets.xmlдля віддаленого набору даних, щоб ви могли зробити дані в локальній мережіERDDAP™Як виглядає гарнітура в дистанційному режиміERDDAPй
      • Якщо джерело даних є дистанційнимERDDAP™, локальна датасета намагатиметься підписатися на віддалені дані.
        • Якщо передплата досягається, коли б не було віддаленоERDDAPперезавантаження і має нові дані, він буде контактувати з прапором для цього набору даних, викликаючи його перезавантаження і завантажити нові та / або змінені файли даних.
        • Якщо підписка не вдається (з будь-якої причини) Якщо ви просто хочете переконатися, що локальний датасет є актуальним, ви можете встановитиУвійтидля локальних даних, тому він перезавантажиться, тому він перевірить нові та/або змінені файли віддалених даних.
      • Якщо джерело даних не є дистанційнимERDDAP: При перезавантаженні даних перевірте нові та/або змінені віддалені файли. Зазвичай це контролюється [<перевантаження КоженNMinutes> (#завантажитизавжак) й Але якщо ви знаєте, коли є нові віддалені файли, ви можете встановитиУвійтидля локальних даних, тому перезавантаження та перевірка нових та/або змінених файлів дистанційних даних. Якщо це відбувається в певний час доби (Наприклад, в 7am) , ви можете зробити роботу cron для використанняcurlзв'язати прапор Урл для цього набору даних, тому він перезавантажить та перевірить нові та/або змінені файли віддалених даних.
    • Про нас<cacheSizeGB> тег визначає розмір місцевого кешу. Ви, ймовірно, повинні використовувати це при роботі з хмарними системами зберігання, такими як:Amazon S3яка є загальноприйнятою системою зберігання, яка є частиноюВеб-послуги Amazon (АВІ) й За замовчуванням -1.

      • Якщо значення є<до 0 (Наприклад, значення за замовчуванням -1) й ERDDAP™буде завантажити і підтримувати повна копія всіх файлів віддалених даних у файлах Dataset<файлДир>.
        • Це налаштування, яке рекомендується в будь-який час.
        • Кожен раз перевантажується датасет, він порівнює імена, розміри та останніModified раз віддалених файлів та локальних файлів і завантажує будь-які віддалені файли, які є новими або змінені.
        • Якщо файл, який був на віддаленому сервері,ERDDAP™не видаляти відповідний локальний файл (інакше, якщо щось було тимчасово неправильно з віддаленим сервером,ERDDAP™може видалити деякі або всі локальні файли!) й
        • За допомогою цієї налаштування зазвичай ви будете встановлювати<updateEveryNMillis> to -1, оскільки датасет знає, коли він скопіював нові файли даних на місце.
      • Якщо значення є >0, ERDDAP™буде завантажувати файли з віддаленого набору даних, як це потрібно для локального пердят (у датасеті)<fileDir>) з пороєм розміром зазначеного числа ГБ.
        • кеш повинен бути досить великим, щоб тримати принаймні кілька файлів даних.
        • В цілому, чим більше кешу, тим краще, тому що наступний запитаний файл даних буде швидше за все, вже буде в кеші.
        • Кешування слід застосовувати тільки приERDDAP™працює в хмарному обчислювальному сервері (Наприклад, AWS) і віддалені файли в системі хмарного зберігання (Наприклад, AWS S3) й
        • Коли дисковий простір, що використовується місцевими файлами, перевищує кеш РозмірGB,ERDDAP™скоро (не відразу) видалити деякі файли кешування (В даний час на основі Least Нещодавно використовується (ЛРУ) алгоритм) до моменту використання дискового простору локальними файлами<0.75\*cacheSizeGB («Боголь») й Так, є випадки, коли LRU виконує дуже погано - не існує ідеального алгоритму.
        • ERDDAP™ніколи не намагатися видалити файл кешування, якийERDDAP™за останні 10 секунд. Це імперфектна система, що має справу з системою кешу та системою зчитування файлів даних, яка є лише сипучою інтегрованою. Через це правило,ERDDAP™не може бути в змозі видалити достатньо файлів, щоб досягти його мети, в якому випадку він буде друкувати WARNING до файлу log.txt, і система буде витрачати багато часу, намагаючись призупинити кеш, і це можливо, що розмір файлів в кеші може значно перевищувати кешSizeGB. Якщо це коли-небудь виникає, використовуйте більший кешSizeGB налаштування для цього набору даних.
        • В даний часERDDAP™ніколи не перевіряє, якщо віддалений сервер має нову версію файлу, що знаходиться в локальному кеші. Якщо вам потрібна ця функція, будь ласка, по електронній пошті Кріс. Джон на noaa.gov .
      • Незважаючи на те, що використання однакових назв тегів може призвести до того, що система копіювання та система кешу використовують однакову базову систему, яка не є правильним.
        • Система копіювання проактивно починає завданняПрочитати завдання для завантаження нових і змінених файлів кожен раз перезавантаження даних. Тільки файли, які насправді були скопійовані до місцевого каталогу, доступні черезERDDAP™датасет.
        • Система кешу отримує список віддалених файлів, кожен раз, коли датасет перезавантажується і додає, що всі ці файли доступні черезERDDAP™датасет. Цікаво, що всі віддалені файли навіть з'являються в веб-сторінках / файлах / сторінках даних і доступні для завантаження (Хоча, можливо, тільки після затримки, коли файл спочатку завантажується з віддаленого сервера до локального кешу.)
      • Дані, які використовують кешSizeGB, можуть скористатися за допомогою кешунТримНалаштування більше 1, тому що це дозволить вам завантажити більше 1 віддалений файл.
    • Про нас<cachePownPathRegex> tag є рідко використовуваним тегом, який може вказати альтернативну альтернативу Dataset [<шляхРежекс>] (Українська) й За замовчуванням null.

      • Тільки використовуйте це, якщо ви копіюєте всі дані за замовчуванням<cacheSizeGB> значення -1. З<cacheSizeGB> значення >1, це буде ігноруватися, оскільки це нечутливий.
      • Переглянути [документація для<шляхРежекс>] (Українська) для керівництва про те, як побудувати regex.
      • Якщо це вказано, він буде використовуватися кожен раз, коли датасет перезавантажується, крім першого разу на початку місяця перезавантажується датасет.
      • Це корисно, коли віддалений набір даних зберігається в лабіринті підкатегорій і коли велика більшість цих файлів рідко, якщо коли-небудь, змінити. (Українська)<кашель> Про нас<кашель>) Ви можете, наприклад, вказати<cachePownPathRegex> який тільки відповідає поточного року або поточного місяця. Ці рейки дуже хитрі, тому що всі часткові та повні імена повинні відповідати<cachePownPathRegex> і тому, що<cachePownPathRegex> має працювати з віддаленими URL-адресами та місцевими режисерами. Приклад реального життя:
            <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>

URL-адреса зразка вище має файли на основі року (м. Київ, Україна) і день року (Наприклад, 001, 002, ..., 365 або 366) й Зверніть увагу, що<cachePerrorPathRegex> .\*, потім має певну підкатегорію, яка поширена на віддалені URL-адреси та локальні каталоги, наприклад, /v4\.1/ потім має ряд непристойних груп захоплення, де перший варіант нічого і другий варіант - це специфічне значення.

На прикладі вище будуть тільки відповідні каталоги за другий 10 днів 2018 року, наприклад, https://data.nodc.noaa.gov/ghrsst/GDS2/L4/GLOB/JPL/MUR/v4.1/2018/010/ \[2020-10-21 Цей сервер не доступний.\]
і день 011, 012, ..., 019. (Дивитися цеregex документаціяіregex підручникй)
Якщо вам потрібна допомога<cachePownPathRegex>, будь ласка, по електронній пошті<cacheЗ альбомуUrl> до Кріса. Джон на noaa.gov .

  • Загальний підхід: Якщо ви хочете використовувати<cachePownPathRegex>, не використовуйте його спочатку, тому що ви хочетеERDDAP™для завантаження всіх файлів спочатку. ПісляERDDAP™завантаживши всі файли, додайте його до гнізда данихdatasets.xmlй  
Тисячі файлів

Якщо ваш набір даних має багато тисяч файлів,ERDDAP™може бути повільним, щоб відповісти на запити на дані з цього облікового запису. Є два питання:  

  1. Кількість файлів в каталозі. Внутрішнє,ERDDAP™працює при однаковій швидкості незалежно від того, чи є n файлів в одному каталозі або розігнаються в декількох каталогах.   Але є проблема: Чим більше файлів в даній каталозі, тим повільніше операційна система повертається в список файлів в каталозі (за файл) доERDDAPй Час відповіді може бути O (n Увійти) й Це важко сказати, скільки файлів в одному каталозі занадто багато, але 10000, ймовірно, занадто багато. Таким чином, якщо ваша настройка генерує багато файлів, рекомендуємо тут: викласти файли в логічно організованих підкатегоріях (Наприклад, станція або станція / рік) й

Ще одна причина використання підкатегорій: якщо користувач хоче використовуватиERDDAPР"files"система для пошуку назви найстарішого файлу для станції X, це швидше і ефективніше, якщо файли знаходяться на станціях / річних підкаталогах, оскільки значно менша інформація повинна бути передана.

  1. Загальна кількість файлів. Для табличних даних,ERDDAP™відстежує діапазон значень для кожної змінної в кожному файлі. Коли користувач робить запит,ERDDAP™Щоб дізнатися всі дані з усіх файлів, які можуть мати дані, що відповідають запиту користувача. Якщо користувач запитує дані з обмеженого часу (наприклад, один день або один місяць) , потімERDDAP™не доведеться створювати занадто багато файлів у вашому пристрої. Але є надзвичайні випадки, коли майже кожен файл може мати відповідні дані (Наприклад, коли водаTemperature=13.2C) й Так як це потрібноERDDAP™трохи часу (частково шукайте час на жорсткому диску, частково час, щоб прочитати заголовок файлу) просто відкрити файл (і більше, якщо є багато файлів в каталозі) , є значний час штрафу, якщо загальна кількість файлівERDDAP™має відкрити дуже великий. Навіть відкриття 1000 файлів займає значний час. Так є переваги, щоб періодично консолідувати щоденні файли на більші шматки (Наприклад, 1 станція на 1 рік) й Я розумію, що ви не можете зробити це з різних причин, але це призводить до набагато швидше відповіді. В екстремальних випадках (e.g., Я зустрілася з даними ГТС, яка має ~ 35 мільйонів вихідних файлів) , подачі даних з величезної кількості вихідних файлів є непрактичною, оскількиERDDAPВідповіді на прості запити можуть зайняти години і використовувати тонни пам'яті. По консолідації вихідних файлів в менший номер (для ГТСПП, у мене є 720 зараз, 2 на місяць) йERDDAP™може швидко реагувати. Про насМільйони файлів
     

Н.Б. Суцільні приводи чудово! Найшвидший, найпростіший, найдешевший спосіб допомогтиERDDAP™з величезною кількістю (Мали) Файли для використання твердого державного приводу. Про насТверді водні диски чудово!
 

Мільйони файлів
  • Деякі дані мають мільйони вихідних файлів.ERDDAP™може обробляти це, але з змішаними результатами.

    • Для запитів, які тільки передбачають зміни, зазначені в [<subsetVariables>] (#сумісний) йERDDAP™має всю необхідну інформацію, яка вже видобувається з файлів і зберігається в одному файлі, тому вона може відповісти дуже швидко.
    • Для інших запитівERDDAP™може сканування данихінформація про файлі з'ясуйте, що лише деякі файли можуть мати дані, які мають відношення до запиту і, таким чином, оперативно реагувати.
    • Але для інших запитів (Наприклад, водаTemperature=18 градусів\_C) де може мати відповідні дані,ERDDAP™має відкрити велику кількість файлів, щоб побачити, якщо кожен з файлів має будь-які дані, які відповідають запиту. Файли відкриті послідовно. На будь-якій операційній системі та будь-якій файловій системі (інші, ніж тверді держприводи) , це займе багато часу (доERDDAP™відповідає повільно) і дійсно зв'язує файлову систему (доERDDAP™Відповіді на інші запити) й

На щастя, є розчин.

  1. Настроювання даних на негромадськомуERDDAP™ (Ваш персональний комп'ютер?) й
  2. Створіть і запустіть скрипт, який вимагає серії.ncФайли CF, кожен з великим шматком даних, як правило, часовий період (наприклад, всі дані за даний місяць) й Виберіть часовий період, щоб всі отримані файли менше 2 Гб (але сподіваємось більше 1 Гб) й Якщо датасет має дані ближнього часу, запустіть скрипт для відновлення файлу на поточний період (наприклад, в цьому місяці) часто (10 хвилин? час) й ЗапитиERDDAP™для.ncФайли CF створюютьNetCDFв3.ncфайл, який використовує файлПанчохи Дискретні шамплінг геометереї (ДСГ) Контигузовані конструкції масивних даних.
  3. НалаштуванняEDDTableЗ альбомуNcCFFilesСписок даних на вашому сайтіERDDAP™який отримує дані з.nc (Панчохи) ФайлиERDDAP™може витягти дані з цих файлів дуже швидко. І звідти зараз десятки або сотні (замість мільйонів) файлів, навіть якщоERDDAP™Щоб відкрити всі файли, це може зробити так швидко.

Так, ця система займає деякий час і зусилля, щоб налаштувати, але вона працює дуже добре. Більшість запитів на дані можна використовувати в 100 разів швидше, ніж раніше. \[Боб знав це, але це було Kevin O'Brien, який спочатку зробив це і показав, що він добре працює. Тепер, Боб використовує цей набір даних ГТС, який має близько 18 мільйонів вихідних файлів і якіERDDAP™тепер обслуговує близько 500.nc (Панчохи) Файли\]

Н.Б. Суцільні приводи чудово! Найшвидший, найпростіший, найдешевший спосіб допомогтиERDDAP™з величезною кількістю (Мали) Файли для використання твердого державного приводу. Про насТверді водні диски чудово!
 

Великі файли
  • Один файл даних (Файли даних ASCII) може викликати OutOfMemoryError. Якщо це проблема, вона повинна бути очевидною, оскількиERDDAP™не буде завантажувати дані. Розчин, якщо інтуїтивно зрозумілий, щоб розбити файл на декілька файлів. В ідеалі можна розбити файл на логічні шматки. Наприклад, якщо файл має 20 місяців, варто розбити його на 20 файлів, кожен з 1 місяць варто даних. Але є переваги навіть якщо основний файл розщеплюється довільно. Цей підхід має декілька переваг: a) Це знизить пам'ять, необхідну для читання файлів даних до 1/20, тому що тільки один файл прочитаний в часі. б) НерідкоERDDAP™може мати справу з запитами набагато швидше, тому що він повинен виглядати лише в одному або декількох файлах, щоб знайти дані для даного запиту. з) Якщо виконується збір даних, то існуючі файли 20 можуть залишатися незмінними, і вам потрібно лише змінити один, невеликий, новий файл, щоб додати наступний місяць варто даних до набору даних.  
FTP Публікація
  • Якщо ви FTP нові файли даних доERDDAP™серверERDDAP™працює, є шанс, щоERDDAP™буде перевантажувати дані під час процесу FTP. Це дуже часто, ніж ви можете думати! Якщо це відбувається, файл буде дійсним (вона має дійсне ім'я) , але файл не діє. ЯкщоERDDAP™намагається читати дані з цього недійсного файлу, отримана помилка призведе до того, що файл буде додано до таблиці недійсних файлів. Це не добре. Щоб уникнути цієї проблеми, скористайтеся тимчасовим ім'ям файлу FTP, наприклад, ABC2005.nc\_TEMP . Потім файлNameRegex тест (Переглянути нижче) вказати, що це не є відповідним файлом. Після завершення процесу FTP перейменуйте файл на правильне ім'я. Процес перейменування призведе до того, щоб стати актуальним у миттєвому режимі.
Ім'я файлу екстракти

\[Ця функція DEPRECATED. Будь ласка, використовуйте\\\*fileName псевдоsourceNameдо.\]
EDDTableЗ альбомуFiles має систему для вилучення String з кожного імені файлу і за допомогою цього, щоб зробити змінну псевдо даних. В даний час немає системи, щоб інтерпретувати ці Рядки як дати / час. Існує кілька тегів XML, щоб встановити цю систему. Якщо вам не потрібна частина або вся ця система, просто не вказуйте ці теги або використовуйте значення "".

  • preExtractRegex є aрегулярний вираз (підручники) використовується для ідентифікації тексту, щоб видалити з початку імені файлу. Видалення тільки відбувається, якщо regex відповідає. Це зазвичай починається з "^" щоб відповідати початку імені файлу.
  • постіль ExtractRegex є регулярним виразом, який використовується для ідентифікації тексту, щоб видалити з кінця імені файлу. Видалення тільки відбувається, якщо regex відповідає. Це, як правило, закінчується "$", щоб відповідати кінця файлу.
  • екстрактРежекс Якщо присутній, цей формальний вираз використовується після попередньогоExtractRegex і postExtractRegex для визначення рядка, яку слід витягувати з файлу (наприклад,stationID) й Якщо regex не відповідає, використовується весь файл (minus preExtract і пост Екстракт) й Використовуйте ".\*", щоб відповідати всій назві файлів, яка залишається після попередньогоExtractRegex і postExtractRegex.
  • колонка NameForExtract - назва джерела даних для вилучених струн. РdataVariableз цимsourceNameбути вdataVariableСписок (з будь-яким типом даних, але зазвичай String) й

Наприклад, якщо датасет має файли з іменами, такими як XYZAble.nc, XYZBaker.nc, XYZCharlie.nc, ..., і ви хочете створити нову змінну (stationID) коли кожен файл прочитаний, який буде мати значення ідентифікатора станції (Able, Бейкер, Чарлі, ...) Вилучені з назв файлів, ви можете використовувати ці теги:

  • <JavaScript licenses API Веб-сайт</preExtractRegex> Початкова ^ є формальним виразом особливого персонажа, який змушуєERDDAP™шукати XYZ на початку файлу. Це викликає XYZ, якщо виявлений на початку файлу, щоб видалити (Наприклад, назва файлу XYZAble.ncнабуває.nc) й
  • <JavaScript licenses API Веб-сайт Go1.13.8.ncЦіна</postExtractRegex> $ в кінці є регулярним виразом особливий характер, який змушуєERDDAP™шукати.ncв кінці імені файлу. Так як . є формальним виразом (який відповідає будь-якому персонажу) , кодується як \. Головна (тому, що 2E є шістнадцятковим числом символів за період) й Причини.nc, якщо знайдено в кінці файлу, щоб видалити (наприклад, часткове ім'я файлу Амур.ncнабуває) й
  • <екстрактRegex>.\</екстрактРежекс> .\ формальний вираз відповідає всім іншим символам (наприклад, часткове ім'я файлу Able стає екстрактом для першого файлу) й
  • <JavaScript licenses API Веб-сайтstationID</columnNameForExtract> Це говоритьERDDAP™створити новий вихідний стовпчикstationIDпри читанні кожного файлу. Кожен ряд даних для даного файлу буде мати текст, який видається з його імені (наприклад, Амур) як значення вstationIDстовпчик.

У більшості випадків існує безліч значень для цих тегів екстракту, які будуть отримувати однакові результати - регулярні вирази дуже гнучкі. Але в декількох випадках існує лише один спосіб отримання бажаних результатів.  

ПсевдоsourceNameй

Кожна змінна в кожній з данихERDDAP™має [<sourceName>] (Ім'я) який визначає назву джерела для змінної. EDDTableЗ альбомуFiles підтримує кілька псевдоsourceNames, які витягують значення з іншого місця (Наприклад, ім’я файлу або значення глобального атрибуту) і пропагувати, що значення буде стовпом постійних значень для цього шматка даних (Наприклад, таблиця даних цього файлу) й Для цих змін необхідно вказати тип даних змінної за допомогою [<датаТип> (Головна) мітка. Якщо отримана інформація є рядком датаTime, ви вказите формат рядка датаTime ватрибут одиницьй псевдоsourceNameваріанти:  

глобальний:sourceNameй

У кожному файлі вихідних даних про метаданих можуть бути запропоновані дані. Якщо змінна<sourceName> має формат

        <sourceName>global:*attributeName*</sourceName>

потім колиERDDAP™читати дані з файлу,ERDDAP™буде виглядати глобальний атрибут назви (Наприклад, PI) і створити стовп, наповнений значенням атрибута. Це корисно, коли атрибут має різні значення в різних вихідних файлах, оскільки іншим чином користувачі будуть бачити одне з значень для цілого набору даних. Наприклад,

        <sourceName>global:PI</sourceName>

Коли ви пропагуєте атрибут, щоб бути даними,ERDDAP™видаляє відповідний атрибут. Це доречно, тому що значення є переважно різним в кожному файлі; в той час як в сукупному датасеті вERDDAP™вона буде мати лише одне значення. Якщо ви хочете, ви можете додати нове значення для атрибуту для цілого набору даних, додаючи<Ім'я користувача атрибути Ім'я > Новини Ціна </att> до глобальних даних [Електронний ресурс]<addAttributes>] (#аддаттрибути) й Для глобальних атрибутівERDDAP™вимагає, наприклад, установи, вам MUST додати нове значення для атрибуту.  

змінна:sourceNameй

Атрибут метаданих змінної в кожному файлі може бути пропагований, щоб бути стовпцем даних. Якщо змінна<sourceName\> має формат

        <sourceName>variable:*variableName*:*attributeName*<sourceName>

потім колиERDDAP™читати дані з файлу,ERDDAP™буде виглядати для вказаного атрибуту (Наприклад, ID) вказана змінна (наприклад, інструмент) і створити стовп, наповнений значенням атрибута. Зміна батьків (наприклад, інструмент) не є однією зdataVariables, що входить до визначення Dataset вERDDAPй Наприклад,

        <sourceName>variable:instrument:ID</sourceName>

Це корисно, коли атрибут має різні значення в різних вихідних файлах, оскільки іншим чином користувачі будуть бачити одне з значень для цілого набору даних.

Коли ви пропагуєте атрибут, щоб бути даними,ERDDAP™видаляє відповідний атрибут. Це доречно, тому що значення є переважно різним в кожному файлі; в той час як в сукупному датасеті вERDDAP™вона буде мати лише одне значення. Якщо ви хочете, ви можете додати нове значення для атрибуту для цілого набору даних, додаючи<Ім'я користувача атрибути Ім'я > Новини Ціна </att> до змінної [<addAttributes>] (#аддаттрибути) й Для атрибутів, якіERDDAP™вимагає, наприклад,ioos\_category (залежно від налаштування) , ви MUST додати нове значення для атрибуту.

ГоловнаsourceNameй

Ви можете вилучити частину файлу FileName і просувати, щоб бути стовпцем даних. Формат для цього псевдоніма [<sourceName>] (Ім'я) Про нас

        <sourceName>\\*\\*\\*fileName,*regex*,*captureGroupNumber*</sourceName>

Наприклад,

        <sourceName>\\*\\*\\*fileName,A(\\d{12})\\.slcpV1.nc,1</sourceName>

Коли EDDTableЗ альбомуFiles читати дані з файлу, це дозволить переконатися, що файлName (Наприклад, A201807041442.slcpV1.nc) відповідає вказаному регулярному виразу ("Регекс") і вилучення зазначеного (в цьому випадку, перший) група захоплення (який є частиною оточеного дужками) Наприклад, «201807041442». (Дивитися цеregex документаціяіregex підручникй) regex може бути вказаний як рядок з або без інших лапок. Якщо regex вказаний як рядок з навколишніми лапками, рядок повинна бутиJSON-style рядок (з особливими героями, які втекли з символами \) й Номер групи захоплення зазвичай 1 (перша група захоплення) , але може бути будь-яким числом.  

ГоловнаsourceNameй

Ви можете витягти частину повного шляху файлу Ім'я (JavaScript licenses API Веб-сайт Go1.13.8) і пропагувати, що бути стовпцем даних. Формат для цього псевдоніма [<sourceName>] (Ім'я) Про нас

        <sourceName>\\*\\*\\*pathName,*regex*,*captureGroupNumber*<sourceName>

Наприклад,

        <sourceName>\\*\\*\\*pathName,/data/myDatasetID/(\\[A-Z0-9\\]\\*)/B(\\d{12}).nc,1</sourceName>

Коли EDDTableЗ альбомуFiles читати дані з файлу, це дозволить переконатися, що весь шляхName (Наприклад, /data/myDatasetID/BAY17/B201807041442.ncй Для цього тесту сепаратори каталогів завжди будуть'/'й Р) відповідає вказаному регулярному виразу ("Регекс") і вилучення зазначеного (в цьому випадку, перший) група захоплення (який є частиною оточеного дужками) , наприклад, "Бай17". (Дивитися цеregex документаціяіregex підручникй) regex може бути вказаний як рядок з або без інших лапок. Якщо regex вказаний як рядок з навколишніми лапками, рядок повинна бутиJSON-style рядок (з особливими героями, які втекли з символами \) й Номер групи захоплення зазвичай 1 (перша група захоплення) , але може бути будь-яким числом.  

"0 фото" Повідомлення
  • Якщо ви працюєтеГенераціяДатасетСмлабоДати, або якщо ви намагаєтеся завантажити EDDTableЗ альбому... Файли даних вERDDAP™, і ви отримаєте "0 файлів" повідомлення про помилку, що вказують на те, щоERDDAP™знайдено 0 відповідні файли в каталозі (коли ви думаєте, що є відповідні файли в цьому каталозі) :
    • Перевірте, що файли дійсно знаходяться в цьому каталозі.
    • Перевірити написання назви каталогу.
    • Перевірити файлNameRegex. Це дійсно, дуже легко зробити помилки з regexes. Для тестових цілей намагатися regex .\*, які повинні відповідати всім назвам файлів. (Дивитися цеregex документаціяіregex підручникй)
    • Перевірте, що користувач, який працює (Наприклад, користувач=tomcat (?) для Tomcat/ERDDAP) має дозвіл «читати» для тих файлів.
    • У деяких операційних системах (Наприклад, SELinux) і в залежності від параметрів системи, користувач, який побіг програми, повинен мати дозвіл «читати» для всієї мережі каталогів, що веде до каталогу, що має файли.  
стандартизація Що
  • Коли будь-який підклас EDDTableЗ альбомуFiles є агрегатуванням набору вихідних файлів, для заданої змінної, всі вихідні файли MUST мають ідентичні значення атрибутів для декількох атрибутів:scale\_factorйadd\_offset, \_Визначений,missing\_value, \_FillValue та одиниці. Подумайте про це: якщо один файл має вітроподібні блоки=knots і інший має вітроподібні блоки=m/s, то значення даних з двох файлів не повинні бути включені в той же сукупний дані. Отже, коли EDDTableЗ альбомуFiles вперше створює дані, він читає значення атрибутів з одного файлу, потім відхиляє всі файли, які мають різні значення для тих важливих атрибутів. Для більшості зібрань файлів, це не проблема, оскільки атрибути всіх змінних відповідають. Однак за інші колекції файлів, це може призвести до 1%, 10%, 50%, 90%, або навіть 99% файлів, які відхиляються як «погані» файли. Що таке неприємність.

EDDTableЗ альбому files має систему для вирішення цієї проблеми: стандартизувати Що. Стандартизація Що налаштування говорить EDDTableЗ альбомуFiles для стандартизування файлів, як тільки він читає їх, перш ніж EDDTableЗ альбомуFiles дивиться на атрибути, щоб побачити, чи вони послідовні.

Якщо дані не мають такої проблеми, не використовуйте стандартизацію Що. стандартизація Що має потенційні ризики (Обговорення) і неефективність. Отже, якщо ви насправді не потрібні можливості стандартизувати Що не потрібно зіткнутися з потенційними ризиками і неефективністю. Найбільша ефективність: коли різні стандартизують Які параметри використовуються за допомогою Dataset, він має на увазі, що вихідні файли зберігають дані значно різними способами (наприклад, з різнимиscale\_factorіadd\_offset, або з таймерами часу за допомогою різних форматів) й Таким чином, для заданої обмеження в запиті користувача немає способу дляERDDAP™Щоб зробити єдиний вихідний код, який можна застосувати до всіх вихідних файлів. Про насERDDAP™може застосовувати тільки уражені обмеження на вищому рівні. Про насERDDAP™має читати дані з більших файлів, перш ніж застосувати вище, обмеження рівня призначення. Так запитує дані, які використовують стандартизацію Чим довше обробляється.

Щоб скористатися цією системою, потрібно вказати

    <standardizeWhat>*standardizeWhat*</standardizeWhat>  

вdatasets.xmlДля EDDTableЗ альбому... Файли даних(з<датасет> тег.

Про нас стандартизація Що значення визначає, які зміни EDDTableЗ альбомуFiles повинні спробувати застосувати. Зміни є сумою комбінації:

  1. Розпакування Це багато поширених і безпечних операцій для стандартизування нумеричних стовпчиків у файлах:
    • Якщоscale\_factorта/абоadd\_offsetатрибути присутні, видаліть їх і застосуйте їх для розпакування значень даних.
    • Розпакувати атрибути (e.g., фактичний\_min, фактичний\_max,actual\_rangeйdata\_minйdata\_max, дані\_range,valid\_minйvalid\_maxйvalid\_range) , якщо присутній, якщо змінна була упакована, і якщо значення атрибутів були упаковані (це хитрощі, але, очевидно, надійний) й
    • Якщо \_FillValue та/абоmissing\_valueприсутні, конвертувати значення даних дляERDDAP«стандарт» відсутні значення: МАКС\_VALUE для цілих типів (Наприклад, 127 для байтів, 32,767 для коротких, і 2,147,483,647 для точок, 9223372036854775807 довга) і NaN для подвійних і плавок.
    • Видалити старий \_FillValue і/абоmissing\_valueатрибути (якщо) Замініть їх просто \_FillValue=\[Про насERDDAP™стандарт відсутній значення\]й  
  2. Стандартизація Numeric Times Якщо нумерична колонка має нумерні часові одиниці CF (« » » » » » » » » » » » » » » часОдягання з JavaScript licenses API Веб-сайт ", наприклад, "день з 1900-01-01") , це перетворює дату Значення часу в"seconds since 1970-01-01T00:00:00Z"значення і зміни атрибуту блоків для позначення цього. Якщо це вибрано і є шанс, що ця змінна маєscale\_factorабоadd\_offset, #1 MUST також вибрано.  
  3. Застосувати Stringmissing\_value
    Якщо рядок має \_FillValue та/абоmissing\_valueатрибути, це перетворює значення в "" і видаляє атрибути.  
  4. Знайти нумеріюmissing\_value
    Якщо числовий стовпчик не має \_FillValue абоmissing\_valueатрибути, це намагається визначити невизнаний числовийmissing\_value (Наприклад, -999, 9999, 1e37f) і перетворення екземплярів його на значення «стандарту» (МАКС\_VALUE для цілих типів, і NAN для подвійних і плавок) й Цей варіант має ризик: якщо найбільша або найменша вартість даних виглядає як відсутнє значення (Наприклад, 999) , потім дані дійсних даних будуть перетворені на відсутні значення (Наприклад: Нан) й  
  5. Зміна String "N/A" до "" Для кожного Рядка, конвертуйте кілька рядків, які зазвичай використовуються для позначення відсутній значення String до ". В даний час це виглядає для ".", "...", "-", "?", "???", "N/A", "NA", "не", "не застосовний", "нуль", "невідомий", "не спекулюється". Пошук рядка - це випадковий і прикладний після того, як рядки обрізаються. "і" і "і" особливо не на списку. Цей варіант має ризик: Якщо ви вважаєте дійсними значеннями можуть бути перетворені на ".  
  6. Стандартизується String ISO 8601 DateTimes Для кожного Рядкового стовпчика намагайтеся конвертувати неоднорідно-нутрієві String dateTimes (Наприклад, «Ян 2, 2018») до ISO 8601 String датаЧас ("2018-01-02") й Зареєструватися щоб всі значення даних для стовпця повинні використовувати один і той самий формат, інакше цей параметр не буде вносити ніяких змін до даної колонки. Цей варіант має ризик: Якщо є стовпець з значеннями рядків, які просто трапляються виглядати як загальна дата Формат часу, який буде перетворено на ISO 8601 String dateTimes.  
  7. Стандартизуйте Компактний час для ISO 8601 DateTimes Для кожного стовпа String або цілого типу, спробуйте перетворити чисто-нумерні String dateTimes (Наприклад, «20180102») до ISO 8601 String датаЧас ("2018-01-02") й Зареєструватися щоб всі значення даних для стовпця повинні використовувати один і той самий формат, інакше цей параметр не буде вносити ніяких змін до даної колонки. Цей варіант має ризик: Якщо є стовпчик з значеннями, які не мають компактної дати Часи, але виглядають як компактні датаЧас, вони будуть перетворені на ISO 8601 String dateTimes.  
  8. Стандартизаційні блоки Це намагається стандартизувати рядок блоків для кожної змінної. Наприклад, "метри на секунду", "метр/секунд","m.s^-1"й"m s-1""m.s-1" перетвориться на "m.s-1". Це не змінює значення даних. Це добре працює для дійсностіUDUNITSрядки, але можуть мати проблеми з недійсними або складними рядками. Ви можете боротися з проблемами, вказавши конкретні з-за пар в<СтандартизаціяУдуніти> вERDDAPР \[домка\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml файл. Будь ласка, вкажіть будь-які зміни, які ви вносите до Кріса. Джон в noaa.gov, щоб вони могли бути включені в типові повідомлення.xml. Цей варіант має ризик: Це може заплутати деякі складні або недійсні одиниці; однак, ви можете використовувати робочу зустріч, описану вище, щоб заперечувати проблеми, якщо вони відбуваються.  

Значення за замовчуванням стандартизації Що таке 0, що нічого не робить.

Якщо ви зміните значення стандартизації Що наступного разу перезавантаження даних,ERDDAP™перепрочитати всі файли даних для набору даних, щоб перебудувати базу даних з інформацією про кожен файл. Якщо датасет має багато файлів, це займе довго.

Примітки:

  • Колісні речі - Стандартизація Яка установка використовується для всіх стовпців у вихідному файлі. Так, наприклад, за допомогою #2048 можна успішно конвертувати колонку компактних String dateTimes в ISO 8601 String dateTimes, але це також може помилково перетворити стовпчик з Рядками, які тільки трапляються, щоб виглядати як компактні датиTimes.  
  • datasets.xmlі GenerateDatasets Хмл - Особливо складно отримати налаштування правильно вdatasets.xmlЩоб зробити свій набір даних, вам потрібно. Кращий підхід (як завжди) є:
    1. ЗареєструватисяГенераціяДатасетСмлі вказати значення стандартизації Що ви хочете використовувати.
    2. ЗареєструватисяДатиЩоб забезпечити правильність завантаження даних і відображає стандартизацію Яке налаштування, яке ви вказали.
    3. Тестування даних вручну, коли це вERDDAP™щоб забезпечити, що постраждалі зміни працюють як очікується.  
  • Ризики - Варіанти #256 і вище більш ризиковані, тобто є більший шанс, щоERDDAP™не буде виконано. Наприклад, варіант #2048 може випадково перетворити змінну з рядками ідентифікатора станції, які все просто трапляються виглядати ISO 8601 "компакт" (+7 (495) 780-09-42 доб.200-80) в ISO 8601"extended"Новини ("2018-01-02") й  
  • Повільний після зміни -- Від вартості стандартизації Що змінює значення даних, які EDDTableЗ альбомуFiles див. для кожного файлу даних, якщо ви зміните стандартизацію Що налаштування, EDDTableЗ альбомуFiles відкине всю необхідну інформацію про кожного файлу (який включає в себе мінімум і максимум для кожної зміни даних в кожному файлі) і перепрочитати кожен файл даних. Якщо датасет має велику кількість файлів, це може бути дуже трудомістким, тому він займе багато часу для перезавантаження даних впершеERDDAP™перезавантажити його після внесення змін.  
  • Геністика - Варіанти #256 і вище використання евристика для внесення змін. Якщо ви поїдете в ситуації, де вінристика приймає погане рішення, будь ласка, по електронній пошті опис проблеми Крісу. Джон в ноа. gov, тому ми можемо поліпшити евристика.  
  • Альтернативи -- Якщо один із стандартизаціїЯкі параметри не вирішують проблему для даного набору даних, ви можете вирішити проблему, зробивши проблему, зробивши проблему..ncмл файлщоб паралельно кожен файл даних і визначити зміни до речей у файлах, щоб файли були послідовними. Потім,кажіть EDDTableЗ альбому... Збір даних файлів для сукупності.ncмульті файли.

Або, використанняNCOщоб фактично змінити файли, щоб файли були послідовними.

Окремі стовпці на рік, місяць, дату, час, Протокол, другий

Він досить поширений для табличних файлів даних, щоб мати окремі стовпчики на рік, місяць, дату, годину, хвилину, другий. ДоERDDAP™v2.10, єдиним рішенням було редагування файлу даних, щоб об'єднати ці стовпчики в єдиний часовий стовпчик. ЗERDDAP™2.10+, Ви можете використовувати Про нас<sourceName>= вираз <sourceName>] (Ім'я) розповістиERDDAP™як об'єднати вихідні стовпці, щоб зробити єдиний стовпець часу, тому вам більше не доведеться редагувати вихідний файл.

<ПропуститиHeaderToRegex>
  • Про нас<JavaScript licenses API Веб-сайт Go1.13.8 (Українська) --- ОПЦІЇ. (Для EDDTableЗ альбомуAsciiFiles і EDDTableЗ альбомуColumnarAsciiFiles datasets only.)
    Коли EDDTableЗ альбомуAsciiFiles прочитає файл даних, він ігнорує всі лінії до і в тому числі рядок, яка відповідає такому регулярному виразу. За замовчуванням "", який не використовує цей параметр. Приклад
    <skipHeaderToRegex>\\\*\\\*\\\* END OF HEADER.\\*<skipHeaderToRegex>  

які будуть ігнорувати всі лінії до і в тому числі рядок, яка починається з "\\\* END ЗДОРОВ'Я.

Коли ви використовуєте цей тег,<stringNamesRow> та<firstDataRow> діють як якщо заголовок було видалено до файлу. Наприклад, ви будете використовувати стовпчикNamesRow=0, якщо імена стовпців на рядку праворуч після заголовка.

Якщо ви хочете використовувати генерацію Дані Xml з даними, яка потребує цього тегу:

  1. Зробіть новий, тимчасовий, зразок файлу, скопіюючи існуючий файл і видаліть заголовок.
  2. Запуск генерування Дані Xml і вказати цей файл зразка.
  3. Ручно додайте<SkipHeaderToRegex> тег доdatasets.xmlгорб.
  4. Видалення тимчасового, зразкового файлу.
  5. Використовуйте дані вERDDAPй
<лосиниRegex>

ОПЦІЇ. (Для EDDTableЗ альбомуAsciiFiles і EDDTableЗ альбомуColumnarAsciiFiles datasets only.)
Коли EDDTableЗ альбомуAsciiFiles читати файл даних, він ігнорує всі лінії, які відповідають цьому регулярному виразу. За замовчуванням "", який не використовує цей параметр. Приклад

    <skipLinesRegex>#.\\*<skipLinesRegex>  

які будуть ігнорувати всі лінії, які починаються з "#".

Коли ви використовуєте цей тег,<stringNamesRow> та<firstDataRow> діють, якщо всі відповідні лінії були видалені до файлу. Наприклад, ви будете використовувати стовпчикNamesRow=0 навіть якщо є кілька рядків, починаючи з, наприклад, "#" на початку файлу.

EDDTableЗ альбомуFiles скелет 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
        and EDDTableFromMultidimNcFiles only) This is a comma-separated
        list of dimension fullNames. If specified, ERDDAP™ will only read
        variables in the source files which use some or all of these
        dimensions, plus all of the scalar variables. If a dimension
        is in a group, you must specify its fullName,
        e.g., "groupName/dimensionName". -->
      <-- The next four tags are DEPRECATED. For more information, see
        File Name Extracts. -->
      <preExtractRegex>...</preExtractRegex>
      <postExtractRegex>...</postExtractRegex>
      <extractRegex>...</extractRegex>
      <columnNameForExtract>...</columnNameForExtract>
      <sortedColumnSourceName>...</sortedColumnSourceName>
        <-- The sourceName of the numeric column that the data files are
        usually already sorted by within each file, for example, "time".
        Don't specify this or use an empty string if no variable is
        suitable. It is ok if not all files are sorted by this column.
        If present, this can greatly speed up some data requests.
        For EDDTableFromHyraxFiles, EDDTableFromNcFiles and
        EDDTableFromThreddsFiles, this must be the leftmost (first) axis variable.
        EDDTableFromMultidimNcFiles ignores this because it has a better
        system. -->
      <sortFilesBySourceNames>...</sortFilesBySourceNames>
        <-- This is a space-separated list of sourceNames
        which specifies how the internal list of files should be sorted
        (in ascending order), for example "id time".
        It is the minimum value of the specified columns in each file
        that is used for sorting.
        When a data request is filled, data is obtained from the files
        in this order. Thus it determines the overall order of the data
        in the response. If you specify more than one column name, the
        second name is used if there is a tie for the first column; the
        third is used if there is a tie for the first and second
        columns; ... This is OPTIONAL (the default is
        fileDir+fileName order). -->
        
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <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 -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
        <-- For EDDTableFromHyraxFiles, EDDTableFromMultidimNcFiles,
        EDDTableFromNcFiles, EDDTableFromNccsvFiles, and
        EDDTableFromThreddsFiles, the source's axis variables (for
        example, time) needn't be first or in any specific order. -->
  </dataset>

EDDTableЗ альбомуAsciiService

EDDTableЗ альбомуAsciiService По суті скребковий скребок. Призначений для вирішення джерел даних, які мають простий веб-сервіс для запиту даних (часто форму HTML на веб-сторінці) і які можуть повернути дані в деяких структурованих форматах ASCII (наприклад, кома-сепарований або колонний формат ASCII) й

EDDTableЗ альбомуAsciiService є суперкласом всіх класів EDDTableЗ альбомуAsciiService... Ви не можете використовувати EDDTableЗ альбомуAsciiService безпосередньо. Замість використовуйте підклас EDDTableЗ альбомуAsciiService для обробки конкретних типів послуг:

В даний час не підтримується інші види послуг. Якщо вони працюють аналогічно. Зв'язатися з нами, якщо у вас є запит.

Детальніше

Наступна інформація стосується всіх підкласів EDDTableЗ альбомуAsciiService.

  • Концентрати --ERDDAP™Заявки на дані табличних даних можуть наносити обмеження на будь-яку змінну. Основна послуга може або не дозволити обмеження на всі зміни. Наприклад, багато послуг тільки підтримують обмеження на назвах станцій, широтності, довготи і часу. Таким чином, коли підклас EDDTableЗ альбомуAsciiService отримує запит на підмножину даних, він проходить стільки обмежень, як це можливо до служби вихідних даних, а потім застосовує інші обмеження до даних, що повернулися до служби, перед тим як передати дані користувачеві.
  • Реальний діапазон -- На відміну від багатьох інших типів даних, EDDTableFromAsciiService, як правило, не знає діапазону даних для кожної змінної, тому він не може швидко відхилити запити на дані за межами діючого діапазону.
  • Відповідність тексту ASCII -- Коли EDDTableЗ альбомуAsciiService отримує відповідь від ASCII Text Service, він повинен підтвердити, що відповідь має очікуваний формат та інформацію, а потім витягувати дані. Ви можете вказати формат, використовуючи різні спеціальні теги в шматку XML для цього набору даних:
    • <передData1> через<передData10> теги -- Ви можете вказати серію фрагментів тексту (стільки, скільки ви хочете, до 10) that EDDTableЗ альбомуAsciiService повинен шукати в заголовку тексту ASCII, подана послугою з<передData1> через<доДата10>. Наприклад, це корисно для перевірки того, що відповідь включає очікувані зміни за допомогою очікуваних юнітів. Останнє доData tag, що ви вказали ідентифікацію тексту, що відбувається прямо до початку даних.
    • <післяДата> --- Ця специфікація визначає текст, який EDDTableЗ альбомуAsciiService буде виглядати в тексті ASCII, який повернув послугу, яка визначає кінець даних.
    • <Нотатки> --- Якщо EDDTableЗ альбомуAsciiService знаходить цей текст у тексті ASCII, який поповнюється сервісом, він укладає, що немає даних, які відповідають запиту.

EDDTableЗ альбомуAsciiService скелет XML

  <dataset type="EDDTableFromAsciiService..." 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 -->
      <sourceUrl>...</sourceUrl>
      <beforeData1>...<beforeData1> <!-- 0 or 1 -->
      ...
      <beforeData10>...<beforeData10> <!-- 0 or 1 -->
      <afterData>...<afterData> <!-- 0 or 1 -->
      <noData>...<noData> <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more -->
  </dataset>

EDDTableЗ альбомуAsciiServiceNOS

EDDTableЗ альбомуAsciiServiceNOS надає послуги текстових даних EDDTable від ASCIINOAAРНаціональний океан (Нитки) й Інформація про те, як працює цей клас і як його використовувати, див. цей клас суперкласEDDTableЗ альбомуAsciiServiceй Неймовірно, що будь-який інший, ніж Bob Simons буде потрібно використовувати цей підклас.

Оскільки дані в рамках відповіді від сервісу NOS використовують колонар ASCII текстовий формат, змінні дані, крім широтності та довготи, повинні мати спеціальний атрибут, який визначає, які символи кожної лінії даних містять дані змінної, наприклад,

<att name="responseSubstring">17, 25</att>  

 

EDDTableЗ альбомуAllDatasets

EDDTableЗ альбомуAllDatasets є більш високий рівень даних, який містить інформацію про всі інші дані, які в даний час завантажені у вашомуERDDAPй На відміну від інших типів даних, немає специфікацій дляallDatasetsметаdatasets.xmlйERDDAP™автоматично створює один EDDTableЗ альбомуAllDatasets dataset (зdatasetIDдоallDatasets) й Таким чином,allDatasetsСкладання даних буде створено в кожномуERDDAP™установка і буде працювати таким же чином в кожномуERDDAP™монтаж.

Про насallDatasetsDataset - це таблична датасет. Має ряд інформації для кожного набору даних. У ній є стовпці з інформацією про кожного набору даних, наприклад,datasetID, доступний, установа, звання, minLongitude, maxLongitude, minLatitude, максLatitude, minTime, максTime та ін. БоallDatasetsє поштовим індексом, ви можете перезавантажити його таким же чином, ви можете перезавантажити будь-який інший табличний набір даних уERDDAP™, і ви можете вказати тип файлу для відповіді. Це дозволяє користувачам шукати дані проценти за дуже потужними способами.  

EDDTableЗ альбомуAsciiFiles

EDDTableЗ альбомуAsciiFiles агрегує дані з коми-, вкладок-, напівколон-, або просторо-сепаровані табличні файли даних ASCII.

  • Найчастіше файли будуть мати імена стовпців на першому ряду і дані, починаючи з другого ряду. (Ось перший ряд файлу називається ряд 1.) Але можна використовувати<stringNamesRow> та<firstDataRow> у вашомуdatasets.xmlфайл, щоб вказати інший номер рядка.
  • ERDDAP™дозволяє рядам даних мати різну кількість значень даних.ERDDAP™припустимо, що значення відсутніх даних є фінальними стовпчиками в рядку.ERDDAP™призначає стандартні значення відсутніх значень значень значень даних. (доданий v1.56)
  • Файли ASCII легко працюють з, але вони не є найбільш ефективним способом зберігання / зберігання даних. Для більшої ефективності зберігати файли якNetCDFв3.ncФайли (з одним виміром, "ряд", поділений усіма змінними) до. Ви можетевикористанняERDDAP™генерувати нові файлий
  • Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Через загальний недолік метаданих у файлах ASCII завжди потрібно редагувати результати GenerateDatasetsXml.
  • ВАЖКО: КолиERDDAP™Читає файли даних ASCII, якщо він знаходить помилки на даній лінії (наприклад, неправильне число елементів) , він записує повідомлення про попередження ("WARNING: Погана лінія (й) даних" ... з переліком поганих ліній на наступних лініях) доФайл: Log.txtа потім продовжує читати решту файлу даних. Таким чином, це ваша відповідальність, щоб виглядати періодично (або напишіть скрипт, щоб зробити це) для цього повідомлення в журналі. txt, щоб ви могли виправити проблеми у файлах даних.ERDDAP™Встановлюємо цей спосіб, щоб користувачі могли продовжувати читати всі доступні дані, хоча деякі лінії файлу мають недоліки.  

EDDTableЗ альбому AwsXmlFiles

EDDTableЗ альбому AwsXmlFiles сукупні дані з набору автоматичної станції погоди (АВІ) Файли даних XML за допомогою WeatherBug Rest XML API (який не працює) й

EDDTableЗ альбомуColumnarAsciiFiles

EDDTableЗ альбомуColumnarAsciiFiles агрегує дані з файлів даних ASCII з фіксованими стовпчиками.

  • Найчастіше файли будуть мати імена стовпців на першому ряду і дані, починаючи з другого ряду. Перша лінія / рядок у файлі називається ряд #1. Але можна використовувати<stringNamesRow> та<firstDataRow> у вашомуdatasets.xmlфайл, щоб вказати інший номер рядка.

  • Про нас<addAttributes> для кожного<dataVariable> для цих даних MUST включають ці два спеціальні атрибути:

    • <at name="startColumn"> ціле <int> -- визначає стовпець символів в кожному рядку, який є початком змінної даних.
    • <at name="stopColumn"> ціле <int> - визначає стовпець символів в кожному рядку, який є 1 після закінчення цієї зміни даних.

Перший стовпчик символів називається стовпчик #0. Наприклад, для цього файлу, який має значення часових значень температури :

      0         1         2        <-- character column number 10's digit
0123456789012345678901234567 <-- character column number 1's digit
time temp
2014-12-01T12:00:00Z12.3
2014-12-02T12:00:00Z13.6
2014-12-03T12:00:00Z11.0

змінна даних часу буде мати

      <att name="startColumn">0<att>  
  <att name="stopColumn">20<att>

і зміна даних часу буде мати

      <att name="startColumn">20<att>  
  <att name="stopColumn">24<att>

Ці атрибути MUST вказані для всіх змінних, крімфіксована-значенняіфайл-name-source-namesзмінні.

  • Файли ASCII легко працюють з, але вони не є ефективним способом зберігання / зберігання даних. Для більшої ефективності зберігати файли якNetCDFв3.ncФайли (з одним виміром, "ряд", поділений усіма змінними) до. Ви можетевикористанняERDDAP™генерувати нові файлий
  • Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Через складність визначення стартових та кінцевих позицій для кожного стовпця даних та загальної відсутності метаданих у файлах ASCII завжди потрібно редагувати результати від GenerateDatasetsXml.  

EDDTableЗ альбомуHttpGet

Головна ВідHttpGet відрізняється від усіх інших типів данихERDDAP™в тому, що вона має систему, в якій конкретні "автори" можуть додавати дані, переглядати дані або видаляти дані з даних, що зберігаються в звичайному режимі.HTTP GETабоПІСЛЯзапити від комп'ютерної програми, скрипта або браузера. Ці дані можуть бути використані користувачами таким же чином, що всі інші дані EDDTable є можливими вERDDAPй Переглянути опис суперкласу цього класу,EDDTableЗ альбомуFiles, щоб прочитати про функції, які успадкуються від цього суперкласу.

EDDTableЗ альбомуHttpGet описано нижче. Ви повинні прочитати всі ці початкові розділи і зрозуміти його; інакше ви можете мати нереальні очікування або отримати себе в неприємності, які важко виправити.

Інтенсивне використання

Ця система призначена для:

  • Табличка (в ситу) дані, не скріплені дані.
  • Реальні дані часу - Мета - дозволити автора (наприклад, датчик, автоматизований скрипт QC, або специфічна людина) змінити дані (через.inert або .delete команда) і зробити, щоб змінити доступ доERDDAP™користувачів, всього за 1 секунду, і можливо набагато швидше. Більшість з них 1 секунда - мережевий час.ERDDAP™може обробляти запит близько 1 м і дані доступні для користувачів. ЦешвидкойміцниййНадійна системай
  • Майже будь-яка частота даних - Ця система може приймати дані про неточні дані (Наприклад, щоденно) через дуже часті дані (Наприклад, 100 Гц) й Якщо ви оптимізуєте систему, він може обробляти дані більшої частоти (можливо, 10 КХз даних, якщо ви йдете до екстремальних) й
  • Дані з одного датчика або збору аналогічних датчиків.
  • РедагуванняУкраїнськаРепродуктивні наукиУкраїнськаDOIй Настанови, де потрібно ввімкнути зміни до даних (Наприклад, змінити прапор контролю якості) , знаю, який автор зробив кожну зміну, знає час, коли автор зробив зміни, і (за запитом) вміти бачити оригінальні дані перед внесеними змінами. Таким чином, ці дані мають право наDOIйй бо вони зустрічаютьDOIвимога, що датасет не змінюється, крім агрегату. В цілому, поблизу даних про часDOIs, оскільки дані часто ретроактивно змінені (Наприклад, для цілей QA / QC) й  

Після того, як дані в EDDTableЗ альбомуHttpGet, будь-який користувач може запитати дані таким же чином, що вони вимагають даних з будь-якого іншого EDDTable Dataset.  

Експериментальні: Будьте обережні

Оскільки ця система є новим і оскільки втрачені екологічні дані не можуть бути використані, ви повинні обробляти EDDTableЗ альбомуHttpGet як експериментальний. Якщо ви переходите з іншої системи, будь ласка, запустіть стару систему і нову систему паралельно доки ви впевнені, що нова система добре працює (тижнів або місяців, не просто годин або днів) й У всіх випадках, будь ласка, переконайтеся, що ваша система окремо архівує URL-адресу .inert та .delete, які надсилаються на EDDTableЗ альбомуHttpGet (навіть якщо просто в журналах Apache і / або Tomcat) , принаймні за деякий час. І в усіх випадках, переконайтеся, що файли даних, створені за допомогою вашого EDDTableЗ альбомуHttpGet, ці дані постійно закладаються на зовнішні пристрої зберігання даних. (ПриміткаУкраїнський. може повернутися до файлів даних, створених EDDTableЗ альбомуHttpGet дуже ефективно.)
 

.inert і .delete

Для будь-яких данихERDDAP™, коли ви надішлемо запитERDDAP™для підмножини даних в наборі даних ви вказите тип файлу, який ви хочете для відповіді, наприклад, .csv,.htmlTableй.ncй.jsonй EDDTableЗ альбомуHttp Отримувати цю систему для підтримки двох додаткових типів файлів, які можуть вставлятися (або змінити) або видалити дані в дані:

  • .inерт
    • Запит відформатований як стандартна відповідь форми HTML, з ключем=значення пар, відокремлених "&'. Наприклад, https://some.erddap.url/erddap/tabledap/myDataset**.insert**?stationID=46088&time=2016-03-30T12:37:55Z&latitude=10.1&longitude=-150.1&airTemp=17.23&waterTemp=12.3&author=JohnSmith\_someKey1
      ПроксимусERDDAP™додати або змінити дані дляstationID=46088 за вказаний час.
    • Автором цієї зміни є ДжонСміт і ключ є деякіKey1.
    • URL повинен містити дійсні значення (не відсутні значення) для всіхhttpОтримуватиВаріабельні
    • Якщо значення значеньhttpОтримувати Варіанти запиту (Наприклад,stationIDі час) відповідати значенням на ряд вже в даних, нові значення ефективно перезаписати старі значення (Хоча старі значення все ще доступні, якщо користувач запитує дані з попередньоговерсіяданих) й
    • URL-адреса .inert ніколи не включає &timestamp= (ERDDAP™генерує значення) чи &command= (вказаний .insert (який команд=0) або .delete (яка командна = 1 час) ) й
    • Якщо URL-адреса .insert не вказує значення для інших стовпців, які знаходяться в даних, вони повинні бути рідними відсутніми значеннями (МАКС\_VALUE для цілих типів даних, NaN для плавань і подвійних, і "" для Strings) й  
    • .delete
      • Запит відформатований як стандартна відповідь форми HTML, з ключем=значення пар, відокремлених "&'. Наприклад, https://some.erddap.url/erddap/tabledap/myDataset**.delete**?stationID=46088&time=2016-03-30T12:37:55Z&author=JohnSmith\_someKey1
        ПроксимусERDDAP™видалити дані для видаленняstationID=46088 за вказаний час.
      • Автором цієї зміни є ДжонСміт і ключ є деякіKey1.
      • URL необхідно вказати URLhttpОтримуватиВаріабельніза запитом (Наприклад,stationIDі час) й Якщо ці значення відповідають значенням на рядку вже в даних (які вони зазвичай будуть) , старі значення ефективно видалені (Хоча старі значення все ще доступні, якщо користувач запитує дані з попередньоговерсіяданих) й
      • Не потрібно вказати значення для не-HttpGetRequiredVariables, крім автора, які необхідні для автентифікації запиту.  

Детальніше:

  • .inert і .delete запити форматуються як стандартні відповіді на форму HTML, з ключовими=значення пар, відокремленими '&'. Значення повинні бути% закодованой Таким чином, потрібно закодувати спеціальні символи у вигляді %HH, де HH є 2 дігітним шістнадцятковим значенням персонажа. Як правило, вам просто потрібно конвертувати кілька символів пунктуації: % в %25 і в %26, " в %22,<в %3C, = в %3D, > в %3E, + в %2B,|в %7К,\[в %5Б,\]в %5D, простір в %20 і перетворюйте всі символи вище #127 у свою форму UTF-8, а потім відсотків кодують кожну байт UTF-8 у форматі %H (запитати програміста) й
  • .inert і .delete запити повинні включати в себеhttpОтримуватиВаріабельні, наприклад,stationIDі час. Для .inert запитів, змінних, які не вказані в запиті, припускаються відсутні значення (МАКС\_VALUE для цілих змінних, NaN для плавлення і подвійних змінних, і порожній String для змінних String) й Для .delete запитів, значень для non-HttpGetRequired Сортування (крім автора, який необхідний) ігноруються.
  • .inert і .delete запити повинні містити назву автора і ключ автора через параметр у вигляді автора= автор\_під ключ як останній параметр у запиті. Зважаючи на це, щоб бути останнім, гарантує, що весь запит було отриманоERDDAPй Тільки автор (не ключ) зберігатимуться в файлі даних. Ви повинні вказати список дозволених автор\_під ключ 's через глобальний атрибутhttpКошик
  • Параметри .insert та .delete можуть бути масштабними (одномісний) значення або масиви будь-якої довжини у вигляді\[значення1,значення2,значення3,...,значенняN\]й Для заданого запиту всі змінні з масивами повинні мати масиви з однаковою кількістю значень (ще це помилка) й Якщо запит має значення скаляра та масиву, значення скалярів реплікуються, щоб стати масивами з однаковою довжиною, як зазначені масиви, наприклад, &stationID=46088 може бути оброблений як &stationIDдо\[46088,46088,46088\]й Arrays є ключем довисока пропускна здатністьй Без масивів, це буде складним для .insert або .delete більше 8 рядків даних на другий з віддаленого автора (через всі накладні мережі) й З масивами, це буде легко .inert або .delete більше 1000 рядків даних на секунду від пульта дистанційного керування.
  • .inert і .delete приймає (без повідомлення про помилку) при очікуванні цілих чисел. У цих випадках дані закруглюють значення до цілих чисел.
  • .inert і .delete приймає (без повідомлення про помилку) цілих і плаваючих чисел, які є поза діапазоном типу змінних даних. У цих випадках дані зберігаються значення, якERDDAP's рідні відсутні значення для цього типу даних (МАКС\_VALUE для цілих типів і NaN для плавань і подвійних) й  

Відправити

Якщо URL-адреса .insert або .delete, код відповіді HTTP буде 200 (Зареєструватися) і відповідь буде текст з.jsonоб'єкт, наприклад,

    {
"status":"success",
"nRowsReceived":1,
"stringTimestamp":"2018-11-05T22:12:19.517Z",
"numericTimestamp":1.541455939517+E9
}

Зауважте, що часові штампи мають мілісекундну точність.

Якщо URL-адреса .insert або .delete, ви отримаєте код відповіді HTTP, крім 200 (Проксимус) , наприклад, помилка 403 Заборонено, якщо ви подаєте некоректний автор\_якість.ERDDAP™надсилання коду відповіді HTTP (не, наприклад,.jsonвідформатована помилка) тому, що це те, як це робиться в Інтернеті і тому, що помилки можуть виникнути в будь-якій точці системи (наприклад, в мережі, яка повертає помилку HTTP) й Якщо помилка відERDDAP™, відповідь може включати в себе текст (нема.json) з більш детальним поясненням того, що пішов неправильно, але код відповіді HTTP (200=Окай, що ще не буває) є правильним способом перевірити, якщо .insert або .delete вдалося. Якщо перевірка коду HTTP-відповідача неможливе або є нездатним, пошук "статус":"success" в тексті відповіді, який повинен бути надійним показанням успіху.

Увійти Файли

Коли EDDTableЗ альбомуHttpGet отримує .insert і .delete команди, він просто додає інформацію до відповідного файлу в комплекті файлів журналу, кожен з яких є таблиця, що зберігається в таблиціСонце Лінії файлів CSVй Коли користувач отримує запит на дані,ERDDAP™швидко читає відповідні файли журналу, застосовує зміни до даних, які були зроблені, а потім фільтрує запит через обмеження користувачів, такі як іншіERDDAP™запит даних. Перегородка даних в різні файли журналу, зберігання різних частин інформації (e.g., часовий збір команди, і чи була команда .insert або .delete) , і різні аспекти налаштування набору даних, все можливе дляERDDAPзберігати дані для отримання та отримання даних з цього сховища дуже швидко та ефективно.  

Безпека та автор

Кожна команда .inert і .delete повинна включати &author= автор\_під ключ як останній параметр, де автор\_ключ складається з ідентифікатора автора (Ви вибрали: ім'я, ініціали, псевдонім, номер) і секретний ключ. Про насERDDAP™Адміністратор буде працювати з авторами, щоб створити список достовірних значень автора\_key, які можна змінити в будь-який час. Коли EDDTableЗ альбомуHttpGet отримує команду .insert або .delete, переконайтеся, що авторID\_key є останній параметр і дійсний. Оскільки це останній параметр, він вказує, що весь рядок командERDDAP™і не був Секретний ключ забезпечує, що тільки конкретні автори можуть вставляти або видаляти дані в дані.ERDDAP™потім витягує авторID і зберігає, що в змінній автору, так що кожен може бачити, хто був відповідальний за за задану зміну до даних. .inert і .delete команди можуть бути зроблені тільки черезhttps: (Головна) ERDDAP™посилання. Це гарантує, що передача інформації є секретом під час транзиту.  

час

У складі лог-системи EDDTableЗ альбомуHttpGet додає мітку часу (час, якийERDDAPотримав запит) до кожної команди, яка зберігає у файлах журналу. БоERDDAP™генерує часовий апарат, не автори, неважливо, якщо різні автори роблять зміни з комп’ютерів з годинниками, встановленими на злегка різний час. Своєчасно вказує на час, коли зміна була виконана до даних.  

Статус на сервери

  • "Що про HTTP POST?!"
    Про насПІСЛЯ є кращим альтернативою (доHTTP GET) для відправки інформації від клієнта до сервера HTTP. Якщо ви можете, або якщо ви дійсно хочете поліпшити безпеку, скористайтеся POST замість GET, щоб надіслати інформацію, щоб надіслати інформацію, щоб надіслати інформацію, щоб надіслатиERDDAPй POST є більш безпечною, оскільки: з GET іhttps, URL передається в захищений спосіб, але весь URL (включаючи параметри, в тому числі автора\_під ключ) буде написано до Apache, Tomcat таERDDAP™Файли журналу, де хтось міг прочитати їх, якщо файли не належним чином захищені. За допомогою POST параметри передається в захищений спосіб і не записані до файлів журналу. POST є невеликим твердим для клієнтів, щоб працювати з і не підтримується як широко за допомогою програмного забезпечення, але мови програмування підтримують його. Вміст, який ви надішлемо на дані через GET або POST, буде таким же, просто відформатований в інший спосіб.  

httpОтримувати Варіанти глобального атрибуту

Важлива частина того, що робить це цілою системою, є обов'язковим глобальним атрибутомhttpОтримувати Варіанти, що є кома-сепарований перелікdataVariableімена джерел, які в першу чергу визначають ряд даних. Це має бути максимально мінімальним, і майже завжди буде включати зміни часу. Наприклад, тут рекомендованіhttpОтримувати Варіанти для кожного зПанчохи Дискретні шамплінг геометереї (ДСГ) (Звичайно, імена ідентифікаторів можуть бути різними у Вашому обліковому записі.) :

  • Для TimeSeries:stationID, час

  • Для траєкторії: траєкториID, час

  • Для профілю: час (Час надходження - профіль\_id) , глибина

  • Для TimeSeries Профіль:stationID, час (Час надходження - профіль\_id) , глибина

  • Для траєкторії Профіль: траєкториID, час (Час надходження - профіль\_id) , глибина

Як приклад: З огляду на команду .inert, яка включаєstationID=46088 і час=2016-06-23T19:53:00Z (та інші значення для інших змінних) :

  • Якщо не існує наявних даних для цієї станції, то ефект буде додавати дані до даних.
  • Якщо є існуючі дані для цієї станції, і в той час, то ефект буде замінити існуючий ряд даних з цими новими даними. (Звичайно, так якERDDAP™зберігає журнал кожної команди, яка отримує, старі дані все ще в журналі. Якщо користувач запитує дані з версії Dataset до цієї зміни, вони будуть бачити старі дані.)
     

httpЗавантажити

  • httpЗавантажити Структура глобального атрибуту та даних (Увійти) Ім'я файлу
    Частина того, що робить цю систему ефективно, це те, щоERDDAP™створює набір даних (Увійти) файли, кожен з різними шматками даних. Якщо вони добре налаштовані,ERDDAP™Можливість оперативно реагувати на більшість запитів на дані. Ця настройка вказанаhttpGetDirectoryStructure глобальний атрибут, який виглядає як відносна назва файлу, наприклад, "stationID/10 років, але є фактично специфікацією для структури каталогів. Деталі каталогу та імен файлів для даних (Увійти) будуть побудовані файли.

    • Якщо частина є цілою (>= 1 час) апошні (мілісекунд, другий, хвилина, час, дата, місяць, рік, або їх plurals) , наприклад, 10 років, потім EDDTableЗ альбомуHttpGet Dataset займе значення часу для ряду даних (+7-863-218-40-00 доб.200-80) , розрахувати час обрізається до цієї точності (Наприклад, 2010) , і зробити папку або файлІм'я з цього.

Мета полягає в тому, щоб отримати досить великий шматк даних в кожному файлі, але набагато менше 2 Гб.

  • В іншому випадку частина специфікації повинна бутиdataVariableРsourceName, наприклад,stationIDй У цьому випадку EDDTableЗ альбомуHttpGet зробить папку або ім'я файлу з значення цієї змінної для нового ряду даних (Наприклад, "46088") й

Оскільки дані команди .insert та .delete зберігаються в певних даних (Увійти) Файли, EDDTableЗ альбомуHttpGet зазвичай повинні відкрити один або кілька даних (Увійти) Файли для пошуку даних за запитом користувача. І тому що всі дані (Увійти) Файл має всю необхідну інформацію для свого шматка Dataset, це швидко і легко для EDDTableЗ альбомуHttpGet, щоб зробити конкретну версію (або поточна версія) наданих даних для даних в цьому файлі (і не потрібно генерувати запитану версію всього набору даних) й

Загальні вказівки базуються на кількості і частоті даних. Якщо припустимо 100 байтів за ряд даних, то ...

    | Frequency  <br>of measurements | Recommended  <br>httpGetDirectoryStructure |
| --- | --- |
| \\>=1 per second | *featureID*/1year/1day |
| \\>=1 per minute | *featureID*/2months |
| \\>=1 per hour | *featureID*/10years |
| \\>=1 per day | *featureID* |

Наприклад, якщо структура каталогуstationID/2 місяців і вставляємо дані з двох станцій (46088 і 46155) з часовими значеннями від Dec 2015 по Травень 2016, EDDTableЗ альбомуHttp Отримаєте каталоги 46088 та 46155 та створять файли в кожній назві 2015-11.jsonл, 2016-01.jsonл, 2016-03.jsonл, 2016-05.jsonп (кожний холдинг 2 місяці, які варто знати для відповідної станції) й У будь-який час в майбутньому, якщо ви використовуєте .insert або .delete для зміни або видалення даних для, наприклад, станції 46088 на 2016-04-05T14:45:00Z, EDDTableЗ альбомуHttp Отримаєте цю команду до 46088/2016-03.jsonl, відповідні дані (Увійти) файл. І чітко додавати дані на інші станції в будь-який час в майбутньому, так як датасет просто створить додаткові каталоги, необхідні для зберігання даних з нових станцій.

httpКошик

Кожен EDDTable ВідХттп Отримати дані, які повинні мати глобальний атрибутhttpGetKeys, який визначає список дозволених авторів та їх секретних ключів як окремий список автор\_під ключ , наприклад, JohnSmith\_someKey1, HOBOLogger\_someKey2, QCScript59\_someKey3 .

  • автор\_key's є випадково-чутливими і повинні бути абсолютно символи ASCII (#33 - #126, і без будь-якої коми, " або ' символи
  • Ключові слова, як паролі, тому вони MUST бути >=8 символів, важко вгадати, і без внутрішніх слів словника. Ви повинні обробляти їх, як ви будете лікувати паролі - зберігати їх приватні.
  • Перший символ '\' відокремлює автора з ключа, тому ім'я автора не може включати символ '\' (але ключ може) й
  • Будь-який автор може мати один або інший автор\_key's, наприклад, JohnSmith\_some Ключові слова1, ДжонСміт\_some Ключ7 і т.д.
  • Ви можете змінити значення цього атрибуту в будь-який час. Зміни впливають на наступний раз на завантаження даних.
  • Ця інформація буде видалена з глобальних Атрибутів даних, перш ніж це зроблено громадськістю.
  • Кожен запит на вставку даних або видалення даних повинен включати &author= автор\_під ключ параметр. Після перевірки терміну дії ключа,ERDDAP™тільки зберігає частину автора (не ключ) у файлі даних.

Встановити

Ось рекомендовані кроки для налаштування EDDTableЗ альбомуHttpGet dataset:

  1. Зробіть основний каталог для зберігання даних. Наприклад, ми використовуємо /data/testGet/ . Користувач, який працює GenerateDatasetsXml та користувачем, що працюєERDDAP™повинен мати доступ до цього каталогу.  

  2. Використовуйте текстовий редактор, щоб зробити зразок.jsonL CSV файл з розширенням.jsonL в цьому каталозі. Назва не важлива. Наприклад, ви можете викликати його зразок.jsonп Зробіть 2 рядка.jsonL CSV файл, з іменами стовпців на першому рядку і манжети/типічні значення (правильної форми даних) на другому рядку. Ось зразок файлу, який підходить для колекціїfeatureType=Частина даних, які вимірюють температуру повітря і води. \[ДляfeatureType=Трекети, ви можете змінитиstationIDбути траєкторією.\]
    \[ДляfeatureTypeJavaScript licenses API Веб-сайт Go1.13.8stationIDбути profileID і додати глибинну змінну.\]

    \[« » » » » » » » » » » » » » »stationID","time", "широтість", "довга", "airTemp", "водаTemp", "timestamp", "автор", "команд"\] \["myStation", "2018-06-25T17:00Z", 0.0, 0.0, 0.0, 0.0, "SomeBody", 0\]

Примітка:

  • Цінності даних не мають значення, тому що ви будете в кінцевому підсумку видалити цей файл, але вони повинні бути правильним типом даних. Точно, змінна часу повинна використовувати той самий формат, який буде використовуватися фактичні дані з джерела.
  • Для всіх змінних,sourceNameзрівнятиdestinationName, щоб використовувати правильні/фінансові імена, в тому числі час, широтість, довгота і іноді глибина або висота, якщо змінні з цією інформацією будуть включені.
  • У зв’язку з тим, що на момент проведення спостереження було здійснено майже завжди змінний час, який записує час. Це може бути датаТип String зблоки, придатні для рядкових разів (Наприклад,yyyy-MM-dd'T'H:mm:ss.SSSZ) або дані Тип подвійний зблоки, придатні для нумеричних разів (е.g., секунди з 1970-01T00:00Z, або деякий інший час бази) й
  • Три стовпчиків (як правило, останні три) обов'язковий час, автор, команда.
  • Графічний стовпчик Timestamp буде використовуватися EDDTableЗ альбомуHttpGet, щоб додавати часовий штамп, що вказується при додаванні даної лінії даних до файлу даних. Увімкніть подвійні дані та блоки з 1970-01T00:00:00Z.
  • Авторський стовпчик з данимиТип String буде використаний для запису, який авторизований автор надав дані цієї лінії. Авторизовані автори зазначаються авторамиhttpGetKeys глобальний атрибутй Хоча ключі вказані як автор\_під ключ і знаходяться в URL-адресі «запити» у цій формі, тільки в файлі даних зберігаються тільки автора.
  • У командному стовпчику з dataType byte буде вказувати, якщо дані на цьому рядку є вставкою (0 р.) або видалення (1 час) й  
  1. Запуск GenerateDatasets Xml і розповісти його

    1. Тип набору даних EDDTableЗ альбомуHttpGet
    2. Каталог (для цього прикладу) / дані / тест Отримати /
    3. Файл зразка (для цього прикладу) /data/testGet/startup.jsonп
    4. Про насhttpОтримувати Варіанти (для цього прикладу) stationID, час Переглянути описhttpОтримуватиВаріабельніГоловна
    5. Якщо дані зібрані кожні 5 хвилин,httpGetDirectoryStructure для цього прикладуstationID/2міс. Переглянути описhttpЗавантажитиГоловна
    6. Про насhttpКошик

Додати вихід (горб куркаdatasets.xmlдля даних) доdatasets.xmlй   4. Редагуванняdatasets.xmlдля цього набору даних, щоб зробити його правильно і завершити. Можливо, замінити всі ??? з правильним вмістом.   5. Для<fileTableInMemory> налаштування:

  • Встановити це, щоб правда, якщо дані, як правило, будуть часті .inert та/або .delete запитів (.g. частіше ніж раз на 10 секунд) й Це допомагає EDDTableЗ альбомуHttpGet реагувати швидше на .insert та/або .delete запитів. Якщо ви встановите це для true, EDDTableЗ альбомуHttpGet все ще збереже файлТабний і пов'язаний з диском періодично (як потрібно, грубо кожні 5 секунд) й
  • Встановити це помилково (За замовчуванням) якщо дані, як правило, отримуватимуть інфрейктив .inert та/або .delete запитів (наприклад, менше ніж раз на 10 секунд) й  
  1. Примітка: Можливе використання<cacheЗ альбомуUrl> та відповідні параметри вdatasets.xmlдля EDDTable ВідХттп Отримати дані як спосіб зробити і підтримувати локальну копію віддаленого EDDTableЗ альбомуHttpGet на іншийERDDAPй Тим не менш, в цьому випадку це локальне повідомлення відхилятиме будь-які запити .inert і .delete.

Використання EDDTable ВідHttpGet Дані

  • Автори можуть зробити «запити»вставити дані або видалити дані з набору данихй  
  • Після того, як реальні дані були введені в дані, ви можете і повинні видалити оригінальний файл даних про зразок.  
  • Користувачі можуть запитати дані з даних, як вони роблять для будь-якого іншого EDDTable Dataset вERDDAPй Якщо запит не містить обмеження на часовий стовп, то запит отримує дані з поточного варіанту збору даних (Файл журналу після обробки всіх вставок і видалення команд і пересортуванняhttpОтримуватиВаріабельні) й  
  • Користувачі можуть також зробити запити, які специфічні для EDDTableЗ альбомуHttpGet datasets:
    • Якщо запит містить запит<або<= обмеження часової колонки, потімERDDAP™обробляє ряди лог-файлу до вказаного часу. Таким чином, цей тимчасово видаляє всі зміни, внесені до даних, починаючи з того часу, що значення часу. Для отримання додаткової інформації див. інформаціюРедагуванняй
    • Якщо запит включає в себе >, >=, або = обмеження часової колонки, наприклад, &timestamp<=0, потімERDDAP™повертає дані з файлів даних, як це, без обробки команд вставки та видалення.
  • У майбутньому ми вказуємо, що інструменти будуть побудовані (від нас? від вас?) для роботи з цими даними Наприклад, можна стати скриптом, який читає файли журналу, застосовує різне рівняння калібрування, і генерує/оновлює різні дані з цією отриманою інформацією. Зауважте, що скрипт може отримати оригінальні дані через запитERDDAP™ (який отримує дані у форматі файлів, які найпростіші для роботи з скриптом) і генерувати/оновити нові дані через .inert "requests"ERDDAPй Скрипт не потребує прямого доступу до файлів даних; він може бути на будь-якому комп'ютері автора.  

Детальна інформація про EDDTableЗ альбомуHttpGet

Теми:

Ось детальна інформація:

Не змінюйте налаштування!

Після того, як було створено набір даних і ви додали його дані:

  • Не додавати або видалити будь-якийdataVariableй
  • Не змінюйтеsourceNameабоdestinationNameзdataVariableй
  • Не змінюйте дані Тип типуdataVariableй Але можна змінитиdataVariable- метадані.
  • Не змінюйтеhttpОтримувати Змінний глобальний атрибут.
  • Не змінюйтеhttpGetDirectoryStructure глобальний атрибут.

Якщо необхідно змінити будь-яку з цих речей, зробіть новий набір даних і перенести всі дані на новий набір даних.  

КРУД

У комп’ютерній наукі чотири фундаментальні команди для роботи з данимиКРЕАТИ, РЕАД, УДАТ, ДЕЛЕТЕ (КРУД) й SQL, мова для роботи з реляційних баз даних, має еквівалент INSERT, SELECT, UPDATE та DELETE. В EDDTableЗ альбомуHttpGet,

  • .inert - це поєднання CREATE та UPDATE.
  • .delete є DELETE.
  • Регулярна система запиту субсидій даних РЕАД.

Таким чином, EDDTableЗ альбомуHttpGet підтримує всі фундаментальні команди для роботи з Dataset.  

  • .inert або .delete запитів без помилок повернеться код стану HTTP=200 і об'єкт JSON, наприклад,
    {
"status":"success",
"nRowsReceived":1,
"stringTimestamp":"2018-03-26T15:34:05.552Z",
"numericTimestamp":1.522078445552E9
}

Два часові значення відносяться до того ж мілісекунду, який є мілісекундом, який буде зберігатися в змінній час для рядків даних, які були вставлені або видалені.ERDDAP™не змінить ім’я та форматування цих пар ключового значення в майбутньому.ERDDAP™може додавати додаткові пари ключового значення в об'єкт JSON в майбутньому.  

ІнвалідРезиденції

Invalid .insert або .delete запити поверне код стану HTTP-повідомлень, крім статусу=200 і не буде зроблено до даних. Це включає запити з неправильною інформацією автора, неправильні імена змінних масивів, різні довжини масиву для різних змінних, відсутні необхідні змінні, відсутні необхідні змінні значення тощо. Якщо запит передбачає більше одного файлу даних, можливо, що частина запиту буде досягнута і частина не буде. Однак це не повинно бути проблемою, якщо датчик надсилання запиту лікує будь-яку відмову в повному обсязі. Наприклад, якщо ви сказалиERDDAP™вставки (або видалити) однакові дані двічі поспіль, найгірший випадок полягає в тому, що інформація зберігається двічі, закрийте разом у файлі журналу. Це важко побачити, як це може викликати неприємності.  

HttpGet швидкість

Для .inert або .delete запитів (не підрахуватиhttpруді) , ballpark фігурує швидкість .insert або .delete 1мс на .inert з 1 рядом даних 2ms per .inert з 10 рядків даних в масивах (\[\])
3ms per .insert з 100 рядків даних в масивах (\[\])
13ms per .inert з 1000 рядків даних в масивах (\[\])
Clearly масиви є ключем довисока пропускна здатністьй Без масивів, це буде складним для .insert або .delete більше 8 рядків даних на другий з віддаленого автора (через всі накладні мережі) й З масивами, це буде легко .inert або .delete більше 1000 рядків даних на секунду від пульта дистанційного керування.

З великою кількістю даних за запитом, ви вдарите ліміт Tomcat до максимальної довжини запиту (За замовчуванням 8KB?) , але це може бути збільшено шляхом редагування параметра maxHttpHeaderSize у вашому пристрої домка JavaScript licenses API Веб-сайт Go1.13.8 Вхід роз'єму.

КолиERDDAP™Читає дані JSON Lines CSV (Увійти) Файли, є невеликий час штрафу порівняно з читанням бінарних файлів даних. Ми відчували, що цей час штраф, коли читання було розумною ціною для оплати швидкості та надійності системи при написанні даних (що є основним значенням) й

ТПВ

Для більшої швидкостівикористовуватитвердотільний накопичувач (ТПВ) зберігати дані. Вони мають набагато швидше часу доступу до файлів (<0.1мс) ніж жорстких дисків (3 - 12 мс) й Вони також мають більш високу швидкість передачі даних (200 - 2500 Мб/с) до жорстких дисків (~200 Мб/с) й Їхня вартість значно скоротилася в останні роки. Незважаючи на те, що на початку SSD-накопичувача виникли проблеми після великої кількості записів, ця проблема зараз значно знижується. Якщо ви просто використовуєте SSD, щоб написати дані один раз, після чого прочитайте його багато разів, навіть споживчо-градусний SSD (що значно менше, ніж підприємство-градус SSD) повинен тривати довгий час.

Проксимус

Ми намагалися зробити цю систему максимально простими і надійними.

  • Система призначена для декількох ниток (наприклад, датчик, автоматизований скрипт QC та людина) одночасно працює над тим самими даними і навіть тим самим файлом. Багато це можливо, використовуючи підхід до файлів журналу для зберігання даних і за допомогою дуже простий тип файлів,Сонце Лінії CSV файлівДля зберігання даних.
  • Ще однією величезною перевагою JSON Lines CSV є те, що якщо файл коли-небудь стає пошкодженим (наприклад, недійсний через помилку на лінії) , легко відкрити файл в текстовому редакторі і виправити проблему.
  • Ще одна перевага полягає в тому, якщо є помилка на рядку в файлі, система все ще може прочитати всі дані на лініях до і після того, як рядок помилки. І система все ще може увійти додаткову інформацію .inert і .delete.
  • Величезна перевага використання стандартних файлів (порівняно з реляційною базою або Кассандра або іншими програмами) : Для зберігання або отримання даних немає іншого програмного забезпечення, яке має бути збережено і яке має бути запущено, щоб зберігати або отримувати дані. І легко закріпити стандартні файли в будь-який час і в незрівнянні спосіб, оскільки дані знаходяться в шматках (після того, як тільки поточний файл для кожної станції буде змінено) й На відміну від того, вона займає значне зусилля і система з часом, щоб зробити зовнішні резервні файли з баз даних і з Кассандра.  
Надійність системи

Це розумно очікувати одного сервераERDDAP™щоб мати 99,9% час - це близько 9 годин знизу на рік (Хоча, ви можете використовувати цю гру в одну погану ніч!) й Якщо ви дилігент і удачливий, ви можете отримати 99,99% uptime (53 хвилин вдень в рік) , так як тільки кілька решток для оновлень займе багато часу. Вам доведеться вжити екстремальних заходів (окремий резервний сервер, безперебійне живлення, резервний кондиціонер, 24x7x365 персонал для моніторингу сайту тощо.) мати струнку шанс на 99,999% на час (5.25 хвилин вдень в рік) й Навіть тоді, це надзвичайно малоймовірно, що ви досягнете 99,999% на час (або навіть 99,99%) Оскільки проблеми часто виходять за межі контролю. Наприклад, Amazon Web Service і Google пропонують вражаючі надійні веб-служби, але великі розділи з них іноді випадають на години.

Сісти на обличчя, кожен хочеERDDAP™щоб мати 100% час, або принаймні, зважені "six дев'ята" (99.9999% час на рік) , але не існує ніякого того, що ви не збираєтеся, скільки часу, зусиль і грошей, які ви витрачаєте.

АлеERDDAP™час не є реальною метою тут. Мета полягає в тому, щоб побудувати надійний системи не втратити ніяких даних. Це важка проблема.

Розчин: побудова несправності в комп'ютерне програмне забезпечення, яке надсилає дані доERDDAPй Зокрема, програмне забезпечення повинно підтримувати черги чеків данихERDDAPй При додаванні даних у чергу, програмне забезпечення повинно перевірити відповідьERDDAPй Якщо відповідь не містить даних. Немає помилок., після чого програма повинна залишити дані в черзі. Після того, як більше даних генерується і додається в чергу, програмне забезпечення повинно знову спробувати .insert дані в черзі (можливо з\[\]системи) й Це буде успішним або не вдалося. Якщо вона не зникає, вона спробує знову пізніше. Якщо ви напишіть програмне забезпечення, щоб працювати таким чином, і якщо програмне забезпечення було готове до черги кілька днів, ніж дані, ви дійсно маєте хороший шанс завантаження 100% даних датчика доERDDAPй І ви зробили це без зусиль і витрат.

\[Передмова: Ми не думали цього.[Це як комп'ютерні мережі досягають надійності.](https://en.wikipedia.org/wiki/Reliability_(computer_networking)й Комп'ютерні мережі властиво ненадійним. Таким чином, коли ви передаєте файл з одного комп'ютера на інший, програмне забезпечення для відправки знає / виявляє, що деякі пакети можуть бути втрачені. Якщо ви не отримуєте належного відступу для даної упаковки з ресивера, вона відновлює втрачений пакет. За допомогою цього підходу, порівняно простого відправника та ресивера програмного забезпечення може побудувати надійну систему передачі файлів на верхній частині ненадійної мережі.\]

Чому JSON Lines CSV файли?!

EDDTableЗ альбомуHttpGet використовуєСонце Лінії CSV файлів. для зберігання даних. Причини:

  • Основна причина: Простота JSON Lines CSV файлів пропонує швидкий, простий і надійний спосіб, щоб дозволити кілька ниток, щоб писати на даній файлі (e.g., синхронізація на ім'я файлу) й
  • Якщо файл JSON Lines CSV коли-небудь був пошкоджений (наприклад, недійсний через помилку на лінії) , EDDTableЗ альбомуHttpGet ще може прочитати всі дані на всіх лініях до і після лінії помилки. І система .insert і .delete може продовжувати додавати нові дані до файлу даних.
  • Оскільки JSON Lines CSV файли є файлами ASCII, якщо файл коли-небудь був пошкоджений, це буде легко виправити (у текстовому редакторі) й
  • JSON Lines CSV підтримує Рядки Unicode.
  • JSON Lines CSV підтримує рядки змінної довжини (не обмежуючись деякою довжиною) й
  • JSON Lines CSV підтримує 64-розрядні цілі (довгі) й
  • Офіційна природа та додаткова синтаксис ліній JSON CSV (проти старшокласного CSV) забезпечує додаткове забезпечення, що дана лінія не була пошкоджена.

Ми спочатку спробували використовувати.nc3 фото з необмеженим розміром. Проте були проблеми:

  • Основна проблема: Немає надійного способу, щоб дозволити кілька ниток, щоб писати на.nc3 файл, навіть якщо нитки взаємодіють, зробивши записи в синхронізований спосіб.
  • Якщо.nc3 файл стає пошкодженим, .insert і .delete система не може продовжувати використовувати файл.
  • Як.nc3 файли бінарні, якщо файл стає пошкодженим (які вони роблять через багатопрочитану проблему) вони надзвичайно важко або неможливі для фіксації. Немає інструментів, які допоможуть з ремонтом.
  • CF не має способу вказати кодування рядків, тому не існує офіційного способу підтримки Unicode, наприклад, кодування UTF-8. Ми намагалися отримати CF для підтримки атрибуту \_Encoding, але не змогли зробити будь-який прогрес. (Unidata, до свого кредиту, підтримує атрибут \_Encoding.)
  • .nc3 файли тільки підтримують фіксовані довжини рядків. Знову ми спробували отримати CF іUnidataдля підтримки змінних рядків довжини, але не вдалося зробити будь-який прогрес.
  • .nc3 файли, які не підтримують простий спосіб розрізняти одновимірні змінні з змінних значень String. Знову ми спробували отримати CF іUnidataпідтримка системи для визначення цих двох типів даних, але не вдалося зробити будь-який прогрес.
  • .nc3 файли тільки підтримують 8-бітні символи з невизначеним кодуванням. Знову ми спробували отримати CF іUnidataпідтримка системи визначення кодування, але не вдалося зробити будь-який прогрес.
  • .nc3 фото не підтримують 64-бітні цілі (довгі) й Знову ми спробували отримати CF іUnidataна підтримку системи для довготи, але не вдалося зробити будь-який прогрес.  
Редагування

Оскільки EDDTable ВідХттп Отримати зберігає журнал всіх змін до даних з таймером і автором кожного зміни, він може швидко відтворити ці дані в будь-який момент. У сенсі є версія для будь-якої точки. Якщо запит користувача для даних містить часовий апарат<JavaScript licenses API Веб-сайт Go1.13.8<+7-863-218-40-00 доб.200-80 (або будь-який час) , але немає обмеження автора або команди,ERDDAP™Відповідає за запитом, перш за все генерує версію Dataset, що вказується в часі. ДаліERDDAP™застосовує інші обмеження користувача, як і будь-який інший запит на дані зERDDAPй EDDTableЗ альбомуHttpGet встановлюється так, що цей процес дуже швидко і ефективно, навіть для дуже великих даних.

Як правило, користувач може дізнатися, коли Dataset було оновлено за запитом ...?timestamp&timestamp=max (час) &розчин ()

І для будь-якого запиту на дані, для будь-якої версії Dataset, користувачі можуть бачити, що автор вніс зміни, і коли вони зробили їх.

Ця система редагування дозволяєРепродуктивні наукитому, що будь-який, в будь-який час, може вимагати дані з версії Dataset в будь-який момент. Ми можемо самі зателефонувати одержувачу. Основний механізм є дуже ефективним, в якому не потрібно додаткового місця для зберігання, а обробка накладної воістину мінімальна.

Не кожен має потребу в цьому типі дрібнозернистого варіантування, але він перевищено корисний, можливо, необхідний, в контексті великої організації управління даними (Наприклад, OOI, Earth Cube, Data One таNOAA's НЦЕІ) де дані можуть мати декілька авторів (Наприклад, датчик, автоматизований скрипт QC та редактор) й

\[Історія: Необхідність цього типу реверсії вперше прийшла до мене (Навігація) при прочитанні та обговоренні OOI у 2008 році. У той час OOI мав громіздку, повільну, неефективну систему реверсування на основі Git. Git є великим для того, що він був розроблений, але не це. У 2008 році в рамках обговорення OOI я розробив велику, ефективну систему альтернативного управління даними, в тому числі багато функцій, які я доданийERDDAP™з тих пір, і в тому числі цієї версії системи. У той час і з тих пір, як OOI був здійснений до своєї версії системи і не зацікавлений в альтернативних варіантах. У 2016 р. на місце закрили інші аспекти цього плану, і я почав його реалізувати. Я не закінчився до 2018 року. В даний час я не знаю будь-якої іншої наукової системи даних, яка пропонує такий швидкий і простий доступ до версії даних з будь-якої точки в часі, для часто мінливих даних. Прості файлові системи не пропонують цього. Реляційні бази даних не мають. Кассандра не є.\]

HTTPS Поставити і видаляти
  • "Що про HTTPS PUT і DELETE?!"
    Протокол передачі гіпертексту (Про нас) є основою Всесвітнього веб-сайту та причини, що веб-сторінки починаються з " http://" чи " https://" й HTTPS з додатковим шаром безпеки. Щодня, браузери, сценарії та комп’ютерні програми роблять мільярди HTTP (Р) ЗАМОВИТИ Запити на отримання інформації з дистанційних джерел. Про нас (Р) також включає іншідієслова, неможливий PUT (натиснути дані на сервер) і ДЕЛЕТЕ (до даних DELETE з сервера) й Так, PUT і DELETE є правильним способом вставити дані в, і видалити дані з, за допомогою HTTP (Р) й GET підтримується кожним програмним забезпеченням, яке може працювати з HTTP (Р) й GET дуже легко працювати з. Хто знає, як працювати з GET і багато хто знає, як використовувати POST (які можуть бути використані таким чином, як GET) , так що ми зробили EDDTableЗ альбомуHttpGet працює з GET і POST. Дуже мало людей (навіть кілька комп'ютерних програм) Працював з PUT і DELETE. PUT і DELETE, як правило, підтримуються лише комп'ютерними мовами, тому використання їх вимагає вмілої програми. Так PUT і DELETE, як правило, набагато більш громіздким підходом, враховуючи те, що інструменти розвивалися.  
HttpGet Примітки
  • Нотатки
    • НіdataVariableможе мати даніType=char. Використовуйте dataType=String замість. Якщо вам потрібні даніТип=char, e-mail Кріс. Джон на noaa.gov .  
Надія
  • Завдяки CHORDS для базової ідеї.
    Основна ідея для EDDTableЗ альбомуHttpGet (i.e., використовуючиHTTP GETзапит на додавання даних до) від UCAR (NCAR?) Статус на сервери (ХОРДЖЕННЯ) проект. Формат параметрів за запитом (повторне Ім'я=значення , відокремлений &'s) є однаковим стандартним форматом, який використовується за допомогою HTML-форм на веб-сторінках. Це проста і блискуча ідея і ще більше, тому що вона сітчаста так чудово зERDDAP- існуюча система для ведення табличних даних. Ідея очевидна в індексі, але я (Навігація) не думають про це. EDDTableЗ альбомуHttp Використовуйте цю основну ідею, в поєднанні з нашими ідеями, як її реалізувати, зробити систему вERDDAP™для завантаження даних. Крім базової ідеї використання GET для відштовхування даних в систему, реалізація EDDTableЗ альбомуHttpGet повністю відрізняється і повністю незалежно від CHORDS і має різні функції (Наприклад, файли журналу, роз'єм даних, різні системи безпеки, підтримка CRUD, відтворювані дані) й У нас є тільки вебінари. Ми не подивимося на свій код або прочитали про свій проект, оскільки ми відразу знаємо, що ми хотіли реалізувати систему іншим способом. Але ми вдячні їм за основну ідею. Повне посилання на CHORDS Даніелс, М. Д., Керкез, Б., Chandrasekar, В., Гревес, С., Штампи, Д. С., Мартин, С., Ді, М., Гоох, Р., Бартос, М., Джонс, J., Кайзер, К. (2014 рік) й Cloud-Hosted Real-time Data Services для Geosciences (ХОРДЖЕННЯ) програмне забезпечення. UCAR/NCAR -- Лабораторія спостереження Землі. https://doi.org/10.5065/d6v1236q
     

EDDTableЗ альбомуHyraxФайли

EDDTableЗ альбомуHyraxФайли (депресований) сукупні файли даних з декількома змінними, кожен з одним або декількома загальними розмірами (наприклад, час, висота (або глибина) , широта, довгота) і подаютьсяHyrax OPeNDAPсерверй

  • Даний тип даних ДЕПРЕЄСТРАЦІЯ й Новий і більш загальний розчин для використанняпердят ВідUrl варіант для EDDTable Відповіді (або варіант) , що робить локальну копію віддалених файлів і надає дані з місцевих файлів. Про нас<cacheЗ альбомуUrl> можна використовувати з будь-яким типом файла табличних даних. **
    Якщо ви не можете зробити цю роботу з якоїсь причини, по електронній пошті Кріс. Джон на noaa.gov . Якщо скарги до 2020 року не можна видалити. **
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.
  • У більшості випадків кожен файл має декілька значень для нижньої частини (перший) розмір, наприклад, час.
  • Файли часто (але не доведеться) мати єдине значення для інших розмірів (наприклад, висота (або глибина) , широта, довгота) й
  • Файли можуть мати змінні характери з додатковим виміром (Наприклад, nCharacters) й
  • HyraxСервери можуть бути ідентифіковані "/dods-bin/nph-dods/" або "/opendap/" у URL.
  • Цей клас скринінгHyraxвеб-сторінки зі списками файлів в кожному каталозі. Через це дуже специфічний для поточного форматуHyraxвеб-сторінки. Ми спробуємо регулюватиERDDAP™швидко, якщо / коли майбутні версіїHyraxзмінити, як показано файли.
  • Про нас<fileDir> налаштування ігнорується. Оскільки цей клас завантажує та робить локальну копію кожного файлу даних,ERDDAP™змушує файл Дивитися bigParentПублічний Українська datasetID Українська
  • Для<sourceUrl>, використовувати URL базового каталогу даних в каталозіHyraxсервер, наприклад, <sourceUrlГоловна http://edac-dap.northerngulfinstitute.org/dods-bin/nph-dods/WCOS/nmsp/wcos/ <УкраїнськаsourceUrlГоловна (але покласти його на одну лінію) (Вибачте, що сервер більше не доступний) й Про насsourceUrlвеб-сторінка зазвичай має "OPeNDAPІндекс сервера\[Головна\]" вгорі.
  • Оскільки цей клас завжди завантажує та робить локальну копію кожного файлу даних, ви ніколи не повинні загорнути цей набір даних вEDDTableКопій
  • Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.
  • Див. 1D, 2D, 3D і 4D приклади дляEDDTableЗ альбомуNcFilesй  

EDDTableЗ альбомуInvalidCRAFiles

EDDTableЗ альбомуInvalidCRAFiles дані агрегатів зNetCDF (v3 або v4) .ncФайли, які використовують специфічний, недійсний, варіант CF DSG Contiguous Ragged Array (Кошик) Файли НемовляERDDAP™підтримує цей тип файлів, це недійсний тип файлів, який не повинен використовувати його. Групи, які в даний час використовують цей тип файлів, сильно заохочуються до використанняERDDAP™щоб генерувати дійсні файли CF DSG CRA і зупинити використання цих файлів.

Детальніше: Ці файли мають декілька рядків\_розмір змінних, кожен з зразок\_dimension атрибут. Файли не-CF-стандартні файли, оскільки багаторазовий зразок (з) розміри повинні бути декодовані і пов'язані між собою з цим додатковим правилом і обіцяє, що не є частиною специфікації CF DSG: "Ви можете зв'язатися з цим, наприклад, значення температури (час\_об'єкт) з заданою глибиною значення (z\_obs size, розмір з самими значеннями) , так як: температурний ряд\_розмір (для даної лити) буде або 0 або дорівнює відповідному глибинному ряду\_розміру (для цього) (це правило) й Отже, якщо температурний ряд\_розмір не 0, то значення температури n для цього зливу відносяться безпосередньо до значень глибини n для цього (це обіцянка) » » » » » » » »

Ще одна проблема з цими файлами: Basic\_Investigator ряд\_розмір змінної не має зразка\_dimension атрибуту і не дотримується вищезазначеного правила.

Зразки файлів для цього типу даних можна знайти на https://data.nodc.noaa.gov/thredds/catalog/ncei/wod/ \[2020-10-21 Цей сервер не доступний\]й

Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Перше, що GenerateDatasets Xml для цього типу даних після відповіді на питання друкується ncdump-подібна структура файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.  

EDDTableЗ альбомуJsonlCSVFiles

EDDTableЗ альбомуJsonlCSVFiles дані агрегатів зСонце Лінії CSV файлівй Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

  • Як jsonlines.org каже, що цей формат є "Better ніж CSV" (і законно, як федеральний співробітник, я не можу погоджуватися або не погоджуватися з ними - як божевільний це?) й CSV ніколи не був формально визначений і є гаманцем історичного багажу, пов'язаного з його підключенням до оригінальних електронних програм. JSON Lines CSV, в порівнянні, повністю визначений і переваги від його підключення до широко використовуваного стандарту JSON, який в свою чергу переваги від його підключення доJavaАвторизаціяJavaй Можливо, є повна підтримка для довгих цілих і для символів Unicode в рядках, і чіткий спосіб включати інші спеціальні символи (невагомі вкладки і нові лінії) в рядках.

Цей формат особливо хороший для даних, де потрібно періодично додавати додаткові рядки до кінця даного файлу даних. З цієї причини та інші (Переглянути вище) йEDDTableЗ альбомуHttpGetвикористовує файли Json Lines CSV для зберігання даних.

  • Увімкнути файли, які мають кодування UTF-8. Однак, враховуючи \u Діддо формат кодування спеціальних символів (e.g., \u20ac - кодування для Euro) , у вас є можливість писати файли так, щоб вони містять лише 7-біт символи ASCII за допомогою \u Діддо кодувати всі символи вище #127.  
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру ncdump-подібної структури файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

  • ВАЖКО: КолиERDDAP™Читає JSON Лінії файлів даних CSV, якщо вона знаходить помилки на заданому рядку (наприклад, неправильне число елементів) , він записує повідомлення про попередження ("WARNING: Погана лінія (й) даних" ... з переліком поганих ліній на наступних лініях) доФайл: Log.txtа потім продовжує читати решту файлу даних. Таким чином, це ваша відповідальність, щоб виглядати періодично (або напишіть скрипт, щоб зробити це) для цього повідомлення в журналі. txt, щоб ви могли виправити проблеми у файлах даних.ERDDAP™Встановлюємо цей спосіб, щоб користувачі могли продовжувати читати всі доступні дані, хоча деякі лінії файлу мають недоліки.  

EDDTableЗ альбомуMultidimNcFiles

EDDTableЗ альбомуMultidimNcFiles дані агрегатів зNetCDF (v3 або v4) .nc (або.ncз) файли з декількома змінними, кожен з одним або декількома загальними розмірами. Файли можуть мати змінні характери з додатковим виміром (наприклад, й) й Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

  • Якщо файли багатовимірні варіанти CF DSG, використовуйте цей тип даних замістьEDDTableЗ альбомуNcCFFilesй  
  • Для нових табличних даних.ncФайли, використовуйте цей параметр перед тим, як намагатися старшогоEDDTableЗ альбомуNcFilesй Деякі переваги цього класу:
    • Цей клас може читати більше змінних з широкого асортименту файлових структур. Якщо ви вказали РозміриCSV (список назв розмірів) в GenerateDatasets Хмл (або<розміриCSV> вdatasets.xmlінформація для одного з цих даних, потімERDDAP™будуть тільки читати змінні в вихідних файлах, які використовують деякі або всі ці розміри, плюс всі змінні масштабу. Якщо розмір знаходиться в групі, необхідно вказати його повне ім'я, наприклад, " Ім'я користувача ".
    • Цей клас може часто відхилити файли дуже швидко, якщо вони не відповідають обмеженням запиту. Так читання даних з великих колекцій часто йде набагато швидше.
    • Цей клас ручить справжні змінні char (нетривалі змінні) правильно.
    • Цей клас може обрізати змінні, коли творець не використовує запис Netcdf-javaStrings (який додає char #0 розмітити кінець рядка) й
    • Цей клас краще при спілкуванні з окремими файлами, які не мають певних змінних або розмірів.
    • Цей клас може видалити блоки рядків з відсутніми значеннями, як зазначеними дляПанчохи Дискретні шамплінг геометереї (ДСГ) Неповторні багатовимірні масивні файли
       
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру ncdump-подібної структури файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

Група -- ГенераціяДатасети Xml попросить "Групу". Ви можете ввести "" для пошуку будь-яких груп, " деякі Група " або " someГруповий секс ", щоб він шукав конкретну групу, або "\[Увійти\]«Для того, щоб вона шукала тільки кореневу групу. Рядок «Груп» стає<група> вdatasets.xmlінформація для Dataset (хоча "\[Увійти\]"Читати") й

РозміриCSV -- GenerateDatasets Xml попросить на рядок "DimensionsCSV". Це кома-сепарований-значення списку вихідних імен набору розмірів. ГенераціяДатасети Xml буде тільки читати змінні дані в зразок.ncфайли, які використовують деякі або всі ці розміри (та інші розміри) , плюс всі змінні скаляра в файлі, і зробіть дані з змінних даних. Якщо розмір знаходиться в групі, необхідно вказати його повне ім'я, наприклад, " Ім'я користувача ". Якщо ви не вказали нічого (порожній рядок) , GenerateDatasets Xml буде виглядати на змінні з найбільшими розмірами, на теорії, що вони будуть найбільш цікавими, але можуть бути часи, коли ви хочете зробити дані з іншої групи змінних даних, яка використовує деякі інші групи розмірів. Якщо ви просто вказали назву виміру, що не існує (м. Київ) йERDDAP™буде просто знайти всі змінні скаляра. Рядок «DimensionsCSV» стає<розміриCSV> вdatasets.xmlінформація для Dataset.

лікуванняДименсАс

Є категорія недійсних.ncФайли (оскільки вони не дотримуються правил CF) які мають декілька розмірів (Наприклад, lat, lon, час) коли вони повинні використовувати лише один вимір (наприклад, час) Наприклад:

    dimensions:
time = UNLIMITED ; // (1437 currently)
depth = 10;
lat = 1437 ;
lon = 1437 ;
variables:
double time(time) ;
double lat(lat) ;
double lon(lon) ;
float temperature(time, depth) ;

EDDTableЗ альбомуMultidimNcFiles має особливу функцію для вирішення цих файлів: якщо ви додаєте глобальний атрибут "treatDimensionsAs" до даних глобального рівняaddAttributes, ви можете розповістиERDDAP™для обробки певних розмірів (е.g., lat і lon) якби вони були ще один вимір (наприклад, час) й Вартість атрибута повинна бути відокремленим комою, вказавши «з» розміри, а потім «в» розмір, наприклад, «в». lat, lon, час
ДаліERDDAP™читати файл, якби це було:

    dimensions:
time = UNLIMITED ; // (1437 currently)
depth = 10;
variables:
double time(time) ;
double lat(time) ;
double lon(time) ;
float temperature(time, depth) ;

Звичайно, поточний розмір кожного з розмірів у списку повинні бути однаковими; інакше,ERDDAP™лікує файл як «Бад файл».

Зауважте, що ці файли є недійсними, оскільки вони не дотримуються правил CF. І хоча бERDDAP™ми рекомендуємо вам не створювати файли, такі як інші програмні інструменти CF не зможуть прочитати їх правильно. Якщо у вас вже є такі файли, ми радимо замінювати їх дійсними файлами.

EDDTableЗ альбомуNcFiles

EDDTableЗ альбомуNcFiles дані агрегатів зNetCDF (v3 або v4) .nc (або.ncз) ФайлиЗарФайли (від версії 2.25) з декількома змінними, кожен з одним загальним виміром (наприклад, час) або більше одного спільного розміру (наприклад, час, висота (або глибина) , широта, довгота) й Файли повинні мати однакові імена розмірів. Заданий файл може мати декілька значень для кожного з розмірів і значення можуть відрізнятися в різних вихідних файлах. Файли можуть мати змінні характери з додатковим виміром (наприклад, й) й Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

Файли Zarr трохи відрізняються поведінкою і вимагають, як файлNameRegex або шляхRegex, щоб включити "zarr".

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру ncdump-подібної структури файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

РозміриCSV -- GenerateDatasets Xml попросить на рядок "DimensionsCSV". Це кома-сепарований-значення списку вихідних імен набору розмірів. ГенераціяДатасети Xml знайде змінні дані в.ncФайли, які використовують деякі або всі ці розміри, плюс всі змінні масштабу, і роблять дані з змінних даних. Якщо ви не вказали нічого (порожній рядок) , GenerateDatasets Xml буде виглядати на змінні з найбільшими розмірами, на теорії, що вони будуть найбільш цікавими, але можуть бути часи, коли ви хочете зробити дані з іншої групи змінних даних, яка використовує деякі інші групи розмірів.

  • 1D Приклад: 1D файли дещо відрізняються від 2D, 3D, 4D, ... файлів.
    • Ви можете мати набір.ncФайли даних, де кожен файл має один місяць, варто даних з одного обмотки.
    • Кожен файл буде мати 1 розмір, наприклад, час (розмір =\[багато\]) й
    • Кожен файл буде мати один або більше 1D змінних, які використовують цей розмір, наприклад, час, довгота, широта, температура повітря, ....
    • Кожен файл може мати змінні значення 2D, наприклад, з розмірами (час,nCharacters) й  
  • 2D Приклад:
    • Ви можете мати набір.ncФайли даних, де кожен файл має один місяць, варто даних з одного обмотки.
    • Кожен файл буде мати 2 розміри, наприклад, час (розмір =\[багато\]) й (розмір = 1) й
    • Кожен файл буде мати 2 1D змінні з такими ж назвами, як розміри і використання однакового розміру, наприклад, час (час) й (й) й Ці змінні 1D повинні бути включені в список<dataVariable> в XML даних.
    • Кожен файл буде мати одну або більше 2D змінних, наприклад, довгота, широта, температура повітря, температура води, ...
    • Кожен файл може мати змінні значення 3D, наприклад, з розмірами (час,id,nCharacters) й  
  • Приклад 3D:
    • Ви можете мати набір.ncФайли даних, де кожен файл має один місяць, варто даних з одного стаціонарного буя.
    • Кожен файл буде мати 3 розміри, наприклад, час (розмір =\[багато\]) й (розмір = 1) й лон (розмір = 1) й
    • Кожен файл буде мати 3 1D змінні з такими ж назвами, як розміри і використання однакового розміру, наприклад, час (час) й (лаціна) , лон (лон) й Ці змінні 1D повинні бути включені в список<dataVariable> в XML даних.
    • Кожен файл буде мати один або більше 3D змінних, наприклад, температури повітря, температури води, ...
    • Кожен файл може мати змінні значення 4D, наприклад, з розмірами (час,лат,лон,nCharacters) й
    • Ім'я файла може мати ім'я буйя в ім'я файлу.  
  • Приклад 4D:
    • Ви можете мати набір.ncФайли даних, де кожен файл має один місяць, варто даних з однієї станції. На кожній точці станції займає читання по ряду глибин.
    • Кожен файл буде мати 4 розміри, наприклад, час (розмір =\[багато\]) , глибина (розмір =\[багато\]) й (розмір = 1) й лон (розмір = 1) й
    • Кожен файл буде мати 4 1D змінні з такими ж назвами, як розміри і використання однакового розміру, наприклад, час (час) , глибина (глибина) й (лаціна) , лон (лон) й Ці змінні 1D повинні бути включені в список<dataVariable> в XML даних.
    • Кожен файл буде мати один або більше 4D змінних, наприклад, температури повітря, температури води, ...
    • Кожен файл може мати змінні значення 5D, наприклад, з розмірами (час,глибокий,лат,лон,nCharacters) й
    • Ім'я файла може мати ім'я буйя в ім'я файлу.  

EDDTableЗ альбомуNcCFFiles

EDDTableЗ альбомуNcCFFiles сукупність даних агрегатів даних зNetCDF (v3 або v4) .nc (або.ncз) Файли, які використовують один з форматів файлів, зазначених за допомогою файлівПанчохи Дискретні шамплінг геометереї (ДСГ) конвенції. Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

Для файлів з використанням одного з багатовимірних варіантів CF DSG, використанняEDDTableЗ альбомуMultidimNcFilesдо.

Конвенції CF DSG визначає десятки форматів файлів і включає численні незначні варіації. Цей клас працює з усіма варіаціями, які ми знаємо, але ми можемо пропустити один (чи більше) й Отже, якщо цей клас не може читати дані з файлів CF DSG, будь ласка,отримайте додаткову підтримкуй

Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.  

EDDTableЗ альбомуNccsvFiles

EDDTableЗ альбомуNccsvFiles дані агрегатів зНККСВФайли ASCII .csv. Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.

Перше, що GenerateDatasetsXml призначене для цього типу, після того, як ви відповіли питання, друкує структуру ncdump-подібної структури файлу зразка. Отже, якщо ви вводите кілька відповідей на перші петлі через GenerateDatasets Xml, принаймні, ви зможете побачити, якщоERDDAP™може прочитати файл і побачити, які розміри і змінні в файлі. Потім можна дати краще відповіді на другу петлю через GenerateDatasetsXml.

  • ВАЖКО: КолиERDDAP™Читає файли даних NCCSV, якщо він знаходить помилку на даній лінії (наприклад, неправильне число елементів) , він записує повідомлення про попередження ("WARNING: Погана лінія (й) даних" ... з переліком поганих ліній на наступних лініях) доФайл: Log.txtа потім продовжує читати решту файлу даних. Таким чином, це ваша відповідальність, щоб виглядати періодично (або напишіть скрипт, щоб зробити це) для цього повідомлення в журналі. txt, щоб ви могли виправити проблеми у файлах даних.ERDDAP™Встановлюємо цей спосіб, щоб користувачі могли продовжувати читати всі доступні дані, хоча деякі лінії файлу мають недоліки.  

EDDTableЗ альбомуNOS

EDDTableЗ альбомуNOS (ДЕПРЕЄСТРАЦІЯ) обробка даних зNOAA Ниткиджерело, який використовуєSOAP+XMLдля запитів та відповіді. Дуже специфічний дляNOAAXML. Дивитися зразок EDDTableЗ альбомуNOS Dataset в datasets2.xml.  

EDDTableЗ альбомуOBIS

EDDTableЗ альбомуOBIS обробка даних з системи біогеографічної інформації Океан (ОБІС) сервер (був http://www.iobis.org ) й Можливо, для цього немає більш активних серверів, які використовують даний зараз застарілий тип серверної системи OBIS.

  • Сервери OBIS очікує запит на XML і повертає відповідь XML.
  • Оскільки всі сервери OBIS забезпечують однакові змінні (був http://iobis.org/tech/provider/questions ) , ви не повинні вказати багато, щоб встановити OBIS дані вERDDAPй
  • Ви MUST включають "creator\_emailатрибут у світіaddAttributes, оскільки інформація використовується в межах ліцензії. Ця електронна адреса може бути знайдена шляхом зчитування XML відповіді з джерелаURL.
  • Ви можете або не зможете отримати глобальний атрибут<subsetVariables>] (#сумісний) працювати з наданим сервером OBIS. Якщо ви спробуєте, просто спробуйте одну змінну (Наприклад, Наукова назва або Генус) й

EDDTableЗ альбомуOBIS Список XML

  <dataset type="EDDTableFromOBIS" datasetID\="..." active\="..." >
      <sourceUrl>...</sourceUrl>
      <sourceCode>...</sourceCode>
        <!-- If you read the XML response from the sourceUrl, the
        source code (for example, GHMP) is the value from one of the
        <resource><code> tags. -->
      <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 -->
      <-- All ...SourceMinimum and Maximum tags are OPTIONAL -->
      <longitudeSourceMinimum>...</longitudeSourceMinimum>
      <longitudeSourceMaximum>...</longitudeSourceMaximum>
      <latitudeSourceMinimum>...</latitudeSourceMinimum>
      <latitudeSourceMaximum>...</latitudeSourceMaximum>
      <altitudeSourceMinimum>...</altitudeSourceMinimum>
      <altitudeSourceMaximum>...</altitudeSourceMaximum>
      <-- For timeSource... tags, use yyyy-MM-dd'T'HH:mm:ssZ format. -->
      <timeSourceMinimum>...</timeSourceMinimum>
      <timeSourceMaximum>...</timeSourceMaximum>
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
        <!-- 0 or 1 -->
      <addAttributes>...</addAttributes> <!-- 0 or 1. This MUST include
        "creator\_email" -->
  </dataset>

EDDTableЗ альбомуParquetFiles

EDDTableЗ альбомуParquetFiles обробка даних зПаркетй Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.

  • Паркет розроблений для стиснення дуже ефективно, тому він може дати вам менші розміри файлів, ніж інші формати.
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.
  • ВАЖКО: КолиERDDAP™Читає файли даних Паркету, якщо він знаходить помилку на даній лінії (наприклад, неправильне число елементів) , він записує повідомлення про попередження ("WARNING: Погана лінія (й) даних" ... з переліком поганих ліній на наступних лініях) доФайл: Log.txtа потім продовжує читати решту файлу даних. Таким чином, це ваша відповідальність, щоб виглядати періодично (або напишіть скрипт, щоб зробити це) для цього повідомлення в журналі. txt, щоб ви могли виправити проблеми у файлах даних.ERDDAP™Встановлюємо цей спосіб, щоб користувачі могли продовжувати читати всі доступні дані, хоча деякі лінії файлу мають недоліки.  

EDDTableЗ альбомуSOS

EDDTableЗ альбомуSOS обробка даних від служби спостереження датчика (СВУ/SOS) сервер.

  • Ці дані, які подаються в групі станцій, які подаються на одномуSOSсервер.
  • На станціях все слугують тим самим набором змінних (Хоча джерело для кожної станції не потрібно обслуговувати всі змінні) й
  • SOSСервери очікують запит на XML і повертає відповідь XML.
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його. Не легко створювати XML для данихSOSдані вручну. Щоб знайти необхідну інформацію, необхідно відвідатиsourceUrl+"? ПослугиSOSЗапрошенняGetCapabilities" в браузері; подивитися на XML; зробити запит GetObservation вручну; і подивитися на відповідь XML на запит.
  • З періодичним доповненням нових видівSOSсерверів та змін до старих серверів, він стає важчеERDDAP™автоматично виявляти тип сервера від відповіді сервера. Використання<код товару: (з значенням IOOS\_NDBC, IOOS\_NOS,OOSTethys, або КОЛИ) зараз STRONGLY RECOMMENDED. Якщо у вас виникли проблеми з будь-якими даними цього типу, спробуйте повторно запустити GenerateDatasets Xml дляSOSсервер. Генерація Дані Xml дозволить вам спробувати різні<JavaScript licenses API Веб-сайт Go1.13.8
  • SOSОгляд:
    • ПІСЛЯ (Датчик Web Увімкнення) іSOS (Спостереження датчиків) Р浜у 灞 绀й На веб-сайті є документи про стандарти.

    • Про насOGCВеб-послуги Загальні характеристики ver 1.1.0 (OGC06-121р3) обкладинки будівництва GET і POST запитів (див. розділ 7.2.3 і розділ 9) й

    • Якщо ви надішлемо запит на getCapabilities xmlSOSсервер (sourceUrl+ "?service=SOSЗапрошенняGetCapabilities« » » » » » » » » » » » » » ») , ви отримуєте результат xml з переліком станцій і спостерігаючих Властивості, які мають дані.

    • ВідстеженняПроперти - це офіційна довідкова інформація про нерухомість. Наприклад, urn:ogc:phenomenon:longitude:wgs84 або https://mmisw.org/ont/cf/parameter/sea\\_water\\_temperature

    • Не змінна.

    • Більш ніж одна змінна може мати однаковий вигляд Проживання (наприклад, всерединіTemp і зовні Темп може спостерігати Проживання https://mmisw.org/ont/cf/parameter/air\\_temperature ) й

    • Якщо ви надішлемо запит xmlSOSсервер, ви отримуєте результат xml з описом назв поля у відповідь, полів та даних. Прізвища поля буде містити довгота, широта, глибина (апошні) і час.

    • ЩоdataVariableДля EDDTableЗ альбомуSOSповинен включати атрибут "observedProperty", який ідентифікує проценти Нерідко кількаdataVariables буде списувати однакові композитні характеристики.

    • Тип даних для кожногоdataVariableне вказаний сервером. Якщо так, ви повинні переглянути відповіді на дані XML з сервера і призначити відповідні [<JavaScript licenses API Веб-сайт (Головна) вERDDAP™метаdataVariableвизначення.

    • (На момент написання цього) деякіSOSСервери відповідають запитам про те, щоб отримати Властивості за рахунок простого повернення результатів за перше місце зауважень (Немає повідомлення про помилку!) Переглянути запит параметра конструктора СпостереженняПроперти

  • EDDTableЗ альбомуSOSавтоматично додає

    station\_id, longitude, latitude
    до глобальних атрибутів даних, коли створюється набір даних.

  • SOSсервери зазвичай експресблокизУКУМсистема. НайпопулярнішіERDDAP™сервера експрес-блоки зUDUNITSсистема. Якщо потрібно конвертувати між двома системами, можна використовуватиERDDAPВеб-сервіс для перетворення одиниць UCUM на / зUDUNITSй

EDDTableЗ альбомуSOSСписок XML

  <dataset type="EDDTableFromSOS" 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 -->
      <sosServerType>...</sosServerType> <!-- 0 or 1, but STRONGLY
        RECOMMENDED. This lets you specify the type of SOS server
        (so ERDDAP™ doesn't have to figure it out).
        Valid values are: IOOS\_NDBC, IOOS\_NOS, OOSTethys, and WHOI. -->
      <responseFormat>...</responseFormat> <!-- 0 or 1. Use this only if
        you need to override the default responseFormat for the
        specified sosServerType. -->
      <stationIdSourceName>...</stationIdSourceName> <!-- 0 or 1.
        Default="station\_id". -->
      <longitudeSourceName>...</longitudeSourceName>
      <latitudeSourceName>...</latitudeSourceName>
      <altitudeSourceName>...</altitudeSourceName>
      <altitudeSourceMinimum>...</altitudeSourceMinimum> <!-- 0 or 1 -->
      <altitudeSourceMaximum>...</altitudeSourceMaximum> <!-- 0 or 1 -->
      <altitudeMetersPerSourceUnit>...</altitudeMetersPerSourceUnit>
      <timeSourceName>...</timeSourceName>
      <timeSourceFormat>...</timeSourceFormat>
        <!-- timeSourceFormat MUST be either
        \* For numeric data: a UDUnits\-compatible string (with the format
          "units since baseTime") describing how to interpret
          source time values (for example,
          "seconds since 1970-01-01T00:00:00Z"), where the
          base time is an ISO 8601:2004(E) formatted date time
          string (yyyy-MM-dd'T'HH:mm:ssZ).
        \* For String date time data: specify
          units suitable for string times
          describing how to interpret string times (for example, the
          ISO8601TZ\_FORMAT "yyyy-MM-dd'T'HH:mm:ssZ"). -->
      <observationOfferingIdRegex>...</observationOfferingIdRegex>
        <!-- Only observationOfferings with IDs (usually the station names)
        which match this regular expression (tutorial) will be included
        in the dataset (".+" will catch all station names). -->
      <requestObservedPropertiesSeparately>true|false(default)
        </requestObservedPropertiesSeparately>
      <sourceNeedsExpandedFP\_EQ>true(default)|false</sourceNeedsExpandedFP\_EQ>
      <addAttributes>...</addAttributes> <!-- 0 or 1 -->
      <dataVariable>...</dataVariable> <!-- 1 or more.
        \* Each dataVariable MUST include the dataType tag.
        \* Each dataVariable MUST include the observedProperty attribute.
        \* For IOOS SOS servers, \every\ variable returned in the text/csv
          response MUST be included in this ERDDAP™ dataset definition. -->
  </dataset>

EDDTableЗ альбомуThreddsFiles

EDDTableЗ альбомуThreddsFiles (депресований) сукупні файли даних з декількома змінними, кожен з одним або декількома загальними розмірами (наприклад, час, висота (або глибина) , широта, довгота) і подаютьсяЦІНИOPeNDAPсерверй

  • Даний тип даних ДЕПРЕЄСТРАЦІЯ й Новий і більш загальний розчин для використанняпердят ВідUrl варіант для EDDTable Відповіді (або варіант) , що робить локальну копію віддалених файлів і надає дані з місцевих файлів. Про нас<cacheЗ альбомуUrl> можна використовувати з будь-яким типом файла табличних даних з будь-якого джерела веб-сайтів, який публікує каталог-подібний список файлів. **
    Якщо ви не можете зробити цю роботу з якоїсь причини, по електронній пошті Кріс. Джон на noaa.gov . Якщо скарги до 2020 року не можна видалити. **
  • Ми рекомендуємо використовуватиГенераціяДатасети Програма Xmlзробити грубий проектdatasets.xmlгорб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.
  • У більшості випадків кожен файл має декілька значень для нижньої частини (перший) розмір, наприклад, час.
  • Файли часто (але не доведеться) мати єдине значення для інших розмірів (наприклад, висота (або глибина) , широта, довгота) й
  • Файли можуть мати змінні характери з додатковим виміром (Наприклад, nCharacters) й
  • Сервери THREDDS можуть бути ідентифіковані "/trredds/" у URL. Наприклад,
    https://www.ncei.noaa.gov/thredds/catalog/uv/6h\\_strs\\_agg/catalog.html
  • Сервери THREDDS мають каталоги в різних місцях. Цей клас ОБЛАДНАННЯ, що URL-адреса включає "/redds/catalog/". Ви зазвичай можете знайти цю змінну, починаючи з браузера в кореневому каталозі, а потім натиснувши через бажаний підкаталог.
  • Цей клас читає файли каталогу.xml, що подаються THREDDS зі списками<каталогРефлі> (посилання на додаткові каталог.xml під-файли) і<датасет> (Файли даних) й
  • Про нас<fileDir> налаштування ігнорується. Оскільки цей клас завантажує та робить локальну копію кожного файлу даних,ERDDAP™змушує файл Дивитися bigParentПублічний Українська datasetID Українська
  • Для<sourceUrl>, використовуйте URL-адресу каталогу.xml файл для завантаження даних в сервері THREDDS, наприклад: для цього URL, який може використовуватися в веб-браузері, https://data.nodc.noaa.gov/thredds/catalog/nmsp/wcos/catalog.html \[2020-10-21 Цей сервер не доступний.\]й використання<sourceUrlГоловна https://data.nodc.noaa.gov/thredds/catalog/nmsp/wcos/catalog.xml <УкраїнськаsourceUrlГоловна (але покласти його на одну лінію) й
  • Оскільки цей клас завжди завантажує та робить локальну копію кожного файлу даних, ви ніколи не повинні загорнути цей набір даних вEDDTableКопій
  • Цей тип даних підтримує OPTIONAL, рідко використовуваний, спеціальний тег,<СпеціальнийМод> режим </specialMode>, які можуть використовуватися для визначення, які файли повинні бути завантажені з сервера. В даний час тільки дійсний режим є SAMOS, які використовуються з даними https://tds.coaps.fsu.edu/thredds/catalog/samos завантажити тільки файли з останнім номером версії.
  • Переглянути суперклас класу,EDDTableЗ альбомуFilesІнформація про те, як працює цей клас і як його використовувати.
  • Див. 1D, 2D, 3D і 4D приклади дляEDDTableЗ альбомуNcFilesй  

EDDTableЗ альбомуWFSФайли

EDDTableЗ альбомуWFSФайли (ДЕПРЕЄСТРАЦІЯ) робить локальну копію всіх даних зArcGISМапаWFSсервер так що дані можна швидко зберігатиERDDAP™користувачів.

  • Необхідно вказати спеціально відформатованийsourceUrlглобальний атрибутERDDAP™Як скористатися інформацією з сервера. Будь ласка, використовуйте цей приклад як шаблон:
    <att name="sourceUrl">http://*someUrl/dir1/dir2*/MapServer/WFSServer?request=GetFeature&amp;service=WFS&amp;typename=aasg:BoreholeTemperature&amp;format=&quot;text/xml;%20subType=gml/3.1.1/profiles/gmlsf/1.0.0/0"</att>  

(але викласти все на одну лінію)

  • Вам потрібно додати спеціальний глобальний атрибут, щоб розповістиERDDAP™Як визначити назви фрагментів даних, які слід завантажити. Це, ймовірно, працювати для всіх EDDTableЗ альбомуWFSФайли даних:
    <att name="rowElementXPath">/wfs:FeatureCollection/gml:featureMember</att>
  • Оскільки цей клас завжди завантажує та робить локальну копію кожного файлу даних, ви ніколи не повинні загорнути цей набір даних вEDDTableКопій
  • Переглянути суперклас класу,EDDTableЗ альбомуFilesДля додаткової інформації про те, як працює цей клас і як його використовувати.  

EDDTableАгрегатор

EDDTableАгрегатор може зробити EDDTable Dataset з групи "дих" EDDTable datasets.

  • Ось деякі використовує для EDDTableAggregateRows:
    • Ви можете зробити EDDTableAggregateRows Dataset з двох різних видів файлів або джерел даних, наприклад, Dataset з даними до кінця останнього місяця, що зберігається в.ncФайли CF та дані з даними для поточного місяця, що зберігаються у відповідній базі даних.
    • Ви можете зробити EDDTableAggregateRows для вирішення змін у вихідних файлах (наприклад, змінено формат часу або змінне ім’я, або дані Тип/scale\_factorУкраїнськаadd\_offsetзмінено) й У цьому випадку одна дитина отримає дані з файлів, зроблені до зміни та іншої дитини, отримає дані з файлів, зроблені після зміни. Це використання EDDTableAggregateRows є альтернативою використанняНЦМЛабоNCOй Якщо ви не можете використовувати функцію, що відрізняє файли (наприклад, ви можете використовувати<fileNameRegex>, щоб визначити, який файл належить до якого дочірні дані дитини, ви, ймовірно, повинні зберігати файли для двох дитячих даних в різних каталогах.
    • Ви можете зробити EDDTableAggregateRows Dataset, який має спільну підмножину змін одного або декількох аналогічних, але різних даних, наприклад, Dataset, яка робить набір профілю з комбінації даних профілю, TimeSeriesProfile dataset, і TraatoryProfile dataset (які мають деякі різні змінні та деякі змінні в загальному -- в якому випадку ви повинні зробити спеціальні варіанти для дитячих даних, з просто вбудованими) й
    • Ви можете мати кілька автономних даних, кожен з однакових типів даних, але з різних станцій. Ви можете залишити ці дані, але також створити EDDTableAggregateRows Dataset, який має дані з усіх станцій - кожен з дитячих даних може бути простимEDDTableЗ альбомуErddap, що вказує на одну з наявних станційних даних. Якщо ви це зробити, дати кожен з EDDTableЗ альбомуErddap datasets різніdatasetIDніж оригінальні резервні дані, наприклад, за попереднім записом «Кід» на оригінальніdatasetIDй
  • Кожна дитина<Зазначені дані> повинні бути повними даними, оскільки якщо він був автономним даними. Кожен повинен мати той самийdataVariableй, в тому ж порядку, з тим жеdestinationNameййдані Типийmissing\_valueйй\_FillValuesйблокий метадані для кожної змінної для EDDTableAggregateRows отримує дані з змінних у першому дитячому гарнітурі, але EDDTableAggregateRows оновлюватимеactual\_rangeметаданих – бути справжнім діапазоном для всіх дітей.
  • Рекомендації: Отримати кожен з дитячих даних, які працюють як самостійні дані. Потім намагайтеся зробити EDDTableAggregateRows за допомогою різання та перекачуванняdatasets.xmlкурка для кожного в новий EDDTableAggregate Перегляд даних.
  • Замовлення за замовчуванням -- Порядок отримання даних дитини визначає загальний порядок сортування за замовчуванням результатів. Звичайно, користувачі можуть запитати інший порядок сортування для даного набору результатів за допомогою додатків таorderBy (« » » » » » » » » » » » » » » Список змінних « » » » » » » » » » » » » » ») до кінця запиту.
  • "джерело"глобальний АтрибутиДля EDDTableAggregateRows є комбінованими глобальними атрибутами з першого набору даних дитини. EDDTableАгрегація Rows може мати глобальний<addAttributes> надавати додаткові глобальні атрибути або перенаправлення глобальних атрибутів джерела.

EDDTableАгрегація Рівний скелет XML

  <dataset type="EDDTableAggregateRows" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 0 or 1 -->
      <reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
      <updateEveryNMillis>...</updateEveryNMillis> <!-- 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 -->
      <dataset>...</dataset> <!-- 1 or more -->
  </dataset>

EDDTableКопі

EDDTableКопі може зробити локальну копію багатьох типів EDDTable datasets, а потім швидко зберігати дані з локальної копії.

  • EDDTableКопі (і для даних сітки,EDDGridПартнерство) дуже простий у використанні і дуже ефективний Вирішення деяких з найбільших проблем з наданням даних з джерел даних дистанційних даних:
    • Доступ до даних з джерела даних віддалених даних може бути повільним.
      • Вони можуть бути повільними, тому що вони, як правило, повільні (наприклад, неефективний тип сервера) й
      • тому, що вони занадто багато запитів,
      • або через те, що сервер або віддалений сервер обмежений.
    • Віддалена датасета іноді недоступна (знову, для різних причин) й
    • Поповнення на одне джерело даних не дуже добре (наприклад, коли багато користувачів і багатоERDDAPs використовувати його) й  
  • Як працює -- EDDTableCopy вирішує ці проблеми шляхом автоматичного створення та підтримки локальної копії даних та подачі даних з локальної копії.ERDDAP™може служити дані з локальної копії дуже швидко. І зробивши і використовуючи локальну копію знімає навантаження на віддалений сервер. І локальна копія є резервним копіюванням оригінального, який корисний у випадку, якщо щось відбувається з оригінальним.

Немає нічого нового про створення локальної копії даних. Що нового цього класу робить його\*легкий\*створювати і створювати\*Послуги\*локальна копія даних з\*Сорти\*типів джерел віддалених даних та\*додати метадані\*при копіюванні даних.

EDDTableCopy проти<cacheЗ альбомуUrl>

<cacheЗ альбомуUrl> є альтернативою EDDTableCopy. Вони працюють по-різному.

  • Головна Скопіюйте роботи за запитом фрагментів даних з віддаленого сервісу та зберігайте ці шматки у локальних файлах. Таким чином, EDDTableCopy корисно в деяких випадках, коли дані доступні через віддалений сервіс.
  • Про нас<cacheЗ альбомуUrl>] (#cachefromurl) завантажує існуючі файли, що вказані на віддаленому сайті.<cacheЗ альбомуUrl> простий у використанні і більш надійний, оскільки він може легко розповісти, коли є новий файл даних віддалених даних або коли файл віддалених даних змінився і таким чином потрібно завантажити.

Якщо виникають ситуації, де EDDTableCopy або<cacheЗ альбомуUrl> може бути використаний, використання<cacheЗ альбомуUrl> оскільки це простіше і надійніше.  

<екстрактДестинація Ім'я та гт;

Головна Скопіювати локальну копію даних за запитом роз'ємів даних з віддаленого сховища даних. Головна Скопіювати визначає, які штани для запиту за запитом &distinct () значення для<JavaScript licenses API Веб-сайт Go1.13.8 (вказаний вdatasets.xml, див. нижче) , які є типовими іменами пунктів призначення змінних у віддалених даних. Наприклад,

    <extractDestinationNames>drifter profile</extractDestinationNames>  

може мати відмінні значення комбінації drifter=tig17,profile=1017, drifter=tig17,profile=1095, ... drifter=une12,profile=1223, drifter=une12,profile=1251,...

У ситуаціях, де один стовпчик (Наприклад, профіль) може бути все, що необхідно для унікального визначення групи рядків даних, якщо є дуже велика кількість, наприклад, профілі, це може бути корисним, щоб також вказати додатковий екстракт Напрямок Ім'я (наприклад, дифтер) який служить для підживлення профілів. Це призводить до декількох файлів даних у даній каталозі, яка може призвести до більш швидкого доступу.

Місцеві файли

Кожен горб даних зберігається в окремомуNetCDFфайл в піддиректорі bigParentПублічний Українська datasetID Українська (як зазначено вНалаштування.xml) й Існує один рівень піддиректора для всіх, але останнє екстрактDestinationName. Наприклад, дані для tig17+1017, будуть зберігатися в bigParentПублічний JavaScript licenses API Веб-сайт Go1.13.8.ncй Наприклад, дані для une12+1251 будуть зберігатися в bigParentПублічний /копія/sampleDataset/une12/1251.ncй Довідник і назва файлів, створені з значень даних, модифіковані, щоб зробити їх файл-name-safe (наприклад, приміщення замінені на "x20") - це не впливає на фактичні дані.  

Нові дані

Кожен раз EDDTable Скопіювати перезавантажено, він перевіряє віддалені дані, щоб побачити, які різні шматки доступні. Якщо файл для шматка даних не існує, запит на отримання куртки додається в чергу.ERDDAP's завданняThread змінює всі черги запитів для шматків даних, один-в-одному. Ви можете побачити статистику для задачіРеєстраціяі вЩоденний звітй (Так,ERDDAP™може призначити кілька завдань до цього процесу, але це буде використовувати багато пропускної здатності джерела даних, пам'яті та часу процесора, і багато локальнихERDDAP"перемикання, пам'ять і час процесора, ні з чого хороша ідея.)

НЕ: В перший раз навантажується EDDTableCopy, (якщо все добре) Багато запитів на шматки даних будуть додані в задачуПопередня черга, але не створюються локальні файли даних. Так конструктор не буде, але завданняПрочитати буде продовжувати працювати і створювати локальні файли. Якщо все добре йде, задачаThread зробить деякі локальні файли даних і наступну спробу перезавантажити дані (в ~15 хвилин) буде успішним, але спочатку з дуже обмеженою кількістю даних.

ОНОВЛЕННЯ: Після того, як локальний гарнітур має деякі дані і з'являється у вашомуERDDAP, якщо віддалений датасет тимчасово або назавжди не доступний, локальний датасет все ще буде працювати.

WARNING: Якщо віддалений гарнітур є великим і / або віддаленим сервером повільніше (Це проблема, це не так?!) , це займе багато часу, щоб зробити повну локальну копію. У деяких випадках необхідний час неприпустимо. Наприклад, передача 1 ТБ даних по лінії T1 (0.15 Гб/с) займає мінімум 60 діб, при оптимальних умовах. Плюс, він використовує багато пропускної здатності, пам'яті та часу процесора на віддалених і локальних комп'ютерах. Розчин полягає в тому, щоб надіслати жорсткий диск адміністратору встановлених даних, щоб с/га може зробити копію даних та надіслати жорсткий диск назад до вас. Використовуйте ці дані як початкова точка і EDDTableCopy додадуть дані до неї. (Що таке хмарний сервіс Amazon's EC2, який використовується для обробки проблеми, хоча їх система має багато пропускної здатності.)

ВАЖЛИВО: Якщо дана комбінація значень зникне з віддаленого набору даних, EDDTableCopy не видаляє локальний скопійований файл. Якщо ви хочете, ви можете видалити його самостійно.

Настільний<реєстраціяSourceData>

Про насdatasets.xmlдля цього набору даних може мати додатковий тег

    <checkSourceData>true</checkSourceData>  

Значення за замовчуванням є вірним. Якщо ви налаштували його на false, дані, які не перевіряють вихідний дані, щоб побачити, чи доступні додаткові дані.  

  1. Створити<датасет> Увійти (рідний тип, не EDDTableCopy) для джерела даних віддалених даних. Отримайте правильність роботи, включаючи всі необхідні метадані.
  2. Якщо це занадто повільно, додайте XML-код, щоб загорнути його в EDDTableCopy dataset.
    • Використовуйте різніdatasetID (можливо, змінившиdatasetIDстаріdatasetIDтрохи) й
    • Статус на сервери<доступні До>,<перезавантаженняВсіNMinutes> і<onChange> з віддаленого XML EDDTable до XML EDDTableCopy. (Їх значення для EDDTableCopy матерії; їх значення для внутрішнього набору даних стає незворотним.)
    • Створити<removeDestinationNames> тег (Переглянути вище) й
    • <ЗамовленняExtractBy> є окремим списком змінних імен пункту призначення у віддаленому режимі. При завантаженні кожного шматка даних з віддаленого сервера штан буде відсортовано ці змінні (за першою змінною, потім другою змінною, якщо перша змінна пов'язана, ...) й У деяких випадкахERDDAP™отримувати дані швидше від локальних файлів даних, якщо перша змінна у списку є числовою змінною ("time"кількість як нумерична змінна) й Але оберіть ці змінні спосіб, який підходить для набору даних.
  3. ERDDAP™зробить і підтримувати локальну копію даних.  
  • WARNING: EDDTableCopy припускає, що значення даних для кожного шматка не змінюється. Якщо / коли вони роблять, потрібно вручну видалити файли згортки в bigParentПублічний Українська datasetID / які змінилися іУвійтиЗамінити дані, щоб бути перевантажені так, щоб видалені шматки будуть замінені. Якщо у вас є підписка на електронну пошту до набору даних, ви отримаєте два електронні листи: один, коли дані, які спочатку перевантажуються і починають копіювати дані, а інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.  
  • Зміна метаданих --- Якщо необхідно змінити будь-якийaddAttributesабо змінити порядок змін, пов'язаних з вихідним даними:
    1. ЗмінаaddAttributesдля вихідних данихdatasets.xml, як це потрібно.
    2. Видалити один з копіюваних файлів.
    3. ВстановитиУвійтинегайно перезавантажити дані. Якщо ви використовуєте прапор і ви маєте підписку на електронну пошту до датасета, ви отримаєте два електронні листи: один, коли дані, які спочатку перезавантажуються і починає копіювати дані, а також інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
    4. Виданий файл буде перегенерований з новим метаданих. Якщо вихідний датасет є коли-небудь недоступним, EDDTableCopy Dataset отримає метадані з регенерованого файлу, оскільки він є найменшим файлом.  
  • EDDGridПартнерстводуже схожий на EDDTableCopy, але працює з сітчастими даними.

EDDTableCopy скелет XML

  <dataset type="EDDTableCopy" datasetID\="..." active\="..." >
      <accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
      <graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
      <accessibleViaFiles>true|false(default)</accessibleViaFiles>
        <!-- 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 -->
      <extractDestinationNames>...</extractDestinationNames> <!-- 1 -->
      <orderExtractBy>...</orderExtractBy> <!-- 0 or 1 -->
      <fileTableInMemory>...</fileTableInMemory> <!-- 0 or 1 (true or false
        (the default)) -->
      <checkSourceData>...</checkSourceData> <!-- 0 or 1 -->
      <dataset>...</dataset> <!-- 1 -->
  </dataset>


Детальніше

Ось докладні описи поширених тегів і атрибутів.

<кутовийDegreeUnits>

  • Про нас ** <кутовийDegreeUnits> ** до (#акуляри) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий містить список командних рядів, якіERDDAP™слід лікувати як кутові ступені. Якщо змінна має один з цих одиниць,tabledapРorderByMeanфільтр розрахує засіб особливим чином, після чого звітуватиме як значення від -180 до 180. Про насERDDAP's EDStatic.java вихідний код для поточного списку за замовчуванням. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий

<кутовийDegreeTrueUnits>

  • Про нас ** <кутовий Стюардеса ** до (#акуляри) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий містить список командних рядів, якіERDDAP™слід обробити як кутові ступені справжні одиниці. Якщо змінна має один з цих одиниць,tabledapРorderByMeanфільтр розрахує значення особливим способом, потім звітує про те, що значення від 0 до 360. Про насERDDAP's EDStatic.java вихідний файл для поточного списку за замовчуванням. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий  

<загальнийStandardNames>

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#компоненти) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати список спільного спискуCF стандартних іменй Наприклад:
    <commonStandardNames>air\\_pressure, ..., wind\\_to\\_direction</commonStandardNames>  

Цей список використовується в DataProviderForm3.html як зручність для користувачів. Якщо ви хочете надати цю інформацію вdatasets.xml, початок копіювання поточного списку за замовчуванням в<DEFAULT\_commonStandardNames> вERDDAPР \[домка\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml файл.  

<cacheMinutes>

  • Про нас ** <cacheMinutes> ** до (#через хвилини) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати вік (хвилин) при яких файлах в кеші слід видалити (За замовчуванням=60) й Наприклад:
    <cacheMinutes>60</cacheMinutes>  

В цілому лише файли зображень (Оскільки ті ж зображення часто запитуються) і.ncФайли (тому, що вони повинні бути повністю створеними перед відправленням користувача) подається. Незважаючи на те, що це може здатися, що заданий запит завжди повинен повернути той самий відгук, який не вірний. Наприклад,tabledapзапит, який включає час> деякі час зміниться при надходженні нових даних. І запит на сітчастий апарат, який включає\[останні\]за часовий вимір буде змінюватися при надходженні нових даних для збору даних. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, це було вказано в налаштуваннях.xml, який ще дозволено, але дискурований.  

<конвертуватиInterpolateRequestCSVExample>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#convertinterpolaterequestcsvexample) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xml \[відERDDAP™в2.10\]який містить приклад, який буде показано на веб-сторінці Interpolate. Значення за замовчуванням: jplMURSSТ41/Аналізе\_sst/Білайнар/4 .

<конвертуватиInterpolateDatasetIDVariableList>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#convertinterpolatedatasetidvariablelist) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xml \[відERDDAP™в2.10\]який містить список CSVdatasetID/загальна Приклади імен, які будуть використані в якості пропозицій на сайті Interpolate. Значення за замовчуванням: jplMURSSТ41/Аналізе\_sstй

<JavaScript licenses API Веб-сайт Go1.13.8

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#converttopublicsourceurl) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий містить атрибут "від" і "до", який визначає, як перетворити відповідні локальніsourceUrl (Як правило, IP номер) в громадськістьsourceUrl (доменне ім'я) "від" повинна мати форму "\щось\\[щось\]/. Є можливість 0 або більше цих тегів. Більше інформації див. [<sourceUrl>] (Українська) й Наприклад,
    <convertToPublicSourceUrl from="https://192.168.31.18/" to="https://oceanwatch.pfeg.noaa.gov/" />  

викличе локальнеsourceUrl (як https://192.168.31.18/thredds/dodsC/satellite/BA/ssta/5day )
в громадськістьsourceUrl ( https://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day ) й Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий

Але з причин безпеки і причин, пов'язаних з системою підписки, НЕ ВИКОРИСТАННЯ ЦЬОГО ЧАСУ!
Замість, завжди використовуйте назву публічного домену в<sourceUrl> тег і використання/etc/hosts стілна сервері для перетворення локальних доменних імен в номери IP без використання сервера DNS. Ви можете перевірити, якщо доменне ім'я належним чином перетворюється в номер IP за допомогою: пінг JavaScript licenses API Веб-сайт
 

JavaScript licenses API Веб-сайт Go1.13.8

  • Коли користувач запитує.htmlTableвідповідьERDDAP™, якщо дані в комірці String містять дані:image/png;base64, далі за допомогою base64 закодовано зображення .png,ERDDAP™покаже іконку (Отже, користувач може бачити зображення, якщо він над ним) і кнопки, щоб зберегти текст або зображення на буфер. Ця функція була додана вERDDAP™v2.19 by Марко Альба.

drawLandMask

  • drawLandMask визначає налаштування за замовчуванням, яка контролює коли і як повинна бути намальована земляERDDAP™малює карту. Можна вказати в трьох різних місцяхdatasets.xml (з найнижчим пріоритетом) :

    1. ЯкщоdrawLandMaskвказаний в межах<erddapDatasets> (не підключений до будь-якої конкретної інформації) , потім він визначає значення за замовчуваннямdrawLandMaskдля всіх змінних у всіх даних. Наприклад,
        <drawLandMask>under</drawLandMask>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAPчитатиdatasets.xmlй Якщо цей тег не присутній, значення за замовчуванням знаходиться під.   2. ЯкщоdrawLandMaskвказаний як глобальний атрибут даної Dataset, потім він визначає значення за замовчуваннямdrawLandMaskдля всіх змінних даних, перенаправлення будь-якої нижньої пріоритетної настройки. Наприклад,

    <att name="drawLandMask">under</att>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™перезавантаження, які дані   3. ЯкщоdrawLandMaskвказаний як змінний атрибут у даній таблиці даних, потім він визначає значення за замовчуваннямdrawLandMaskдля цієї змінної в цій таблиці даних, перенаправлення будь-якої точки пріоритетності. Наприклад,

    <att name="drawLandMask">under</att>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™перезавантаження, які дані

Користувач може перевизначити за замовчуванням (де вказано) обравши значення для "Видалити маску землі" з випадаючого списку на веб-сторінці Dataset, або в тому числі &.land= значення у URL, яка вимагає карти зERDDAPй

У всіх ситуаціях існує 4 можливих значень для атрибуту:

  • «під» малює землю перед тим як малює дані на карті. Для сітчастих даних земля з'являється як постійний світло-сірий колір. Для табличних даних, "під" показує топографічні дані над землею та океанами.
  • "до" -- Для скатертних даних «завжди» малює землю після того, як вона малює дані на картах так, щоб вона буде маскувати будь-які дані над землею. Для табличних даних «завдяки» показує ванометрію океану і постійний світло-сірий, де є земля, як і намальовані під даними.
  • «зовнішня лінія» просто виводить контур землі, політичні межі, озера та річки.
  • «зварити» нічого не тягнеться.

<e-mailDiagnosticsToErdData>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (JavaScript licenses API Веб-сайт) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlй Значення тегу може бути істинним (За замовчуванням) або помилково. Якщо правда,ERDDAP™по електронній пошті слід стека до Кріса. Джон в ноа. й (Про насERDDAP™Команда розробників) й Це має бути безпечною та захищеною від конфіденційної інформації (Наприклад, запит) входить в електронну пошту. Це має бути можливість зловити будь-яку непристойність, абсолютно несподівані помилки, які призводять до NullPointerExceptions. В іншому випадку користувач бачить винятки, алеERDDAP™Команда розробників (тому, що ми не знаємо, є проблема, яка повинна бути виправлена) й  

<графBackgroundColor>

  • Про нас ** <ГрафікBackgroundColor> ** до (#граффонколор) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати колір фону за замовчуванням на графіках. Це впливає практично на всі графіки. Не вражаються кілька ситуацій. Колір вказаний в якості 8 цифрових шестигранних значень у вигляді 0xAARRGGBB, де AA, RR, GG і BB є непрозорістю, червоними, зеленими та синими компонентами, відповідно. "0x" є конфіденційним, але не чутливими до шістнадцяткових цифр. Наприклад, повністю непрозорий (Умань) зеленувато-блакитний колір з червоним=22, зелений=88, синій=ee буде 0xff2288ee. Опаковий білий - 0xffffffffff.ff. За замовчуванням є opaque світло синій (0ксфККфф) , яка має перевагу відрізняється від білого кольору, що є важливим кольором в багатьох палітрах, які використовуються для малювання даних. Наприклад,
    <graphBackgroundColor>0xffffffff</graphBackgroundColor>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий

<ipAddressMaxRequests>

  • Про нас ** <ipAddressMaxRequests> ** до (#ipaddressmaxrequests) рідко використовується додаткова тег (перший підтриманийERDDAP™в2.12) в межах<erddapDatasets> мітка вdatasets.xmlяка є частиною системи для обмеження здатності надмірно агресивних правових користувачів і шкідливих користувачів, щоб зробити велику кількість одночасних запитів, які б деградувати продуктивність системи для інших користувачів. ipДодати MaxRequests визначає максимальну кількість одночасних запитів, які будуть прийняті з будь-якої конкретної IP-адреси. Додаткові запити отримають HTTP 429 помилки: занадто багато запитів. Невеликі, статичні файли в erddap/download/ і erddap/images/ НЕ звільняються від цього підрахунку. За замовчуванням 15. Максимально допустимий - 1000, що божевільний - не робити це!ERDDAP™не приймати номер менше 6, оскільки багато законних користувачів (веб-переглядачіWMSКлієнтам) до 6 запитів на час. Про насERDDAP™Щоденний звіт і аналогічна інформація, написана на файл log.txt з кожним великим перевантаженням даних, тепер буде включати в себе тактику запитів за цими IP-адресами за назвою "Запитувальник IP-адреса (Too Багато запитів) ". Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий

В розділі «Маджор LoadDatasets Time Series» статусу.html входить стовпчик «tooMany», який перераховує кількість запитів, які перевищили ipAddressMaxRequests налаштування і, таким чином, бачив помилку «То багато запитів». Це дозволяє легко бачити, коли є активні надмірно агресивні законні користувачі і шкідливі користувачі, так що ви можете (необов'язково) Перегляд у файлі Log.txt і вирішіть, якщо ви хочете blacklist цих користувачів.

Немає нічого особливо неправильного з налаштуванням цього до більшого числа. До вас. Але робити це дозволяє / обдурити людей, щоб налаштувати системи, які використовують велику кількість ниток для роботи на проектах, а потім дає їм не зворотний зв'язок, що вони роблять не отримувати їх ніякої вигоди.

<ipAddressMaxRequestsActive>

  • Про нас ** <ipAddressMaxRequestsАктивний> ** до (#ipaddressmaxrequestsactive) рідко використовується додаткова тег (перший підтриманийERDDAP™в2.12) в межах<erddapDatasets> мітка вdatasets.xmlяка є частиною системи для обмеження здатності надмірно агресивних правових користувачів і шкідливих користувачів, щоб зробити велику кількість одночасних запитів, які б деградувати продуктивність системи для інших користувачів. ipAddressMaxRequestsActive визначає максимальну кількість одночасних запитів, які будуть активно оброблятися з будь-якої конкретної IP-адреси. Додаткові запити сидять у черзі до обробки попередніх запитів. Невеликі, статичні файли в erddap/download/ і erddap/images/ звільняються від цього підрахунку і пов'язаного з обертуванням. За замовчуванням 2. Максимально допустимий - 100, що божевільний - не робити це! Ви можете встановити це до 1, щоб бути суворими, особливо якщо у вас є проблеми з надмірно агресивними або шкідливими користувачами. Користувачі все ще швидко отримають всі дані, які вони вимагають (до ipAddressMaxRequests) , але вони не зможуть захопити системні ресурси. Ми не радимо встановити це на більший номер, оскільки він дозволяє надмірно агресивним законним користувачам і шкідливим користувачам, щоб домінуватиERDDAP- переробна потужність. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий  

<ipAddressUnlimited>

  • Про нас ** <ipAddressНеобмежена> ** до (#ipaddressнеобмежена) рідко використовується додаткова тег (перший підтриманийERDDAP™в2.12) в межах<erddapDatasets> мітка вdatasets.xmlяка є частиною системи для обмеження здатності надмірно агресивних правових користувачів і шкідливих користувачів, щоб зробити велику кількість одночасних запитів, які б деградувати продуктивність системи для інших користувачів. ipAddressUnlimited - це окремий список IP-адрес, які ви хочете дозволити необмежений доступ до вашого облікового записуERDDAPй Дивитися в журналі. txt файл, щоб побачити, який формат вашого сервера використовується для IP-адрес. На деяких серверах IP-адреси будуть в форматі #.#.#.#. (де # є ціле з 0 до 255) #:#:#:#:#:#:#:# й Запити на цей список не підлягають або ipAddressMaxRequests або ipAddressMaxRequestsАктивні налаштування. Це може бути вториннимERDDAP™або для певних користувачів або серверів у вашій системі.ERDDAP™завжди додає " (НевідомийIPAddress) ", якіERDDAP™Використовуйте, коли IP-адреса запиту не може бути визначена, наприклад, для інших процесів, що працюють на одному сервері. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий

Якщо з якоїсь причини всі запити користувачів отримують повідомлення про помилку "Почас очікування ваших інших запитів до процесу.", то ви можете вирішити проблему, додавши IP-адресу користувача до ipAddressUnlimited list, застосувати цю зміну, потім видалити її з цього списку.

<навантаженняDatasetsMinutes>

  • Про нас ** <навантаженняDatasetsMinutes> ** до (#завантажитиdatasetsminхвили) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати мінімальний час (хвилин) між великим навантаженням Дані (колиERDDAP™репроцесиdatasets.xml, в тому числі перевірка кожного набору даних, щоб побачити, чи потрібно перезавантажити його відповідно до його перевантаження КожнаNMinutes налаштування, за замовчуванням=15) й Наприклад:
    <loadDatasetsMinMinutes>15</loadDatasetsMinMinutes>  

Якщо заданий запуск навантаженняДатасет займає менше цього часу, навантажувач просто багаторазово виглядає на флагманському каталозі та/або сну до тих пір, поки не пропущений час. За замовчуванням 15 хвилин, які повинні бути тонкими для всіх. Єдиним недоліком для налаштування цього до меншого числа є те, що він збільшить частоту, якаERDDAP™ретрісні дані, які мають помилки, які запобігають їх завантаженню (Наприклад, віддалений сервер) й Якщо є багато таких даних, і вони часто ретестовані, джерело даних може розглянути її стерження/з'єднання. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, це було вказано в налаштуваннях.xml, який ще дозволено, але дискурований.  

<навантаженняDatasetsMaxMinutes>

  • Про нас ** <навантаженняDatasetsMaxMinutes> ** до (#завантажитиdatasetsmaxхвили) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати максимальний час (хвилин) велике навантаження Досягнення даних дозволяється приймати (до навантаження Нитка даних, оброблена як "розкладений" і переривається) (За замовчуванням=60) й Наприклад:
    <loadDatasetsMaxMinutes>60</loadDatasetsMaxMinutes>  

В цілому, це повинно бути встановлено принаймні двічі, до тих пір, поки ви дійсно думаєте, що перезавантажити всі дані (кумулятивно) слід брати (Оскільки комп'ютери та мережі іноді повільніше, ніж очікувані) Це завжди має бути набагато довше, ніж навантаженняDatasetsMinutes. За замовчуванням 60 хвилин. Довгий час. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, це було вказано в налаштуваннях.xml, який ще дозволено, але дискурований.  

<Увійти

  • Про нас ** <Увійти ** до (#логів) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати, скільки діагностичних повідомлень надсилаються в файл log.txt. Він може бути встановленим для "перегріву" (Найменші повідомлення) , "Ам" (За замовчуванням) , або "все" (Найбільші повідомлення) й Наприклад:
    <logLevel>info</logLevel>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, це було вказано в налаштуваннях.xml, який ще дозволено, але дискурований.  

<частковийRequestMaxBytes> і<частковийRequestMaxCells>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 до (#partialrequestmaxbytes-and-partialrequestmaxcells) й [ <частковийRequestMaxCells> ** до (#partialrequestmaxbytes-and-partialrequestmaxcells) рідко використовуються теги OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlй При можливості (і це не завжди можливо) йERDDAP™розбиває великі запити даних на шматки для закріплення пам'яті.

З 32 бітJava, в спрощеному розумінні максимальна кількість одночасних великий запити грубо 3/4 пам'яті доступні (-Xmx значення передано в Tomcat) розділений на розмір горбка (Наприклад, 1200 MB / 100 MB => 12 запитів) й Інші речі вимагають пам'яті, тому фактична кількість запитів буде менше. Не завжди можливо. Так один величезний або кілька дуже великих одночасних незламних запитів може викликати проблеми на 32 бітJavaй

З 64 бітJava, значення -Xmx може бути набагато більшим. Так пам'ять значно менше, швидше за все, є обмеженням.

Ви можете перевизначити розмір за замовчуванням, визначивши ці теги вdatasets.xml (з різними значеннями, ніж показано тут) : Для сіток:<JavaScript licenses API Веб-сайт Go1.13.8</partialRequestMaxBytes> Для столів:<JavaScript licenses API Веб-сайт</partialRequestMaxCells>

частковийRequestMaxBytes є найбільшою кількістю байтів для запиту часткової сітки (шматочок загального запиту) й За замовчуванням=100000000 (10^8) й Великі розміри не обов'язково краще (і не перейде більше 500 Мб тому, що це обмеження за замовчуванням THREDDS дляDAPВідповіді) й Але більші розміри можуть знадобитися менше доступу (мисленняERD's супутникові дані з кожного разу точки в окремому файлі - це краще отримати більше даних з кожного файлу в кожному частковому запиті) й

частковийRequestMaxCells є найбільшою кількістю клітин (nRows \* nColumns в таблиці даних) для часткового запиту даних TABLE (шматочок загального запиту) й За замовчуванням = 100000. Великі розміри не обов'язково краще. Вони призводять до більш тривалого очікування початкової партії даних з джерела.

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, ці були вказані в налаштуваннях.xml, який ще дозволено, але дискуровані.  

<запитBlacklist>

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#requestчорний список) ОПЦІЇв межах<erddapDatasets> мітка вdatasets.xmlякий містить список іменних IP-адрес, які будуть чорними. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий
    • Це може бути використана для відведеннявідмова від атаки служби, похилого вікуВеб-сайт, або будь-який інший тип неприємного користувача.
    • Публікація користувача -- ЯкщоERDDAP™уповільнює до коливки або замерзання/стопок, причина часто є неприємним користувачем, який працює більше одного скрипта одночасно і / або робить велику кількість дуже великих, надзвичайно неефективних або недійсних запитів, або одночасних запитів. ДивитисяJavaScript licenses API Веб-сайт Go1.13.8щоб побачити, чи це справа і знайти нумерну IP-адресу неприємного користувача. Якщо це проблема, ви повинні, ймовірно, чорний список, який користувач.

КолиERDDAP™отримує запит від blacklisted IP-адреси, він поверне HTTP-повідомлення 403: Заборонений. Підприємець текстового повідомлення про помилку заохочує користувачів надсилати вам,ERDDAPадміністратору, для виконання проблем. Якщо вони приймають час, щоб читати повідомлення про помилку (багато, очевидно, не) і зв'язатися з вами, ви можете потім працювати з ними, щоб отримати їх, щоб запустити тільки один скрипт в той час, зробити більш ефективні запити, виправити проблеми в їх сценарії (наприклад, запитувати дані з віддаленого набору даних, які не можуть реагувати перед тим, як пережити час) , або що інше було джерелом неприємностей.

Користувачі часто просто не знають, що їхні запити є неприємними. Вони часто не знають помилок, грубі неефективності, або інші проблеми зі своїми скриптами. Вони часто думають, що томуERDDAP™пропонує дані безкоштовно, що вони можуть запитати стільки даних, скільки вони хочуть, наприклад, за допомогою декількох скриптів або за допомогою декількох потоків одночасно.

  • Ви можете пояснити, що коженERDDAP™, тепер важливо, як великі і потужні, має скінченні ресурси (Час процесора, жорсткий диск I / O, пропускна здатність мережі тощо.) і це не справедливо, якщо один користувач запитує дані таким чином, що переповнений іншим користувачам або переплатникамиERDDAPй
  • Після того, як користувач знає, як зробити 2 одночасних запитів, вони часто не бачать причин, щоб зробити 5, 10 або 20 одночасних запитів, так як додаткові запити, вартість яких нічого не коштує. Це як симетрична війна: тут наступна зброя має величезну перевагу (нульова вартість) над оборонною зброєю (скінченна установка з реальними витратами) й
  • Звернувшись до них, що є зменшення повернення, щоб зробити більше і більше одночасних запитів; додаткові запити просто додатково заблокувати інші запити користувачів; вони не мають величезного покращення для них.
  • Змінити їх, що є іншими користувачами (як випадкових користувачів, так і інших користувачів, що працюють сценарії) , щоб вони не булиERDDAPРесурси
  • З’ясуйте, що індуковані користувачі tech-гіганти, щоб очікувати нескінченних ресурсів від веб-служб. В той час як є способи встановленнясітки / причепи / вигодовуванняERDDAPйщоб зробитиERDDAP™система з більшістю ресурсів, більшістьERDDAP™Адміністратори не мають грошей або сили, щоб встановити такі системи, і така система все ще буде скінченна. АфішаERDнаприклад, є одна людина (Я) НаписанняERDDAP™, введення двохERDDAPй (за допомогою мого боса) , і управління кількома джерелами даних, всі з річним апаратним бюджетом $0 (ми спираємось на умови надання послуг для оплати обладнання) й Це не Google, Facebook, Amazon, і т.д. з 100-ма інженерами, і мільйонами доларів доходів для перероблення в будь-які більші системи. І ми не можемо просто пересуватисяERDDAP™до, наприклад, Amazon AWS, оскільки витрати на зберігання даних є великими, а витрати на зберігання даних є великими та змінними, в той час як наш бюджет для зовнішніх послуг фіксований $0.
  • Мій запит для користувачів: для несвоєчасних запитів (який знаходиться далеко від найпоширенішого випадку) , їх система повинна просто зробити запит одночасно. Якщо запити чутливі (наприклад, кілька .pngs на веб-сторінці, кілька плиток дляWMSКлієнт і т.д.) , то, можливо, 4 одночасних запитів повинні бути максимальними (і просто за дуже короткий час) й
  • Якщо ви поясните ситуацію для користувача, більшість користувачів зрозуміють і готові зробити необхідні зміни, щоб ви могли видалити свою IP-адресу з чорного списку.  
  • Щоб blacklist користувач, додайте свою неоднорідну IP-адресу до списку IP-адрес у список адрес у форматі comma-separated<JavaScript licenses API Веб-сайтdatasets.xmlфайл. Щоб знайти неприємну IP-адресу користувача, див. уERDDAP™ bigParentПублічний /logs/log.txt файл ( bigParentПублічний вказаний вНалаштування.xml) щоб побачити, чи є це випадок і знайти цю IP-адресу користувача. IP-адреса для кожного запиту вказана на лініях, починаючи з "{{{{{{{{{{{{{{{{{{{{{{{{{{{'{{{‘'‘''''''''''''''''''''''''' Пошук по "Помічник" допоможе вам знайти проблеми, такі як недійсні запити.
  • Ви також можете замінити останній номер в IP-адресі з\(наприклад, 202.109.200.\) заблокувати діапазон IP-адрес, 0-255.
  • Ви також можете замінити останні 2 номери в IP-адресі з\й\ (Наприклад, 121.204.\й\) заблокувати широкий діапазон IP-адрес, 0-255.0-255.
  • Наприклад,
    <requestBlacklist>98.76.54.321, 202.109.200.\\*, 121.204.\\*.\\*</requestBlacklist>
  • Не потрібно перезапуститиERDDAP™для змін<запитBlacklist> прийняти ефект. Зміни будуть виявлені в наступний разERDDAP™перевіряє, чи потрібно перезавантажити будь-які дані. Або, ви можете прискорити процес, відвідавшиКомплектDataset Прапор URLдля будь-яких даних.
  • Ваше ім'яERDDAP™щоденний звіт включає в себе список/час від найбільш активних допущених і заблокованих запитів.
  • Якщо ви хочете дізнатися, який домен/інституція пов'язана з числовою IP-адресою, ви можете використовувати безкоштовний, зворотний веб-сервіс DNS, як https://network-tools.com/ й
  • У випадку, якщо він має сенс заблокувати певних користувачів на вищому рівні, наприклад, шкідливі користувачі. Наприклад, ви можете заблокувати свій доступ до всіх на сервері, не простоERDDAPй На Linux можна використовувати один методтабличкий Наприклад, ви можете додати правило, що заблокувати все, що надходить з 198.51.100.0 з командуванням iptables -I INPUT -s 198.51.100.0 -j DROP

<уповільненняDownTroubleMillis>

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#повільнення) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий містить ціле визначення кількості мілісекундів (За замовчуванням=1000) Щоб призупинити відповіді на всі невдалі запити, наприклад, невідомі дані, запитайте занадто великий, користувач на чорний список. Наприклад:
    <slowDownTroubleMillis>2000</slowDownTroubleMillis>

Якщо скрипт робить один запит відразу після іншого, то він може швидко зробити один поганий запит після іншого. За допомогою цього параметра ви можете уповільнити скрипт відмовиERDDAP™не затоплюється з поганими запитами. Якщо людина робить поганий запит, вони не помітили цю затримку. Рекомендації:

  • Якщо неприємності є розподіленим відмовою від служби (ДДОС) атака від 100 + атакуючих, встановити це на менший номер (100?) й Повільніть їх всі вниз занадто довго призводить до занадто багато активних ниток.
  • Якщо неприємності від 1-10 джерел, встановіть це до 1000 мс (За замовчуванням) , але більший номер (як 10000) також розумний. Уповільнює їх, так що відходи менше мережевих ресурсів. Також 1000 мс або так не завадить користувачам людям, які роблять поганий запит.

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий  

<підпискаEmailBlacklist>

  • Про нас ** <підписка Список електронної пошти> ** до (#Підписання електронної пошти) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий містить список адрес електронної пошти, які відразу чорнилосистема підпискиНаприклад,
    <subscriptionEmailBlacklist>bob@badguy.com, john@badguy.com</subscriptionEmailBlacklist>  

Це випадок-інтенсивна система. Якщо адреса електронної пошти додана до цього списку, якщо ця електронна адреса має підписки, підписка буде скасована. Якщо адреса електронної пошти в списку намагається підписатися, запит буде відмовлено. Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий  

Стандартний текст

  • Стандартний текст --- Є кілька тегів OPTIONAL (більшість рідко використовуються) в межах<erddapDatasets> мітка вdatasets.xmlвказати текст, який з'являється в різних місцяхERDDAPй Якщо ви хочете змінити текст за замовчуванням, скопіюйте існуюче значення з тегу однойменного імені в домка /webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util.messages.xml Увійтиdatasets.xml, потім змінити вміст. Перевага про те, що вони маютьdatasets.xmlВи можете вказати нові значення в будь-який час, навіть колиERDDAP™працює. Будь-які зміни значень цих тегів будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий Теґи описують їх призначення, але див. вміст за замовчуванням в повідомленнях.xml для глибокого розуміння.

    • <СтандартЛіцензія>

    • <стандартКонтакти

    • <СтандартDataLicenses>

    • <СтандартВипробувательOfEndorsement>

    • <СтандартВипробувательOfExternalLinks>

    • <СтандартЗагальнийВипробування>

    • <стандарт Конфіденційність

    • <ПочатокHtml5>

    • <StartBodyHtml5> це хороший тег для зміни, щоб налаштувати зовнішній вигляд кожної веб-сторінки у вашій сторінціERDDAPй Можливо, ви можете використовувати це, щоб легко додати тимчасове повідомлення на сайтіERDDAP™Головна (Наприклад, "Перевірити новий JPL MUR SST v4.1 dataset ..." або "ЦеERDDAP™буде автономно для технічного обслуговування 2019-05-08T17:00 PDT через 2019-05-08T20:00:00 PDT.") й Один кальку, що надягає цей тег вdatasets.xmlє: коли ви перезавантажтеERDDAP, перший запитERDDAP™повернемо старт за замовчуванням BodyHtml5 HTML, але кожен наступний запит буде використовувати початокBodyHtml5 HTML, вказаний вdatasets.xmlй

    • <Документація Html> це хороший тег для зміни, щоб налаштувати опис вашогоERDDAPй Зверніть увагу, що ви можете легко змінити це, щоб додати тимчасове повідомлення на головній сторінці (Наприклад, "ЦеERDDAP™буде автономно для технічного обслуговування 2019-05-08T17:00 PDT через 2019-05-08T20:00:00 PDT.") й

    • <EndBodyHtml5>

ДоERDDAP™v2.00, ці були вказані в налаштуваннях.xml, який ще дозволено, але дискуровані.  

<незвичайний Діяльність

  • Про нас ** <незвичайність> ** до (#бездіяльність) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати максимальну кількість запитів між двома рядами LoadDatasets, які вважається нормальним (За замовчуванням=10000) й Якщо номер перевищений, електронна пошта надсилається на електронну пошту (як зазначено в налаштуваннях.xml) й Наприклад:
    <unusualActivity>10000</unusualActivity>  

Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий ДоERDDAP™v2.00, це було вказано в налаштуваннях.xml, який ще дозволено, але дискурований.  

<оновленняMaxEvents>

  • Про нас ** <оновленняMaxEvents> ** до (#updatemaxevents) рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlвказати максимальну кількість подій зміни файлів (За замовчуванням=10) що буде оброблятися [<JavaScript licenses API Веб-сайт (#updateeverynmillis, Україна) система перед перевантаженням даних замість. Наприклад,
    <updateMaxEvents>10</updateMaxEvents>  

Система UpdateEveryNMillis призначена для запуску дуже швидко прямо перед запитом користувача. Якщо є багато подій зміни файлів, то, ймовірно, це не може швидко працювати, тому замість того, щоб викликати дані, які необхідно перезавантажити. Якщо виERDDAP™працює з даними, які повинні бути збережені до дати, навіть якщо є зміни до великої кількості файлів даних, ви можете встановити це до більшого числа (100?) й

<користувача та gt;

  • Про нас ** <Головна > ** до (#користувач) є тегом OPTIONAL в межах<erddapDatasets> мітка вdatasets.xmlякий визначає ім'я користувача користувача, пароль (якщо автентифікація=студент) й ролі (список категорій) й Використання імені користувача та пароля дещо залежить від значення [<автентифікації> (/документи/сервер-адміністрування/адміністрування-інформаційна інформація#автентифікація) у васERDDAPEnglish, Українська, Français...
    • Це частинаERDDAPРсистема безпекидля обмеження доступу до деяких даних до деяких користувачів.
    • Зробіть окремий<користувача> тег для кожного користувача. Необов'язково, якщо автентифікація=oauth2 ви можете налаштувати два<Головна > теги для кожного користувача: один для входу користувача через Google, один для того, як користувач журналів через Orcid, імовірно, з однаковими ролями.
    • Якщо немає<користувач> тег для клієнта, s/he зможе отримати доступ до публічних даних, тобто даних, які не мають [<Доступно (#додатково) мітка.
    • Ім'я користувача Для автентифікації=custom, ім'я користувача зазвичай є поєднанням літер, цифр, андерсонів і періодів. Для автентифікації=email, ім'я користувача - адреса електронної пошти користувача. Будь-яка адреса електронної пошти. Для автентифікації: Google, ім'я користувача, повна адреса електронної пошти користувача. Це включає облікові записи Google-managed@noaa.govрахунки. Для ідентифікації=orcid, ім'я користувача - номер облікового запису користувача (з dashes) й Для автентифікації=oauth2, ім'я користувача - повна адреса електронної пошти користувача або номер облікового запису користувача (з dashes) й
    • Увійти Для автентифікації=email, google, orcid, або oauth2, не вкажіть атрибут пароля. Для ідентифікації=custom необхідно вказати атрибут пароля для кожного користувача.
      • паролі, які користувачі надходять, є конфіденційними і повинні мати 8 або більше символів, так що вони важче зламати. На сьогоднішній день навіть 8 символів можна швидко і недорого розтріскувати, використовуючи кластер комп'ютерів на AWS.ERDDAP™тільки застосовує мінімум 8-марактора, коли користувач намагається увійти (не коли користувач намагається увійти)<User> tag обробляється, тому що код тільки бачить хеш-дайджест пароля, а не звичайний пароль.
      • Налаштування.xml<JavaScript licenses API Веб-сайт визначає, як зберігаються паролі в<Головна > теги вdatasets.xmlй Для підвищення безпеки опції:
        • МД5 (Не використовуйте це!) -- для атрибута пароля вкажіть MD5 хеш-дайджест пароля користувача.
        • УЕПМД5 (Не використовуйте це!) -- для атрибута пароля, вкажіть MD5 хеш-дайджест Ім'я користувача :ERDDAP: Увійти й Ім'я користувача та "ERDDAPВикористовується длясіль значення хешу, що робить його більш складними для декодування.
        • СХА256 (не рекомендується) -- для атрибута пароля вкажіть SHA-256 хеш-дайджест пароля користувача.
        • УПСХА256 (За замовчуванням, рекомендований паролемВикористання. Але набагато краще: використовувати Google, орхідея або oauth2 варіанти автентифікації.) -- для атрибута пароля, вкажіть SHA-256 хеш-дайджест Ім'я користувача :ERDDAP: Увійти й Ім'я користувача та "ERDDAP"Використовується для засмаги, що робить його більш складним для декодування.
      • У Windows ви можете генерувати значення пароля MD5 за допомогою завантаження програми MD5 (якМД5) і використання (Приклад) : md5 -djsmith:ERDDAP: РеальнийPassword
      • На Linux/Unix ви можете генерувати значення MD5 за допомогою вбудованої програми md5sum (Приклад) : echo -n "jsmith:ERDDAP: РеальнийPassword « » » » » » » » » » » » » » »|мд5сум
      • Зберігаються паролі звичайного тексту. Утримані форми паролів MD5 і UEPMD5 не є чутливими.
      • Приклад (Використання UEPMD5) , якщо ім'я користувача="jsmith" і пароль="myPassword",<Теги:
            <user username="jsmith"  
password="57AB7ACCEB545E0BEB46C4C75CEC3C30"
roles="JASmith, JASmithGroup" />

де генерується збережений пароль md5 -djsmith:ERDDAPТеґи

  • ролі, для яких користувач уповноважений. Будь<dataset> може мати [<Доступно (#додатково) тег, який списує ролі, які допускаються до доступу до даних. Для даного користувача та даної інформації, якщо одна з ролей у списку ролей користувачів відповідає одному з ролей у списку даних<ДоступноВ> ролі, після чого користувач уповноважений на доступ до даних.

Кожен користувач, який записує в автоматичному режимі\[Увійти У\], чи є<користувача> тег для нихdatasets.xmlчи ні. Отже, якщо наведено дані

            <accessibleTo>\\[anyoneLoggedIn\\]</accessibleTo>  

потім будь-який користувач, який зареєстрований у буде уповноважений доступу до даних, навіть якщо немає<користувача> тег для нихdatasets.xmlй

  • Будь-які зміни значення мітки будуть діяти наступного разуERDDAP™читатиdatasets.xml, в тому числі у відповідь на даніУвійтий  

<шляхРегекс&ГТ;

  • Про нас ** <шляхРежекс> ** до (Українська) дозволяє вказати звичайний вираз, який лімітує які шляхи (які subdirectories) буде включена в Dataset. За замовчуванням .\*, що відповідає всім шляхам. Це рідко використовується, рідко потрібно, ОПЦІОНАЛЬНИЙ тег дляEDDGridВідFiles datasets, EDDTableЗ альбомуFiles datasets та декількох інших типів даних. Однак, коли вам потрібно, вам дійсно потрібно.

Щоб зробити цю роботу, потрібно бути дійсно добре з регулярними виразами. Дивитися цеregex документаціяіregex підручникй Зокрема, потрібно знати про групи захоплення (щось всередині дужок) Символ "або"|". Разом, це дозволяє вказати будь-яку кількість опцій, наприклад, (варіант1|варіант2|варіант3) й Також будь-який з варіантів може бути нічого, наприклад, (|варіант2|варіант3) й Крім того, потрібно знати, що групи захоплення можуть бути віднесені, тобто будь-який варіант у групі захоплення може містити іншу групу захоплення, наприклад,,, (|варіант2 (|варіант2 б|опція2c) |варіант3) що говорить про те, що варіант2 може бути записаний ні на що, або варіант2b, або варіант2c. Для pathRegexes кожен параметр буде одним ім'ям папки, який слідує /, наприклад, бар / .

Складна частина шляхуРежекс: КолиERDDAP™Відносно настає дерево каталогів, шляхРежекс повинен прийняти всі шляхи, які він з'являється на шляху до каталогів з даними. Regex з невидимими групами захоплення є хорошим способом вирішення цього.

Приклад: Припустимо, ми маємо наступні структури каталогів:

/foo/bar/D0001/a/\\*.nc  
/foo/bar/D0001/b/\\*.nc
/foo/bar/D0002/a/\\*.nc
/foo/bar/D0002/b/\\*.nc
...
/foo/bar/E0001/a/\\*.nc
...

і вказаний файлПредагування є / foo/bar/, і ми просто хочемо, щоб.ncФайли в D\[0-9\]{4}/a/ subdirectories. Розчин - встановити шляхРежекс в / foo/bar/ (|Р\[0-9\]0 товар(ов) - 0.00 € (|а/) )
Що говорить: Шлях повинен починатися з / foo/bar/ Що може слідувати нікому або D\[0-9\]0 товар(ов) - 0.00 € Що може слідувати нікому, а/

Так, шляхРежекс може бути неймовірно складним для формування. Якщо ви застрягнете, попросіть комп'ютер програміст (Найближча річ в реальному світі до чарівних розливів?) або відправити лист на Кріс. Джон на noaa.gov.

<dataset>

  • Про нас ** <датасет> ** до (Українська) ОПЦІЇ (але завжди використовується) тег в межах<erddapDatasets> мітка вdatasets.xml(якщо ви включите всю інформацію)<датасет> і</dataset>) повністю описує один набір даних. Наприклад,
    <dataset type="EDDGridFromDap" datasetID="erdPHssta8day" active="true"> ... </dataset>  

У вас є будь-яка кількість тегів, які задають даніdatasets.xmlфайл. Три атрибути MAY з'являються в межах<теги:  

  • Сортувати з Тип « » » » » » » » » » » » » » » є атрибутом REQUIRED в межах<датасет> тег вdatasets.xmlякий визначає тип даних (наприклад, чи є цеEDDGrid/розміщений або EDDTable/tabular dataset) і джерело даних (наприклад, база даних, файли або віддаленийOPeNDAPсервер) й Дивитися Перелік типів даних й  

мета Ід

  • datasetIDй напляскване « » » » » » » » » » » » » » » є атрибутом REQUIRED в межах<датасет> тег, який призначає короткий (зазвичайно)<15 персонажів), унікальний, ідентифікуючий ім'я на Dataset.
    • Про насdatasetIDs MUST бути листом (А-З, а-з) далі будь-яка кількість А-З, a-z, 0-9, і \_ (але краще, якщо<32 символи всього).
    • Дата Ідентифікатори є конфіденційними, але DON'T створюють дваdatasetIDs, які відрізняються лише у верхній / нижній літер. Причини виникнення проблем на комп'ютерах Windows (Ваше та/або комп’ютер користувача) й
    • Кращі практики: Ми рекомендуємо використовуватиУкраїнський Випадковийй
    • Кращі практики: Ми рекомендуємо, щоб перша частина була акронімом або абревіатурою імені початкової установи та другою частиною була акронімом або абревіатурою назви даних. Коли це можливо, ми створюємо назву, яка відображає назву джерела для набору даних. Наприклад, ми використовувалиdatasetIDУкраїнськаssta8day" для збору данихNOAA NMFS SWFSCВідділ досліджень навколишнього середовища (ERD) який позначений джерелом, щоб бути супутниковим / PH /sst8 день.
    • Якщо ви зміните ім'я даних, старі дані (з давньою назвою) буде жити вERDDAPй Це "orphan" датасет, оскільки специфікація для нього вdatasets.xmlтепер пішов. Для цього необхідно мати справу:
      1. ДляERDDAP™v2.19 і пізніше, вам не потрібно нічого робити.ERDDAP™автоматично видаліть ці сироти.
      2. ДляERDDAP™v2.18 і раніше, потрібно зробити щось для видалення сирітних даних: Зробіть активні дані, наприклад,
                <dataset type="EDDTableFromNcFiles" datasetID="*theOldName*" active="false" />  

Після наступного основного навантаження Дані, Ви можете видалити цей тег після старіння даних неактивний.  

активний

  • активний відпочинок болеан « » » » » » » » » » » » » » » є атрибутом OPTIONAL в межах<датасет> тег вdatasets.xmlщо вказує на те, чи активується датасет (право на використанняERDDAP) чи ні.
    • Реальні цінності (За замовчуванням) і помилково.
    • Оскільки стандарт true, вам не потрібно використовувати цей атрибут до тих пір, поки ви хочете тимчасово або назавжди видалити ці дані зERDDAPй
    • Якщо ви просто видалите активні дані, які ви використовуєтеdatasets.xml, активні даніERDDAP™але ніколи не буде оновлено. Такий набір даних буде «норфаном» і буде перерахований таким чином на статус. html веб-сторінки прямо нижче списку даних, які не змогли завантажити.
    • Якщо ви налаштуєте активний спосіб життя,ERDDAP™буде деактивувати дані, що в наступний раз він намагається оновити дані. Коли ви це робите,ERDDAP™не видається жодної інформації, яку він може зберігати про дані, і, звичайно, не робить нічого до фактичних даних.
    • Щоб видалити дані зERDDAP™, дивВидалення даних Forceй  

** Кілька міток може з'явитися між<датасет> і</dataset> теги. **
Є деякі варіації, в яких теги допускаються за допомогою яких типів даних. Переглянути документацію для конкретноготип данихдля деталей.

<доступні До&гт;

  • Про нас ** <доступні До> ** до (#додатково) є тегом OPTIONAL в межах<датасет> тег, який визначає список категорійрольиякі можуть мати доступ до даних. Наприклад,
    <accessibleTo>RASmith, NEJones</accessibleTo>  
    • Це частинаERDDAPРсистема безпекидля обмеження доступу до деяких даних до деяких користувачів.
    • Якщо цей тег не присутній, всі користувачі (навіть якщо вони не ввійшли) буде мати доступ до даних.
    • Якщо цей тег присутній, цей набір даних буде лише видимим і доступним для зареєстрованих користувачів, які мають одну з зазначених ролей. Цей набір даних не буде видимим для користувачів, які не зареєстровані.
    • Кожен користувач, який записує в автоматичному режимі\[Увійти У\], чи є<користувача> тег для нихdatasets.xmlчи ні. Отже, якщо наведено дані
        <accessibleTo>\\[anyoneLoggedIn\\]</accessibleTo>  

потім будь-який користувач, який зареєстрований у буде уповноважений доступу до даних, навіть якщо немає<користувача> тег для нихdatasets.xmlй  

<графікиAccessibleTo>

  • Про нас ** <ГрафікиДоступна> ** до (#графи) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlяка визначає, чи доступна для публічних даних графіка та метаданих. Для того, щоб частково перевизнати дані [<Доступно (#додатково) налаштування. Допускається значення:
    • Авто -- Це значення (або відсутність<ГрафікиAccessibleTo> tag for the dataset) дозволяє отримати доступ до графіків та метаданих з Dataset, імітувати дані<ДоступнийTo> налаштування. Таким чином, якщо датасет є приватним, його графіки та метадані будуть приватні. І якщо метадані даних є публічними, його графіки та метадані будуть публічними.
    • громадськість --- Цей параметр робить графи та метадані, доступні для будь-якого, навіть користувачів, які не зареєстровані, навіть якщо датасет інший приватний, оскільки він має<доступнийTo> тег.  

<доступні ViaFiles>

Якщо значення вірно,ERDDAP™зробить це таким чином, щоб користувачі могли переглядати та завантажувати файли даних, що містять дані, що містяться у даних, використовуючи файли даних, що містяться у даних, використовуючи ці даніERDDAPР"files"системий Дивитися"files"системадокументаціядля отримання додаткової інформації.

Значення за замовчуванням<доступніViaFiles> з<JavaScript licenses API Веб-сайт Go1.13.8 вНалаштування.xmlй Він має значення за замовчуванням false, але ми рекомендуємо вам додати цей тег на налаштування.xml з значенням true.

Рекомендації -- Ми рекомендуємо зробити всі відповідні дані, доступні за допомогою файлової системи<JavaScript licenses API Веб-сайт Go1.13.8 Серед інших причин,"files"Система дозволяє користувачам легко переглядати файли, які доступні, і коли вони останні змінилися, таким чином, це легко для того, щоб підтримувати власну копію всієї бази даних. Якщо ви зазвичай не хочете зробити дані доступні через файлову систему, встановити<JavaScript licenses API Веб-сайт Go1.13.8 У будь-якому випадку, просто використовуйте<ДоступніViaFiles> для декількох даних, які є винятком загального переліку політики, встановлених загальними<JavaScript licenses API Веб-сайт Go1.13.8 (наприклад, при використанні даних.ncзФайли, які не дуже корисні для користувачів) й  

<доступні Про насWMS>

  • Про нас ** <доступні Про насWMSГоловна ** до (#додаткова) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlдля всіхEDDGridПідкласи. Це може мати значення true (За замовчуванням) або помилково. Наприклад,
    <accessibleViaWMS>true</accessibleViaWMS>  

Якщо значення помилкове,ERDDAPРWMSСервер не буде доступний для цього набору даних. Це зазвичай використовується для даних, які мають деякі значення довготи більше 180 (що технічно недійсним дляWMSПослуги) , і для яких ви також можете запропонувати варіант набору даних з довгостроковими значеннями повністю в діапазоні -180 до 180 черезEDDGridкод товару: 180й Якщо значення вірно,ERDDAP™намагатися зробити дані, доступні черезERDDAPРWMSсервер. Але якщо датасет повністю не підходить дляWMS (Наприклад, не існує довготи або достовірності даних) , після чого датасет не буде доступна черезERDDAPРWMSсервер, незалежно від цього налаштування.  

<Додати Сортування Де&ГТ;

  • Про нас<JavaScript licenses API Веб-сайт Go1.13.8 (#addvariablesде) є тегом OPTIONAL в межах<dataset> тег для всіх EDDTable datasets.

Запити на будь-який EDDTable Dataset може включати &add Сортування Де придбати (« » » » » » » » » » » » » » » атрибути Ім'я "," атрибути Ціна « » » » » » » » » » » » » » ») , що говоритьERDDAP™додавати всі змінні дані, де JavaScript licenses API Веб-сайт до списку бажаних змінних. Наприклад, якщо користувач додає &add Сортування Де придбати (« » » » » » » » » » » » » » »ioos\_category","Вінд") до запиту,ERDDAPдодавати всі змінні дані, які маютьioos\_category=Змінити атрибут до списку змінних запиту (Наприклад, вітерСпечений, вітерДиреція, вітрГустСпечений) й атрибути Ім'я і атрибути Ціна є чутливими.

Уdatasets.xml, якщо роз'єм dataset.xml для Dataset має

<addVariablesWhere>*attributeNamesCSV*<addVariablesWhere>  

наприклад,

<addVariablesWhere>ioos\\_category,units<addVariablesWhere>  

Форма доступу даних (Веб-сайт .html) для набору даних буде включати віджет (для кожного атрибутаName в списку кома-сепарованих товарів) прямо нижче списку змін, які дозволяють користувачам вказати значення атрибуту. Якщо користувач вибирає значення атрибуту для одного або декількох імен атрибутів, вони будуть додані в запит через &add Сортування Де придбати (« » » » » » » » » » » » » » » атрибути Ім'я "," атрибути Ціна « » » » » » » » » » » » » » ») й Таким чином, цей тег вdatasets.xmlДозволяє вказати список імен атрибутів, які з'являться на форму доступу до даних для цього облікового запису та полегшує використання користувачів для додавання &addVariables Де функції до запиту. Про нас атрибутNamesCSV Список випадків-чуйний.

<висотаMetersPerSourceUnit>

  • Про нас ** <висотаMetersPerSourceUnit> ** до (#altitudemeterspersourceunit) є тегом OPTIONAL в межах<dataset> тег в datasets. xxml для EDDTableЗ альбомуSOSдані (тільки!) що визначає номер, який переповнений початковою висотою або значенням глибини для перетворення їх на значення висоти (вище рівня моря) й Наприклад,
    <altitudeMetersPerSourceUnit>-1</altitudeMetersPerSourceUnit>  

Цей тег MUST використовується в тому випадку, якщо значення вертикальної осі даних не є метрами, позитивний=ап. В іншому випадку це OPTIONAL, оскільки значення за замовчуванням 1. Наприклад,

  • Якщо джерело вже вимірюється в метрах вище рівня моря, використовуйте 1 (або не використовуйте цей тег, оскільки 1 є значенням за замовчуванням) й
  • Якщо джерело вимірюється в метрах нижче рівня моря, використовуйте -1.
    <altitudeMetersPerSourceUnit>-1</altitudeMetersPerSourceUnit>
  • Якщо джерело вимірюється в км над рівнем моря, використовуйте 0.001.  

<JavaScript licenses API Веб-сайт Go1.13.8

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#defaultdataquery) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlщо говоритьERDDAP™використовувати вказаний запит (частина URL після "?) Якщо файл .html Тип (Форма доступу даних) запитується без запиту.
    • Ви, ймовірно, рідко повинні використовувати це.
    • Вам потрібно в XML-encode (не відсотків-encode) Запити за замовчуванням, оскільки вони знаходяться в XML-документі. Наприклад, і стає & ,<стає<, > стає > .
    • Будь ласка, перевірте роботу. Ми можемо самі зателефонувати одержувачу.ERDDAP™намагатися очистити ваші помилки - але не покладайтеся на це, так як\*Як\*Чи можна змінити.
    • Для мережевих даних, спільне використання цього полягає в тому, щоб вказати різну глибину за замовчуванням або значення висоти (наприклад,\[0 р.\]замість\[останні\]) й У будь-якому випадку, ви завжди повинні перерахувати всі змінні, завжди використовуйте однакові значення для всіх змінних, і майже завжди використовуйте\[0 р.\]й\[останні\]або\[0: Пласт\]для значень розмірів. Наприклад:
        <defaultDataQuery>u\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\],v\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\]</defaultDataQuery>
    • Дляtabledapдані, якщо ви не вказали про будь-яке обмеження, запит буде повернено в усі дані, які можуть бути непрактично великими, залежно від розміру даних. Якщо ви не хочете вказати будь-які обмеження, а не порожній<JavaScript licenses API Веб-сайт (що так само, як і не вказується за замовчуванням Головна) , вам потрібно явно списувати всі змінні, які ви хочете включити в типовіDataQuery.
    • Дляtabledapdatasets, найбільш поширене використання цього полягає в тому, щоб вказати діапазон часу за замовчуванням (до максимуму (час) , наприклад, &time>=max (час) -1день, або відносно зараз, наприклад, &time>=now-1 день) й Пам'ятайте, що запитувати не змінні дані є тим самим, як вказати всі зміни даних, тому зазвичай ви можете просто вказати новий час обмеження. Наприклад:
        <defaultDataQuery>&amp;time&gt;=max(time)-1day</defaultDataQuery>  

або

    <defaultDataQuery>&amp;time&gt;=now-1day</defaultDataQuery>  

<JavaScript licenses API Веб-сайт Go1.13.8

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#defaultgraphquery) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlщо говоритьERDDAP™використовувати вказаний запит (частина URL після "?) якщо файл .graph Тип (Зробіть графічну форму) запитується без запиту.
    • Ви, ймовірно, рідко повинні використовувати це.
    • Вам потрібно в XML-encode (не відсотків-encode) Запити за замовчуванням, оскільки вони знаходяться в XML-документі. Наприклад, і стає & ,<стає<, > стає > .
    • Будь ласка, перевірте роботу. Ми можемо самі зателефонувати одержувачу.ERDDAP™намагатися очистити ваші помилки - але не покладайтеся на це, так як\*Як\*Чи можна змінити.
    • Для мережевих даних, найбільш поширене використання цього полягає в тому, щоб вказати різну глибину за замовчуванням або значення висоти (наприклад,\[0 р.\]замість\[останні\]) і/або вказати, що певна змінна буде графічно. У будь-якому випадку, ви майже завжди будете використовувати\[0 р.\]й\[останні\]або\[0: Пласт\]для значень розмірів. Наприклад:
        <defaultGraphQuery>temp\\[last\\]\\[0\\]\\[0:last\\]\\[0:last\\]&amp;.draw=surface&amp;.vars=longitude|latitude|temp</defaultGraphQuery>  
    (але викласти все на одну лінію)
    • Дляtabledapдані, якщо ви не вказали про будь-які обмеження, запит буде нараховувати всі дані, які можуть зайняти довгий час, залежно від розміру даних.
    • Дляtabledapdatasets, найбільш поширене використання цього полягає в тому, щоб вказати діапазон часу за замовчуванням (до максимуму (час) , наприклад, &time>=max (час) -1день, або відносно зараз, наприклад, &time>=now-1 день) й Пам'ятайте, що запитувати не змінні дані є тим самим, як вказати всі зміни даних, тому зазвичай ви можете просто вказати новий час обмеження. Наприклад:
        <defaultGraphQuery>&amp;time&gt;=max(time)-1day</defaultGraphQuery>  

або

    <defaultGraphQuery>&amp;time&gt;=now-1day</defaultGraphQuery>  

<розмірПеревагиInMemory>

  • Про нас ** <Розмір ЗначенняInMemory> ** до (<a href="http://realtor.if.ua/" title="Агентство нерухомості Ріелтор" target="_blank"><img src="http://realtor.if.ua/images/realtor_31.gif" width="88" height="31" alt="Агентство нерухомості Ріелтор" /></a>) (Справедливість (За замовчуванням) або помилково) ОПЦІОНАЛЬНІ ТА рідко використовуються теги в межах<dataset> тег для будь-якогоEDDGridдатасет, що говоритьERDDAP™де зберігати значення джерела розмірів (також відомий якaxisVariableй) :

    • true = в пам'яті (що швидше, але використовує більше пам'яті)
    • false = на диску (що повільніше, але не використовує пам'ять)

Наприклад,

<dimensionValuesInMemory>false</dimensionValuesInMemory>  

Ви повинні використовувати це з невидимою вартістю помилкових, якщо виERDDAP™має багато даних з дуже великими розмірами (наприклад, мільйони значень, наприклад, уEDDGridВідAudioFiles даних) іERDDAP«У використанні використання пам'яті завжди занадто висока. Переглянути пам'ять: в даний час за допомогою рядка\[Головна\]/erddap/status.htmlдля моніторингуERDDAP™використання пам'яті.  

<файлTableInMemory>

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#filetableinmemory) (правда або помилково (За замовчуванням) ) є тегом OPTIONAL в межах<dataset> тег для будь-якогоEDDGridВідФайли та EDDTable Відображення даних, що говоритьERDDAP™де зберігати файл (що має інформацію про кожен файл даних) :

    • true = в пам'яті (що швидше, але використовує більше пам'яті)
    • false = на диску (що повільніше, але не використовує пам'ять)

Наприклад,

<fileTableInMemory>true</fileTableInMemory>  

Якщо ви налаштували це для будь-якого набору даних, тримайте око на пам'яті: в даний час використовується лінія в\[Головна\]/erddap/status.htmlщоб забезпечити, щоERDDAP™Як і раніше є багато вільної пам'яті.  

<fgdcFile>

  • Про нас ** <fgdcFile> ** до (#fgdcfile) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlщо говоритьERDDAP™використовувати файл FGDC замість необхідностіERDDAP™Спробуйте створити файл. Використання:
    <fgdcFile>*fullFileName*</fgdcFile>  

повний Ім'я файлу може звернутися до локального файлу (десь на файловій системі сервера) або URL віддаленого файлу. Якщо повний Ім'я файлу \="" або файл не знайдено, метадані FGDC не буде містити. Таким чином, це також корисно, якщо ви хочете пригнічувати метадані FGDC для конкретного набору даних. Або, ви можете покласти<fgdcActive>false</fgdcActive> вconfig.xml, щоб розповістиERDDAP™не пропонувати метадані FGDC для будь-якого набору даних.  

<йо19115 Файли та штампи;

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#iso19115file) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlщо говоритьERDDAP™використовувати файл ISO 19115 замість того, щоб матиERDDAP™Спробуйте створити файл. Використання:
    <iso19115File>*fullFileName*</iso19115File>  
    повний Ім'я файлу може звернутися до локального файлу (десь на файловій системі сервера) або URL віддаленого файлу. Якщо повний Ім'я файлу \="" або файл не знайдено, метадані ISO 19115 не буде. Отже, це також корисно, якщо ви хочете пригнічувати метадані ISO 19115 для конкретного набору даних. Або, ви можете покласти<JavaScript licenses API Веб-сайт Go1.13.8</iso19115Active> вconfig.xml, щоб розповістиERDDAP™не пропонувати метадані ISO 19115 для будь-якого набору даних.  

<з NDigits>

  • Про нас ** <Збігти ** до (#матчевиця) є тегом OPTIONAL в межахEDDGrid <датасет> тег дляEDDGridдані, які є агрегати, наприклад, агрегації файлів. Кожен раз перезавантаження даних,ERDDAP™перевіряє, що значення осі кожного компонента агрегації однакові. Визначено прецизію тестуванняЗбігти, яка визначає загальну кількість цифр, які повинні відповідати при тестуванні подвійний значення осі точності, 0 - 18 (За замовчуванням) й При тестуванні значень осі плавки, тест проводиться з відповідними показниками AxisNDigits/2. Значення 18 або вище говоритьEDDGridщоб зробити точний тест. Вартість 0 говоритьEDDGridне робити ніяких випробувань, які не рекомендується, крім опису нижче.

НемовляEDDGridдозволяє компонентам агрегації трохи різним значенням осі, показано лише один набір значень вісь. Набір з того ж компонента, що забезпечує метадані джерела даних. Наприклад, дляEDDGridВідображення даних, які вказані<метаданихЗ альбому> налаштування (За замовчуванням=ост) й

Використання матчуAxisNDigits\=0 сильно дискурований в більшості випадків, тому що він вимкнено всі перевірки. Навіть мінімальна перевірка корисною для того, щоб компоненти підходять для агрегатування. Припустимо, що всі компоненти підходять, але це не завжди так. Це, таким чином, важливим випробуванням санітарії. Навіть значення матчуAxisNDigits1, 2, 3 або 4 дискуровані, оскільки різні значення осі часто вказують, що компоненти були створені (з'єднання?) не підходить для агрегатування.

Існує один випадок, де за допомогою matchAxisNDigits\=0 корисно і рекомендується: з агрегацією віддалених файлів, наприклад, даних в S3 відро. У цьому випадку, якщо датасет використовує кешЗ альбомуUrl, cacheSizeGB, матчAxisNDigits\=0, і theEDDGridСистема відеоспостереженняАгрегація через Ім'я файлу, потімEDDGridне потрібно читати всі віддалені файли, щоб зробити агрегатацію. Це дозволяє отримувати дані з даних в S3 відро для завантаження дуже швидко (на відміну від абсурдно повільно, якщоEDDGridмає завантажити і читати всі файли) й

<nThreads>

  • Почати зERDDAP™version 2.00, коли будь-який підклас EDDTableЗ альбомуFiles абоEDDGridЧитає дані з джерела, він може прочитати один фрагмент даних (Наприклад, один вихідний файл) час (в одну нитку) (це за замовчуванням) або більше одного шматка даних (Наприклад, 2 + вихідні файли) час (в 2 або більше ниток) при обробці кожного запиту.  
    • Рулі Thumb: Для більшості даних на більшості систем використовуйте nThreads=1, за замовчуванням. Якщо у вас є потужний комп'ютер (багато ядер CPU, багато пам'яті) , потім розглянемо налаштування nThreads до 2, 3, 4 або вище (але не більше, ніж кількість ядер CPU в комп'ютері) для даних, які можуть скористатися:

      • Більшість EDDTableЗберігати дані будуть корисними.
      • Дані, де щось викликає відставку перед роз'ємом даних, можуть бути використані, наприклад:
        • Дані ззовнішній вигляд (Наприклад,.gz) Бомби (Наприклад,.nc) Файли, боERDDAP™повинен видалити весь файл, перш ніж він може почати читати файл.
        • Дані, які використовуютьcacheSizeGB, боERDDAP™часто потрібно завантажити файл до його читання.
        • Дані з файлами даних, що зберігаються на паралельній файловій системі високої пропускної здатності, оскільки вона може доставляти більше даних, швидше, при запитуванні. Приклади паралельних файлових систем включаютьДЖБОДйПНФСйГлустерФ, Amazon S3, Google Cloud Storage.  

Попередження: При використанні nThreads>1, тримати очі наERDDAP- використання пам'яті, використання ниток і загальна чуйність (ПереглянутиERDDAPСтатус на сервери) й Дивитися коментарі про ці питання нижче.  

  • Для заданого набору даних цей параметр nThreads може вийти з різних місць:

    • Якщоdatasets.xmlкурка для набору даних має<nThreads> тег (з використанням<dataset> тег, не як глобальний атрибут) з значенням >= 1, що використовується значення nThreads. Отже, ви можете вказати інший номер для кожного набору даних.
    • В іншому випадку, якщоdatasets.xmlмає<nTableThreads> тег (для EDDTable Відображення даних) чи<nGridThreads> тег (дляEDDGridдані) з значенням >= 1, поза<датасет> тег, що використовується значення nThreads.
    • В іншому випадку використовується 1 нитка, яка є безпечним вибором, оскільки вона використовує найменшу кількість пам'яті.  

ДляоригіналERDDAP™монтаж, ми використовуємо <nTableThreads> 6 хв</nTableThreads> (Це потужний сервер.) Відхилити запити тепер приймають 30% попереднього часу.  

Моніторинг використання ресурсів

Коли ви експериментуєте з різними налаштуваннями nThreads (і, можливо, зробити складні запити про зразокERDDAP) Ви можете контролювати використання ресурсів комп'ютера:

  • На Macs, use Finder : Програми : Моніторинг діяльності
  • На Linux використовується топ
  • На Windows 10 використовуйте Ctrl + Shift + Esc відкрити Менеджер завдань  
Попередження: Зниження Відповідальності

У ізоляції,ERDDAP™виконає запит на набір даних з більш високою накладкою nThreads швидше, ніж якщо nThreads=1. Але під час обробки запиту, інші запити від інших користувачів будуть дещо переповнені і отримувати повільну відповідь. Також, колиERDDAP™Відповідає заданому запиту, інші обчислювальні ресурси (e.g., доступ до диска, пропускна здатність мережі) може бути обмежена, особливо з більш високими налаштуваннями nThreads. Таким чином, з більшими налаштуваннями nThreads, загальна працездатність системи буде гірше, коли є кілька запитів, які обробляються - це може бути дуже дратівливим для користувачів! Через це: ніколи не встановлюють nThreads на більш ніж кількість ядер процесора в комп'ютері. nThreads=1 – найяскравіша установка з кожного запиту (між кількома одночасними запитами) отримуватиме рівну частку обчислювальних ресурсів. Але чим більш потужний комп'ютер, тим менше це буде проблема.  

Попередження: Вища пам'ять ВикористанняEDDGridДані

Використання пам'яті при обробці запитів безпосередньо пропорційно параметру nThreads. Важко безпечне правило великого пальця: потрібно встановитиERDDAPПараметри пам'ятідо принаймні 2GB + (2GB \ * nThreads) й Деякі запити на деякі дані потребують більше пам'яті, ніж це. Наприклад, налаштування nThreads=3 для будь-якогоEDDGridDataset означає, що параметр Xmx повинен бути принаймні -Xmx8000M. Якщо налаштування пам'яті перевищує 3/4 фізичної пам'яті комп'ютера, зменшення параметрів nThreads, щоб ви могли зменшити налаштування пам'яті.

Використання пам'яті запитів обробки ниток до EDDTable datasets майже завжди нижче, оскільки файли зазвичай набагато менші. Тим не менш, якщо надана EDDTable Dataset має величезний (т.г., >=1 ГБ) Файли даних, після чого коментарі, надійдуть до даних, а також.

Що б налаштування nThreads, зберігайте близьку око на статистику використання пам'яті на вашому пристроїERDDAPСтатус на серверий Вам не потрібно постійно ходити, щоб максимізувати використання пам'ятіERDDAP; інакше будуть серйозні помилки і невдачі.

Тимчасово встановити до 1

При використанні поточної пам'яті навіть трохи висока,ERDDAP™буде встановлювати nThreads для цього запиту 1. Так,ERDDAP™зберігає пам'ять, коли пам'ять страшно.  

Повернутись назад

Встановити nThreads: 2 нитки будуть краще, ніж 1 (якщо ми ігноруємо динамічні перекриття) й Але 3 буде тільки горб краще, ніж 2. І 4 буде тільки марно краще, ніж 3.

В одному тесті важкого запиту на великий EDDTable dataset, час відповіді за допомогою 1, 2, 3, 4, 5, 6 ниток був 38, 36, 20, 18, 13 секунд. (Ми використовуємо nTableThreads=6 на цьому сервері.)

nThreads=2: Хоча, часто існує значна перевага, щоб вказати nThreads=2 замість nThreads=1, вона часто не робить багато різниці в часі, необхідний для відповіді на запит користувача. Причина: з nThreads=1, більшість сучасних процесорів частодинамічно перекриття (зрілі лесбіянки) до тимчасової швидкості ЦП. Таким чином, з nThreads=1, одне ядро часто буде працювати на більшій швидкості годинника, ніж кожен з двох ядер, якщо ви використовували nThreads=2. Незалежно від того, ми все ще вважаємо, що краще використовувати nThreads=2, а не nThreads=1, так як це налаштування буде краще результат в більш широкому асортименті ситуацій. І звичайно, якщо ваш комп'ютер має достатні ядра процесора, то більш високий параметр nThreads повинен отримувати кращі результати.

Як обговорювалися вище, дуже високі налаштування nThreads може призвести до більш швидкого реагування на деякі запити, але ризик загального зниженняERDDAP™чуйність і висока пам'ять (як зазначено вище) в той час як ці запити обробляються, це зазвичай не є гарною ідеєю.

Процесор Ядра

Ви не повинні коли-небудь встановити nThreads на число більше, ніж кількість ядер процесора в процесорі комп'ютера. В основному всі сучасні процесори мають кілька ядер (Наприклад, 2, 4 або 8) й Деякі комп'ютери навіть мають декілька процесорів (Наприклад, 2 CPU \ * 4 ядра / CPU = 8 ядра процесора) й Щоб дізнатися, скільки процесорів і ядер комп'ютеру має:

  • На Macs, використання Параметри ключ : яблуко меню : інформація про систему
  • На Linux використовується кішка /proc/cpuinfo
  • На Windows 10 використовуйте Ctrl + Shift + Esc відкрити Менеджер завдань : Продуктивність (Логічні процесори показують загальну кількість ядер CPU)

Так, більшість процесорів ці дні говорять, що вони підтримують 2 нитки на ядро (Зареєструватисягіперпродукція) , але 2 нитки діляться обчислювальними ресурсами, тому ви не побачите двічі пропускну здатність на процесорі під великим навантаженням. Наприклад, комп'ютер з одним процесором з 4 ядерами може звернутися до підтримки до 8 ниток, але ви ніколи не повинні перевищувати nThreads=4 в тому, щоERDDAPй Пам'ятайте:

  • Налаштування nThreads вERDDAP™за запитом.ERDDAP™часто обробляє кілька запитів одночасно.
  • ERDDAP™робить інші запити на процес, наприклад, перевантажити дані.
  • КолиERDDAP™Відповідає заданому запиту, інші обчислювальні ресурси (e.g., доступ до диска, пропускна здатність мережі) може обмежуватися. Чим вище ви встановлюєте nThreads, тим ймовірніше, що ці інші ресурси будуть максізовані і сповільнятьERDDAP- загальна чуйність.
  • Операційна система робить речі, крім запускуERDDAPй

Таким чином, краще не встановлювати налаштування nThreads на більш ніж кількість ядер в процесорі комп'ютера.  

Ваш Mileage Травень Вари (ЯМВ)

Результати різних параметрів nThreads значно зміняться для різних запитів на різні дані на різних системах. Якщо ви дійсно хочете дізнатися ефект різних параметрів nThreads, запустіть реалістичні тести.  

Чому nThreads за запитом?

Я можу почути деякі з вас думки "Чому є nThreads за запитом? Якщо я стикався з цим, я б використовувати один постійний робочий ланцюжок і чергу для кращої продуктивності. Проблема з використанням однієї робочої нитки басейну і черги обміну повідомленнями полягає в тому, що один непростий запит буде затопити черги з численними повільними завданнями. Що б ефективно блокуватиERDDAP™від навіть початкової роботи на завданнях, пов'язані з іншими запитами, доки початковий запит був (по-справжньому) готовий. Таким чином, навіть прості подальші запити будуть дуже повільно реагувати.ERDDAP- використання nThreads за запитом призводить до значного використання обчислювальних ресурсів.  

nThreads проти декількох робочих комп'ютерів

На жаль,ERDDAP- система nThreads ніколи не буде настільки ефективною, як справжня паралелізація через кілька робочих комп'ютерів, з кожною роботою на шматку даних, таким чином, що Hadoop або Apache Spark зазвичай використовуються. Коли завдання дійсно паралізується/розподіляється на кілька комп'ютерів, кожен комп'ютер може використовувати всі свої ресурси на його складі завдання. ЗERDDAP's nThreads система, кожен з ниток конкурує для тієї ж смуги комп'ютера, дискових дисків, пам'яті тощо. На жаль, більшість з нас не мають ресурсів або коштів, щоб налаштувати або навіть орендувати (на Amazon Web Services (АВІ) або Google Cloud Platform (ГП) ) масивні сітки комп'ютерів. Також, на відміну від реляційних баз даних, які дозволяють повернути рядки результату в будь-якому порядку,ERDDAP™робить обіцянку повернути рядки результату в послідовному порядку. Це обмеження робитьERDDAP's nThreads впровадження менш ефективного. АлеERDDAP- nThreads корисно в багатьох випадках.

Однак існують способи зробитиERDDAP™масштабування для обробки величезної кількості запитів швидко, встановлюючисітка/кластер/федераціяERDDAPйй  

<палітра і гт;

  • Почати зERDDAP™версія 2.12,datasets.xmlможе включати в себе<палітри> тег (зін<erddapDatasets>, що перенадає<палітри> значення тегу з повідомлень.xml (або перетворює значення повідомлення.xml, якщо тег вdatasets.xmlпорожній) й Це дозволяє змінити список доступних палітрів під часERDDAP™працює. Якщо ви встановите нову версіюERDDAPй WARNING: палітри, що вказані вdatasets.xmlповинен бути суперсет палітри, що вказані в повідомленнях.xml; в іншому випадкуERDDAP™кине виняток і припинення обробкиdatasets.xmlй Це гарантує, що всіERDDAP™Встановки не менше підтримують однакові базові палітри. ВАЖКО:ERDDAP™перевіряє, що файли палітра, вказані в повідомленнях.xml, насправді існують, але не перевіряють файли палітри, що вказані вdatasets.xmlй Ваша відповідальність для забезпечення файлів.

Також починаючи зERDDAP™версія 2.12, якщо ви робите підкатеор cptfiles вERDDAP™каталог контенту,ERDDAP™скопіювати всі файли \ *.cpt в цьому каталозі в\[домка\]/webapps/erddap/WEB-INF/cptfiles каталог кожного разуERDDAP™початок. Таким чином, якщо ви надаєте користувацькі файли cpt в цьому каталозі, ці файли будуть використовуватисяERDDAP™, без зайвих зусиль з вашої частини, навіть коли ви встановите нову версіюERDDAPй

WARNING: Якщо ви додаєте спеціальні палітри до вашогоERDDAP™У вас єEDDGridВідErddap та/або EDDTableЗ альбомуErddap datasets у вашому пристроїERDDAP™, потім користувачі побачать ваші параметри палітри на замовленняERDDAP™Зробіть веб-сторінки графа, але якщо користувач намагається використовувати їх, він отримає графік за замовчуванням (зазвичай Веселка) палітра. Це тому, що зображення виконано дистанційнимERDDAP™не має користувальницької палітри. Єдині рішення, які зараз є на електронну поштуERDDAP™адміністратор, щоб додати ваші користувацькі палітри до свогоERDDAPабо по електронній пошті Кріс. Джон в noaa.gov запитати, що палітри додаються до стандартуERDDAP™розподіл.

<наЗміну та гт;

  • Про нас ** <Головна > ** до (Українська) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlщо визначає дію, яка буде виконана, коли цей набір даних створюється (колиERDDAP™перезавантажити) і в будь-який спосіб зміни даних.
    • В даний час дляEDDGridпідкласи, будь-які зміни до метаданих або до змінної осі (наприклад, новий час для даних ближнього часу) вважається зміною, але перевантаження даних не вважається зміною (сам) й
    • В даний час для EDDTable підкласів будь-який перезавантаження даних вважається зміною.
    • В даний час дозволено тільки два види дій:
      • « » » » » » » » » » » » » » » http://" чи " https://" --- Якщо акція стартує з " http://" чи " https://" йERDDAP™відправитьHTTP GETзапит на вказану URL-адресу. Відповідь буде ігноруватися. Наприклад, URL-адреса може розповісти про інші веб-служби.
        • Якщо URL-адреса є частиною запиту (після "?) , вона вже була% закодованой Вам необхідно зашифрувати спеціальні символи в обмеженнях (крім початкового '&' і головного'='в обмеженнях) у вигляді %HH, де HH є 2 дігітним шістнадцятковим значенням персонажа. Як правило, вам просто потрібно конвертувати кілька символів пунктуації: % в %25 і в %26, " в %22,<в %3C, = в %3D, > в %3E, + в %2B,|в %7К,\[в %5Б,\]в %5D, простір в %20 і перетворюйте всі символи вище #127 у свою форму UTF-8, а потім відсотків кодують кожну байт UTF-8 у форматі %H (запитати програміста) й Наприклад, &stationID>="41004" стає іstationID%3E=%2241004%22 Відсоткова кодування зазвичай потрібна при доступіERDDAPчерез програмне забезпечення, крім браузера. Браузери, як правило, обробляється процентним кодуванням для вас. У деяких ситуаціях вам потрібно процентувати всі символи, крім A-Za-z0-9\_-!.~ Р () \*, але все ще не зашифрувати початковий '&' або головний'='в обмеженнях. Мова програмування має інструменти для цьогоJavaРjava.net.URLEncoderіJavaСценаристи [encodeURIComponent()до ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent ) ) і є веб-сайти, які процентують код/декодй
        • Зdatasets.xmlФайл XML, ви MUST також &-encode ALL '&', '<', і '>' в URL як '&', '<', і '>' після відсоткового кодування.
        • Приклад: Для URL-адреси, яку ви можете ввести в браузер, як: https://www.company.com/webService?department=R%26D&param2=value2
          Ви повинні вказати<onChange> тег через (на одну лінію)
            <onChange>https://www.company.com/webService?department=R%26D&amp;param2=value2</onChange>
      • Пошта: --- Якщо акція стартує з "mailto:",ERDDAP™надішлемо лист на наступну адресу електронної пошти, що вказує на те, що дані було оновлено/змінено. Наприклад:<Електронна пошта: info@john.smith@company.com<Українська Якщо у вас є хороша причинаERDDAP™Для підтримки будь-якого іншого типу дії надсилайте нам електронну пошту, що вам потрібно.
    • Цей тег OPTIONAL. Ви можете бути такими тегами, як ви хочете. Використовуйте один з цих тегів для кожної дії, щоб бути виконаними.
    • Це аналогіяERDDAP- система підписки електронної пошти/URL, але ці дії не зберігаються (i.e., вони зберігаються в об'єкті EDD) й
    • Щоб видалити підписку, просто видаліть підписку<onChange> тег. Зміна буде відмічати наступний раз перезавантаження даних.  

<reloadEveryNMinutes>

  • Про нас ** <перевантаження КоженNMinutes> ** до (#завантажитизавжак) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlмайже всі типи даних, які визначає, як часто дані, повинні бути перевантажені. Наприклад,
    <reloadEveryNMinutes>60</reloadEveryNMinutes>
    • Зазвичай дані, які часто змінюються (наприклад, отримати нові файли даних) необхідно періодично перезавантажити, наприклад, кожні 60 хвилин.

    • Потрібні дані, які змінюються, повинні бути перезавантажені нечасто, наприклад, кожні 1440 хвилин (щоденно) або 10080 хвилин (тиждень) й

    • Цей тег є OPTIONAL, але рекомендується. За замовчуванням 10080.

    • Приклад:<JavaScript licenses API Веб-сайт Go1.13.8<Перевантаження КоженNMinutes>

    • При перевантаженні даних всі файли в bigParentПублічний Українська datasetID Видалити каталог.

    • Неважливо, що це встановлено, не завантажується,<навантаженняDatasetsMinutes> (За замовчуванням = 15) , як зазначено вНалаштування.xmlй Отже, якщо ви хочете, щоб дані були дуже часто перевантажені, вам потрібно встановити як перезавантаження Протоколи до невеликих значень.

    • Не встановлюйте перевантаженняВсіNMinutes до того ж значення, як навантаженняDatasets MinMinutes, тому що час клаптів, ймовірно, буде (Приклад) 14:58 або 15:02, тому датасет буде перезавантажено лише на половину основних перевантажень. замість цього використовуйте меншу (Наприклад, 10) або більше (Наприклад, 20) перевантаження Вартість кожногоNMinutes.

    • Незалежно від перевантаженняВсіХіноми, можна вручну розповістиERDDAP™Щоб перезавантажити певний набір даних, якомога швидше за допомогоюфайл прапорай

    • Для програмістів -ERDDAP™, перевантаження всіх даних обробляється двома однофункціональними нитками. Одна нитка ініціює незначне перевантаження, якщо вона знаходить файл прапора або велике перевантаження (які перевіряють всі дані, щоб побачити, чи потрібно перезавантажити) й Іншим ниткам є фактичне перевантаження даних одночасно. Ці нитки працюють у фоновому режимі, що гарантує, що всі дані зберігаються в сучасних умовах. Нитка, яка фактично робить перезавантаження, готує нову версію набору даних, потім закрутить її на місце (по суті, заміня старої версії атомічно) й Отже, можливо, що наступна послідовність подій відбувається (це гарна річ) :

      1. ERDDAP™запускає перевантаження даних (створення нової версії) на фоні.
      2. Користувач «А» надає запит на отримання даних.ERDDAP™використовує поточну версію Dataset для створення відповіді. (Це добре. Не було затримок для користувача, а поточна версія Dataset ніколи не повинна бути дуже простим.)
      3. ERDDAP™Завершується створення нової версії даних, що перевантажується, і запускає нову версію у виробництво. Всі наступні нові запити обробляються новою версією Dataset. Для консистенції запит користувача A все ще заповнюється оригінальною версією.
      4. Користувач 'B' робить запит на даніERDDAP™використовує нову версію Dataset для створення відповіді.
      5. Закінчено запити користувачів A та користувача B (апошні Перший, мабуть, B's закінчує) й

Я чую хто-небудь говорячи, "Дуже два молоти! А! Це лайм! Він повинен встановити, щоб перезавантаження даних використовує стільки ниток, як потрібні, так що все робиться швидше і з невеликими або не лагами." Так і ні. Проблема полягає в тому, що завантаження більш ніж одного гарнітура в часі створює кілька складних нових проблем. Всі вони повинні бути вирішені або вирішені з. Система працює добре і має керовані проблеми (наприклад, потенціал для лаг перед прапором позначений) й (Якщо вам потрібна допомога в управлінні ними, див. нашурозділ про отримання додаткової підтримкий) Схожіоновлення Проксимус. Система працює в межах відповідей ниток, тому вона може і веде до декількох даних, які оновлюються (не повний перевантаження) одночасно.

Проактивний проти реактивного

ERDDAP"Система перевантаження є проактивним -- дані, що перевантажуються незабаром після їх перевантаження Час кожногоNMinutes (І.Є., вони стають «закладними», але ніколи не дуже стебла) , чи отримуємо дані від користувачів або ні. Про насERDDAP™дані завжди актуальні і готові до використання. Це на відміну від реактивного підходу THREDDS: запит користувача полягає в тому, що говорить THREDDS для перевірки, якщо застосувати дані (це може бути дуже простим) й Якщо це застібка, THREDDS робить очікування користувача (часто протягом декількох хвилин) при перевантаженні даних.

<оновлення КоженNMillis>

  • Про нас ** <JavaScript licenses API Веб-сайт ** до (#updateeverynmillis, Україна) є тегом OPTIONAL в межах<датасет> тег вdatasets.xmlдеяких типів даних, які допомагаютьERDDAP™робота з даними, які дуже часто змінюються (як часто так грубо кожен другий) й На головнуERDDAP- регулярний, проактивний, [<перевантаження КоженNMinutes> (#завантажитизавжак) система для повного перевантаження кожного набору даних, ця додаткова система OPTIONAL є реактивною (Запущено запитом користувача) і швидше, тому що це незрівнянно (просто оновити інформацію, яку необхідно оновити) й Наприклад, якщо запит на запитEDDGridВідDap Dataset відбувається більше зазначеної кількості мілісекундів з останнього оновлення,ERDDAP™побачить, чи є нові значення для ліворуч (перший, зазвичай"time") Розмір і, якщо так, просто завантажте нові значення перед обробкою запиту користувача. Ця система дуже хороша при збереженні швидко змінених даних, що випливають з мінімальними вимогами на джерело даних, але за вартістю трохи уповільнення обробки деяких запитів користувачів.
    • Для використання цієї системи додайте (Приклад) :
      <updateEveryNMillis>1000</updateEveryNMillis>  

право після<JavaScript licenses API Веб-сайт Go1.13.8 тег для набору даних вdatasets.xmlй Кількість мілісекундів, які ви вказали, можуть бути як невеликими, так як 1 (забезпечити те, що датасет завжди є актуальним) й Вартість 0 (За замовчуванням) або негативний номер вимкнено систему.

  • У зв'язку з їх внутрішньою природою, оновлення повинні закінчитися дуже швидко, тому користувачі ніколи не повинні чекати довго.
  • Якщо другий запит даних надійшов до попереднього оновлення, другий запит не запускає інше оновлення.
  • Протягом документації ми намагаємось використовувати слово «завантажити» для регулярних, повних перевантажень даних, а також «оновити» для цих нових запліднених, часткових оновлень.
  • Для цілей тестування деякі діагнози друкуються на log.txt, якщо [<Увійти (#логів) вdatasets.xmlвстановлюється до "всі".
  • Якщо ви використовуєте неперевершені оновлення і особливо якщо лівий (перший) , наприклад, час, вісь великий, ви можете встановити<reloadEveryNMinutes> до більшого числа (1440?) , так що оновлення роблять більшу частину роботи, щоб зберегти дані, що задаються до дати, і повні перезавантаження здійснюються нечасто.
  • Примітка: це оновлення системи оновлення метаданих (наприклад, часactual\_range, час\_coverage\_end, ...) але не запустіть наЗміну (електронна пошта або посилання) або змінитиRSSхарчування (можливо, вона повинна...) й
  • Для всіх даних, які використовують підкласиEDDGridВідповідііEDDTableЗ альбомуFiles:
    • ВАЖКО: коли ви додаєте новий файл даних, щоб скопіювати його в каталогERDDAP™дивиться на, є небезпека, якаERDDAP™помітить частково записаний файл; спробуйте його читати, але не вдалося, тому що файл неповний; вказати файл, який повинен бути файлом "поганий" і видалити його (Населений пункт) з набору даних. Щоб уникнути цього, ми ЗАГАЛЬНА РЕКОМЕНДА що ви копіюєте новий файл в каталог з тимчасовим ім'ям (Наприклад, 20150226.ncТоп) не відповідає файлу даних Ім'яRegex (\\.nc) , потім перейменувати файл на правильне ім'я (Наприклад, 20150226.nc) й Якщо ви використовуєте цей підхід,ERDDAP™проігнорувати тимчасовий файл і тільки помітити правильний названий файл, коли він повністю і готовий використовувати.
    • Якщо ви зміните існуючі дані (наприклад, для додавання нової точки даних) й<UpdateEveryNMillis> добре працювати, якщо зміни з'являються анатомічно (в момент) і файл завжди доступний файл. Наприклад, бібліотека Netcdf-java дозволяє на додаток до необмеженого розміру "класичної".ncv3 файл, який буде виготовлений атомічно. <UpdateEveryNMillis> буде працювати погано, якщо файл недійсний, коли внесені зміни.
    • <UpdateEveryNMillis> буде добре працювати для даних, де одна або кілька файлів змінюється в короткій кількості часу.
    • <UpdateEveryNMillis> буде працювати погано для даних, де велика кількість файлів змінюється в короткій кількості часу (якщо зміни з’являються анатомічно) й Для цих даних краще не використовувати<updateEveryNMillis> і для установкиУвійтирозповістиERDDAP™перезавантаження даних.
    • <JavaScript licenses API Веб-сайт не оновлює інформацію, пов'язані з [<subsetVariables>] (#сумісний) й Зазвичай це не проблема, оскількиsubsetVariablesУ вас є інформація про речі, які не змінюються дуже часто (наприклад, список назв станцій, широт і довготи) й ЯкщоsubsetVariablesзміни даних (наприклад, при додаванні нової станції до даних) , потім зв'язатися зпосиланнядля опису данихERDDAP™перезавантаження даних. Інакше,ERDDAP™не помітить новий субсет Змінна інформація до наступного часу перезавантаження даних (<перезавантаженняВсіNMinutes>.
    • Наша генерична рекомендація полягає у використанні:
        <reloadEveryNMinutes>1440</reloadEveryNMinutes>  
    <updateEveryNMillis>10000</updateEveryNMillis>
    • ТРОБЛ? На комп'ютерах Linux, якщо ви використовуєте<JavaScript licenses API Веб-сайт зEDDGridВідFiles або EDDTableЗ альбомуFiles, ви можете побачити проблему, де дані не можуть завантажуватися (періодично або послідовно) з повідомленням про помилку: "IOException: Користувач ліміт інотифікація екземплярів досягається або занадто багато відкритих файлів". Причина може бути помилка вJavaщо викликає інотифікація екземплярів, які не містять сміття. Ця проблема уникаєERDDAP™v1.66 і вище. Так найкраще рішення для перемикання останньої версіїERDDAPй Якщо ви не вирішуєте проблему (тобто якщо у вас є дійсно велика кількість даних, використовуючи<updateEveryNMillis>, ви можете виправити цю проблему за допомогою виклику:
      sudo sysctl fs.inotify.max\\_user\\_watches=65536  
      sudo sysctl fs.inotify.max\\_user\\_instances=1024
      sudo sysctl -p

Або, використовуйте більш високі числа, якщо проблема зберігається. За замовчуванням для годинників 8192. За замовчуванням для екземплярів 128.

  • Ви можете покласти<оновленняMaxEvents>10</updateMaxПодії> вdatasets.xml (в з іншими налаштуваннями біля вершини) змінити максимальну кількість змін файлів (За замовчуванням=10) які будуть оброблятися системою оновлення. Більша кількість може бути корисною для даних, де дуже важливо, щоб вони зберігалися завжди до дати. ДивитисяUpdateMaxEvents документаціяй
  • Для запліднених програмістів - це незрівнянні оновлення, на відміну відERDDAP- повнийперезавантажитиВсіNMinutesсистема, що відбувається в межах запиту користувача. Так, будь-яка кількість даних можна оновити одночасно. Є код (і замок) щоб забезпечити, що тільки одна нитка працює над оновленням для будь-якого даної інформації в будь-який момент. Дозволити кілька одночасних оновлень було легко, дозволяючи багаторазово перезавантажити одночасно.  

<джерелоCanConstrainStringEQNE>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecanconstrainstringeqne) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег вdatasets.xmlщо визначає, якщо джерело може перенапружувати змінні значення з = і != оператори.
    • Для EDDTableЗ альбомуDapSequence, це стосується тільки початкової послідовності. Припустимо, що джерело не може обробляти будь-які обмеження на внутрішні зміни послідовності.
    • Цей тег OPTIONAL. Реальні цінності (За замовчуванням) і помилково.
    • Для EDDTableЗ альбомуDapSequenceOPeNDAPDRDS сервера, це повинно бути встановлено для true (За замовчуванням) й
    • Для EDDTableЗ альбомуDapSequence Сервери Dapper, це повинно бути встановлено помилково.
    • Приклад:
        <sourceCanConstrainStringEQNE>true</sourceCanConstrainStringEQNE>  

 

<джерелоCanConstrainStringGTLT>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecanconstrainstringgtlt) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег, який визначає, якщо джерело може протипоказати змінні з<й<=, > та >= оператори.
    • Для EDDTableЗ альбомуDapSequence, це стосується тільки початкової послідовності. Припустимо, що джерело не може обробляти будь-які обмеження на внутрішні зміни послідовності.
    • Реальні цінності (За замовчуванням) і помилково.
    • Цей тег OPTIONAL. За замовчуванням є вірним.
    • Для EDDTableЗ альбомуDapSequenceOPeNDAPDRDS сервера, це повинно бути встановлено для true (За замовчуванням) й
    • Для EDDTableЗ альбомуDapSequence Сервери Dapper, це повинно бути встановлено помилково.
    • Приклад:
        <sourceCanConstrainStringGTLT>true</sourceCanConstrainStringGTLT>  

 

<джерелоCanConstrainStringRegex>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecanconstrainstringregex) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег, який визначає, якщо джерело може протипоказати змінні регулярні вирази, і якщо так, що оператор є.
    • Дійсно значення "=" (Про насDAPстандарт) , "=" (помилково підтримується багатьмаDAPсервери) або "" (вказує на те, що джерело не підтримує регулярні вирази) й
    • Цей тег OPTIONAL. За замовчуванням «».
    • Для EDDTableЗ альбомуDapSequenceOPeNDAPDRDS сервера, це повинно бути встановлене до "" (За замовчуванням) й
    • Для EDDTableЗ альбомуDapSequence Сервери Dapper, це повинно бути встановлено "" (За замовчуванням) й
    • Приклад:
        <sourceCanConstrainStringRegex>=~</sourceCanConstrainStringRegex>  

<джерелоCanDoDistinct>

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecandodistinct) є OPTIONAL тег в EDDTableЗ альбомуDatabase<датасет> тег, який визначає, якщо бази даних джерела повинні обробляти &distinct () обмеження в запитах користувачів.
    • Цей тег OPTIONAL. Дійсно значення немає (ERDDAP™ручки чіткі; за замовчуванням) , частковий (джерело ручок відмінна іERDDAP™вона знову) і так (джерело ручки відмінні) й
    • Якщо ви не використовуєтеERDDAP™працює з пам'яті під час обробки, використовуйте так.
    • Якщо ви використовуєте так і початкову базу даних дуже повільно, використовуйте ні.
    • частковий дає вам гірше обох: він повільний, оскільки обробка бази даних відрізняється повільністю, і це може призвести до пам'яті вERDDAPй
    • База даних інтерпретують DISTINCT як запит для просто унікальних рядків результатів, тоді якERDDAP™інтерпретує його як запит на сортування унікальних рядків результатів. Якщо ви встановите це на частковий або так,ERDDAP™автоматично також розповідає базу даних для сортування результатів.
    • Одна невелика різниця в результатах: Ні|частковий,ERDDAP™буде сортувати "" на старті результатів (перед не-" рядки) й З так, бази даних може (Післягрес буде) сорт "" в кінці результатів (після не "" рядки) й Я здогаду, що це також впливає на сортування коротких слів, які починаються з коротким словом. Наприклад,ERDDAP™буде сортувати «Сімоні» перед «Сімонами».
    • Приклад:
        <sourceCanDoDistinct>yes</sourceCanDoDistinct>  

 

<джерелоCanOrderBy>

  • Про нас ** <Головна КанОрдерБи> ** до (#sourcecanorderby) є OPTIONAL тег в EDDTableЗ альбомуDatabase<датасет> тег, який визначає, якщо бази даних джерела повинні обробляти &orderBy (...) обмеження в запитах користувачів.
    • Цей тег OPTIONAL. Дійсно значення немає (ERDDAP™ручкиorderBy (...) ; за замовчуванням) , частковий (вихідних ручокorderByіERDDAP™вона знову) і так (вихідних ручокorderBy (...) ) й
    • Якщо ви не використовуєтеERDDAP™працює з пам'яті при обробціorderBy (...) , використовувати так.
    • Якщо ви використовуєте так і за допомогою вихідних данихorderBy (...) занадто повільно, не використовуйте ні.
    • частковий дає вам гірше: це повільно, оскільки обробка бази данихorderBy (...) є повільним, і це може призвести до пам'яті вERDDAPй
    • Одна невелика різниця в результатах: Ні|частковий,ERDDAP™буде сортувати "" на старті результатів (перед не-" рядки) й З так, бази даних може (Післягрес буде) сорт "" в кінці результатів (після не "" рядки) й Це також може вплинути на сортування коротких слів у порівнянні з коротким словом. Наприклад,ERDDAP™відсортуватиме "Сімоні" перед "Сімонами", але я не впевнений, як база буде сортувати їх.
    • Приклад:
        <sourceCanOrderBy>yes</sourceCanOrderBy>  

 

<JavaScript licenses API Веб-сайт Go1.13.8

  • Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourceneedsexpandedfp_eq) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег, який визначає (Справедливість (За замовчуванням) або помилково) якщо джерело потребує допомоги з запитами<свінгери Різне>=<>=, >=,<* Наприклад,
    <sourceNeedsExpandedFP\\_EQ>false</sourceNeedsExpandedFP\\_EQ>
    • Для деяких джерел даних нумеричні запити за участю = !=,<=, або >= не може працювати як потрібно з плаваючими номерами точки. Наприклад, пошук довготи = 220.2 може не вдається, якщо значення зберігається як 220.20000000000001.
    • Ця проблема виникає, тому що плаваючі номери точкине представлений точно в комп'ютерахй
    • Якщо джерелоНередиЕкспанdedFP\_EQ налаштовується (За замовчуванням) йERDDAP™Змінення запитів, надісланих на джерело даних, щоб уникнути цієї проблеми. Ми можемо самі зателефонувати одержувачу.  

<sourceUrl>

  • Про нас ** <sourceUrlГоловна ** до (Українська) є загальним тегом у світі Dataset<addAttributes> тег, який визначає URL, що є джерелом даних.
    • Приклад:
        <sourceUrl>https://oceanwatch.pfeg.noaa.gov/thredds/dodsC/satellite/VH/chla/1day</sourceUrl>  
    (але викласти все на одну лінію)
    • УERDDAP™Всі дані будуть мати "sourceUrl" в комбінованих глобальних атрибутах, які відображаються користувачам.
    • Для більшості типів даних цей тег є ОБЛАДНАННЯм. Дивитися опис типу даних, щоб дізнатися, чи це ОБЛАДНАННЯ або ні.
    • Для деяких даних окремі<sourceUrl> тег не дозволений. А замість того, щоб забезпечити "sourceUrl« » » » » » » » » » » » » » »глобальний атрибут, як правило, у світі \>addAttributes<й Якщо немає фактичної URL-адреси джерела (наприклад, якщо дані зберігаються у локальних файлах) , цей атрибут часто має значення, наприклад,<Ім'я * (локальні файли) </т> .
    • Для більшості даних, це основа URL, яка використовується для запиту даних. Наприклад, дляDAPСервери, це URL, до якого можна додати .dods, .das, .dds або .html.
    • Зdatasets.xmlXML файл, ви MUST також кодування '&', '<', і '>' в URL як '&', '<", і '>'.
    • Для більшості типів даних,ERDDAP™додає оригінальнийsourceUrl ("localSourceUrl" у вихідному коді) доглобальні атрибути (де стає «громадськийСурцеУрл» у вихідному коді) й Коли джерело даних є локальними файлами,ERDDAP™ДодатиsourceUrlй (локальні файли) " світові атрибути як прекавенція безпеки. Коли джерело даних є базою даних,ERDDAP™ДодатиsourceUrlй (база даних) " світові атрибути як прекавенція безпеки. Якщо ви використовуєте негромадські даніsourceUrlР (як правило, тому що комп'ютер знаходиться в DMZ або на локальній LAN) Ви можете використовувати [<JavaScript licenses API Веб-сайт Go1.13.8 (#converttopublicsourceurl) Теги, щоб вказати, як перетворити локальнийsourceUrls для громадськостіsourceUrlй
    • РsourceUrlможе початися зhttp://йhttps://, ftp://, і, можливо, інші префікси.httpsЗ'єднання читати і перевірити цифровий сертифікат джерела, щоб переконатися, що джерело є те, що вони говорять. У рідкісних випадках ця перевірка може не з помилкою "javax.net.sssl.SSLProtocolException: handhake сповіщення: unrecognized\_name". Це, ймовірно, через доменне ім'я на сертифікаті, який не відповідає доменному імені, який ви використовуєте. Ви можете прочитати деталіsourceUrl- сертифікат на вашому веб-переглядачі, зокрема, список "Назва ДНС" в розділі "Пошукова назва".

У деяких випадкахsourceUrlВи використовуєте, можливо, псевдонім доменного імені на сертифікаті. Наприклад, https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/ буде кинути цю помилку, але https://opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/ , яка використовує доменне ім'я на сертифікаті, не буде. Рішення в цих випадках полягає в тому, щоб знайти і використовувати доменне ім'я на сертифікаті. Якщо ви не можете знайти його на сертифікаті, зв'яжіться з постачальником даних.

В інших випадках доменне ім'я на свідоцтві може бути для групи імен. Якщо це відбувається або проблема нерозчинна, будь ласка, по електронній пошті Кріс. Джон в noaa.gov звітувати проблему.  

<addAttributes>

  • Про нас ** <addAttributesГоловна ** до (#аддаттрибути) ОПЦІОНАЛЬНИЙ тег для кожного набору даних і для кожної змінної, яка дозволяєERDDAPАдміністратори керування атрибутами метаданих, пов’язаними з даними та його змінними.
    • ERDDAP™поєднує атрибути з джерела даних ("sourceAttributes") і "addAttributes" які ви визначаєте вdatasets.xml (які мають пріоритет) щоб зробити "комбіновані атрибути", якіERDDAP™користувачів див. Таким чином, можна використовуватиaddAttributesдля перевизначення значень вихідних атрибутів, додавання нових атрибутів або видалення атрибутів.
    • Про нас<addAttributes> тег закривається 0 або більше ** <Увійти> ** Теги, які використовуються для позначення окремих атрибутів.
    • Кожен атрибут складається з назви та значення (який має специфічний тип даних, наприклад, подвійний) й
    • Є лише один атрибут з вказаною назвою. Якщо є більше, останній має пріоритет.
    • Значення може бути єдиним значенням або просторово-розділеним переліком значень.
    • Синтаксис
      • Порядок замовлення<int> субтитри в межахaddAttributesне важливо.
      • Про нас<JavaScript licenses API Веб-сайт
          <att name="*name*" \\[type="*type*"\\] >*value*</att>
      • Назва призначення всіх атрибутів MUST старт з листом (А-З, а-з) і MUST містять тільки символи A-Z, a-z, 0-9, або '\_'.
      • Якщо<int> subtag не має значення або значення null, який атрибут буде вилучений з комбінованих атрибутів. Наприклад,<att name="rows" /> виведе ряди з комбінованих атрибутів. Наприклад,<name="координати">нул</att> дозволить видалити координати з комбінованих атрибутів.
атрибути Тип
  • [ОПОЦІЙНИЙ тип значення для<int> субtags] (#атрибутетип) вказує тип даних для значень. Тип за замовчуванням String. Приклад атрибуту String:
    <att name="creator\\_name">NASA/GSFC OBPG</att>
    • Дійсні типи для однозначних значень (8-бітне ціле) , короткий (16-біт підписано ціле) , внутр (32-біт підписано ціле) , довгий (64-біт підписано ціле) , плавати (32-розрядна точка) , подвійний (64-розрядна точка плавлення) , char і String. Наприклад,
      <att name="scale\\_factor" type="float">0.1</att>

Переглянути ці ноти протип даних charй Переглянути ці ноти продовгий тип данихй

  • Дійсні види для просторових списків значень (або однозначні значення) are byteList, shortList, unsignedShortList, charList, intList, longList, floatList, подвійний Список. Наприклад,
    <att name="actual\\_range" type="doubleList">10.34 23.91</att>  

Ви вказали список невизнаних шортів, але вони будуть перетворені в список відповідних символів Unicode (наприклад, "65 67 69" буде перетворюватися в "A C E". Якщо ви вказали charList, закодуйте будь-які спеціальні символи (наприклад, простір, подвійні лапки, застібки,<#32, або >#127) як ви зашифруєте їх у розділі даних файла NCCSV (Наприклад, ", """ або """, "\\\\", "\n", "\u20ac") й Немає рядка. Зберігайте значення String як багатолінійний String. Наприклад,

<att name="history">2011-08-05T08:55:02Z ATAM - made CF-1.6 compliant.  
2012-04-08T08:34:58Z ATAM - Changed 'height' from double to float.</att>

 

Глобальні атрибути

  • Про нас ** Глобальні атрибути / Глобальні<addAttributesГоловна ** до (#глобал-атрибути) --- <addAttributes> OPTIONAL tag в межах<датасет> тег, який використовується для зміни атрибутів, які поширюються на весь набір даних.

    • ** Використовуйте глобальний<addAttributes> змінити глобальні атрибути Dataset. ** ERDDAP™поєднує в собі глобальні атрибути з джерела даних** джерелоАтрибути ) і глобальний addAttributes які ви визначаєтеdatasets.xml (які мають пріоритет) зробити світ комбіновані атрибути ** , якіERDDAP™користувачів див. Таким чином, можна використовуватиaddAttributesдля перевизначення значень вихідних атрибутів, додавання нових атрибутів або видалення атрибутів.
    • Дивитися [ ** <addAttributesГоловна інформація (#аддаттрибути) що стосується глобальної та змінної <addAttributesГоловна ** й
    • ФГДіISO 19115-2/19139Метадані --- Нормально,ERDDAP™буде автоматично генерувати ISO 19115-2/19139 і FGDC (ФГДК-СТД-001-1998) Файли метаданих XML для кожного набору даних з використанням інформації з метаданих даних. Так, Хороші метадані Dataset призводить до хорошогоERDDAP-генерований ISO 19115 та FGDC метаданих. Будь ласка, вкажіть, що вносити багато часу та зусиль для покращення метаданих даних (що робити будь-яким чином) й Більшість атрибутів метаданих, які використовуються для створення метаданих ISO 19115 та FGDC від метаданихСтандарт метаданих ACDDDі так зазначені нижче.
    • Багато світових атрибутівERDDAP™Шукаємо їх і використовує їх різними способами. Наприклад, посилання наinfoUrlВключається на веб-сторінки зі списками даних та іншими місцями, щоб користувачі могли дізнатися більше про дані.
    • Коли користувач вибирає підмножину даних, глобальні атрибути, пов’язані з довгою змінною, широтою, висотою (або глибина) та часові діапазони (Наприклад, Southmost\_Northing, Northmost\_Northing, time\_coverage\_start, час\_coverage\_end) автоматично генеруються або оновлені.
    • Простий зразок глобального<addAttributes>:
      <addAttributes> 
      <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>
      <att name="infoUrl">https://coastwatch.pfeg.noaa.gov/infog/PH\\_ssta\\_las.html</att>
      <att name="institution">NOAA CoastWatch, West Coast Node</att>
      <att name="title">SST, Pathfinder Ver 5.0, Day and Night, Global</att>
      <att name="cwhdf\\_version" />
      </addAttributes>

Пухкий cwhdf\_version атрибут викликає джерело cwhdf\_version атрибут (якщо) видалити з кінцевого списку атрибутів.

  • Постачання цієї інформації допомагаєERDDAP™робіть краще завдання і допомагає користувачам зрозуміти дані. Хороші метадані робить дані, які ми використовуємо. Недостатні метадані забезпечують без використання даних. Будь ласка, введіть час, щоб зробити хорошу роботу з атрибутами метаданих.
Спеціальні глобальні атрибути вERDDAP™
визнання
  • визнання і кицькаАКДДСтандарт метаданих) - ЗАГАЛЬНІШІШКИ, ЩО ЗАБЕЗПЕЧЕНО ДОПОМОГАТИ групу або групи, які надали підтримку (неможливий, фінансовий) для проекту, що створюються дані. Наприклад,
    <att name="acknowledgment">AVISO</att>

Зауважте, що ACDD 1.0 та 1.1 використовується для заклинання "зновлення" (що є звичайним записанням у США.) , але ACDD 1.3 змінив це до "закінчення" (що є звичайним записанням в У.К.) й Моє розуміння полягає в тому, що зміна була по-справжньому випадковою і що вони, безумовно, не визнавали об'єктиви змін. Що мені! Зараз існують мільйони файлів даних по всьому світу, які мають "перевагу" і мільйони, які мають "зловживання". Підкреслює фоллі «прості» зміни до стандарту, а також підкреслює необхідність стабільності в стандартах. Оскільки ACDDD 1.3 (яка версія ACDD, якаERDDAP™опори) каже:ERDDAP™ (точно GenerateDatasets Хмл) заохочує.  

cdm\_altitude\_proxy
  • cdm\_altitude\_proxy для EDDTable datasets, які не мають змінної висоти або глибини, але мають змінну, яка є проксі для висоти або глибини (Наприклад, тиск, sigma, пляшкаКількість) , ви можете використовувати цей атрибут для визначення змінної. Наприклад,
    <att name="cdm\\_altitude\\_proxy">pressure</att>  

Якщоcdm\_data\_typeПрофіль або ТраєкториПрофіл і не існує змінної висоти або глибини, cdm\_altitude\_proxy MUST буде визначено. Якщо визначаються кдм\altitude\_proxy,ERDDAP™буде додано наступні метадані в змінну: \_Координувати AxisType=Висота і вісь=Z.  

cdm\_data\_type

CDM все ще і може знову змінитися.ERDDAP™детальнішеДискретні шамплінг геометереї (ДСГ) УкраїнськийКМ 1.6Конвенції метаданих (раніше назвали конвенції спостереження CF) й

  • Ефір глобальних данихджерелоАтрибутиабо його глобальний<addAttributesГоловна MUST включає в себе атрибут cdm\_data\_type. Кілька типів даних (як EDDTable ЗОбіс) автоматично встановить.
  • ДляEDDGriddatasets, cdm\_data\_type options are Grid (Найпоширеніший тип за замовчуванням і по всьомуEDDGridдані) , MovingGrid, Інше, Точка, Профіль, RadialSweep, TimeSeries, TimeSeriesProfile, Swath, Traжекторія та TraжекторyProfile. В даний часEDDGridне вимагає, щоб будь-які пов'язані метадані були вказані, а не перевіряють, що дані відповідають типу cdm\_data\_type. Що, ймовірно, зміниться найближчим часом.
  • EDDTable використовує cdm\_data\_type у строгому вигляді, наступні специфікації CF DSG, а не CDM, які з яких причин не було оновлено, щоб відповідати DSG. Якщо метаданих даних не відповідає метаданих данихERDDAP's cdm\_data\_type' вимога (Переглянути нижче) , датасет не буде завантажуватися і генеруєповідомлення про помилкуй (Це хороша річ, в сенсі, що повідомлення про помилку розповість вам, що неправильно, так що ви можете виправити його.) І якщо дані, які не відповідають встановленню метаданих даних (Наприклад, якщо є більш ніж одне широтне значення для даної станції в часі) , деякі запити на дані будуть повернені неправильні дані у відповідь. Так переконайтеся, що ви отримаєте все це правильно.

Для всіх цих даних, в Конвенції таMetadata\_Conventionsглобальні атрибути, будь ласка, зверніться до CF-1.6 (не CF-1.0, 1.1, 1.2, 1.3, 1.4 або 1.5) , оскільки CF-1.6 є першою версією для включення змін, пов'язаних з дискретною геометрією Sampling (ДСГ) конвенції.

  • ERDDAP™має непристойний зв'язок з CF DSG
  • ERDDAP™може зробити дійсний Dataset DSG з джерела, який вже є дійсним файлом DSG (й) , або з джерела даних, які не встановлюються для DSG, але можуть бути внесені зміни до метаданих (деякі з якихERDDAP-специфічний для забезпечення більш загального підходу для визначення налаштування DSG) й
  • ERDDAP™має багато тестів, коли він завантажує дані. Якщо датасет, який має cdm\_data\_type (абоfeatureType) атрибут успішно завантажується вERDDAP™, потімERDDAP™говоримо, що датасет відповідає вимогам DSG (інше,ERDDAP™викидати виняток, що пояснюється першою проблемою, яку він знайшов) й WARNING: З'являється успішно завантажений набір даних для задоволення вимог DSG (має правильне поєднання атрибутів) , але все ж може бути неправильно налаштований, що призводить до неправильних результатів.ncCF і.ncФайли відповіді CFMA. (Програмне забезпечення є розумним в деяких випадках і безглуздим в інших.)
  • Коли ви подивитеся на метадані Dataset вERDDAP™Список даних DSGERDDAP's внутрішній формат (гігант, база даних таблиці) й Не в одному з форматів DSG (Наприклад, розміри та метадані не мають права) , але дані, необхідні для обробки даних, як Dataset DSG, є у метаданих (Наприклад, cdm\_data\_type=TimeSeries та cdm\_timeseries\_variables= aCsvListOfStationRelatedВаріабельні у глобальних метаданих та cf\role=timeseries\_id для деяких змінних) й
  • Якщо користувач запитує субсету даних у додатку.ncПанчохи (Увійти.ncфайл у форматі PDFG Contiguous Ragged Array) або.ncФайл CFMA (з.ncфайл у форматі PDFG) , що файл буде дійсним файл CF DSG. ВАЖЛИВО: Однак якщо датасет невірно встановлений (так, що обіцянки, зроблені метаданих, не вірні) , потім файл відповідь буде технічно дійсним, але буде невірно.  
EDDTable cdm_data_types
  • Для EDDTable datasets, cdm\_data\_type options (і пов'язані вимогиERDDAP) Р
Твитнуть
  • Твитнуть-- для набору вимірювань, що беруться в незрівнянних часах і місцях.
    • Як і всі cdm\_data\_types, крім іншого, Point datasets MUST мають довгота, широта і часові змінні.
Профіль
  • Профіль-- це сукупність вимірювань, які беруться в один раз, на одне широтне розташування довготи, але в більш ніж однієї глибини (або висоти) й Ці дані можуть бути зібрані з цих профілів, наприклад, 7 профілів з різних точок. Цей cdm\_data\_type не несе ніякого логічного з'єднання між будь-яким з профілів.

  • Один з змінних (Наприклад, профіль\_number) MUST має змінний атрибут cf\role=profile\_id для визначення змінної, яка унікально визначає профілі.

    <att name="cf\\_role">profile\\_id</att>  

Якщо будь-яка інша змінна підходить, врахуйте за допомогою змінної часу.

cdm\_profile\_variables
  • Список даних містить глобальний атрибутcdm\_profile\_variables, де значення є окремим переліком змінних, які мають інформацію про кожен профіль. Для даного профілю значення цих змін MUST є постійними. Наприклад,
    <att name="cdm\\_profile\\_variables">profile\\_number,time,latitude,longitude</att>

Список MUST включає в себе cf\_role=profile\_id змінну та всі інші змінні з інформацією про профіль, а час, широтність та довгота. Список ніколи не буде включати висоту, глибину або будь-які зміни спостереження.  

\[Примітка: cdm\_data\_type=Profile слід рідко використовувати. У практиці, що дана датасет, як правило, або TimeSeriesProfile (профілі в фіксованому положенні) або ТраєкториПрофіл (профілі по траєкторії) , і так слід правильно визначитися з такими.\]

Розклад
  • Розклад-- послідовність вимірювань (Наприклад, температура морської води) взято на себе, фіксована, широта, довгота, глибина (або висоти) розташування. (Подумайте про це як "станція".) Ці дані можуть бути зібрані з цих TimeSeries, наприклад, послідовність від кожного з 3 різних точок.
    • Один з змінних (Наприклад, станція\_id) MUST має змінний атрибут cf\_role=timeseries\_id для визначення змінної, яка унікально визначає станції.
      <att name="cf\\_role">timeseries\\_id</att>
cdm\_timeseries\_variables
  • Список даних містить глобальний атрибутcdm\_timeseries\_variables, де значення є окремим переліком змінних, які мають інформацію про кожну станцію. Для даної станції значення цих змін MUST є постійними. Наприклад,
    <att name="cdm\\_timeseries\\_variables">station\\_id,station\\_type,latitude,longitude</att>

Список MUST включає в себе cf\_role=timeseries\_id змінну та всі інші змінні з інформацією про станцію, яка майже завжди включає широтність та довгота (і висота або глибина, якщо присутні) й Список ніколи не буде включати час або будь-які зміни спостереження.

  • Для деяких мотивованих буй, дані, які можуть мати два набори широтності і довготи змінних:
    1. Одна пара широти і довготи значень, які є постійними (i.e., фіксоване розташування обмотки) й УERDDAP™, дати ці змінніdestinationNames широтності і довготи, і включають ці змінні в список cdm\_timeseries\_variables.
    2. Точні значення широти і довготи, пов'язані з кожним спостереженням. УERDDAP™, дати ці змінні різніdestinationNameй (e.g., точний Навігація) і не включають ці змінні в список cdm\_timeseries\_variables. Причиною цього є: з теоретичної точки зору, для даних DSG TimeSeries, широта і довгота (і висота або глибина, якщо присутні) розташування станції MUST є постійним.
ТаймсерПрофілактика
  • ТаймсерПрофілактика-- для послідовності профілів, прийнятих на одному, фіксованому, широтому місці довготи. Кожен профіль - це набір вимірювань, прийнятих на декількох висотах або глибинах. Ці дані можуть бути зібрані в цих форматах TimeSeriesProfiles, наприклад, послідовність профілів, що беруться на кожен з 12 різних точок.
    • Один з змінних (Наприклад, станція\_id) MUST має змінний атрибут cf\_role=timeseries\_id для визначення змінної, яка унікально визначає станції.
        <att name="cf\\_role">timeseries\\_id</att>
    • Один з змінних (Наприклад, профіль\_number) MUST має змінний атрибут cf\role=profile\_id для визначення змінної, яка унікально визначає профілі.
      <att name="cf\\_role">profile\\_id</att>  
      (Заданий профіль\_ідентифікатор має бути унікальним для даної разової категорії\_id.) Якщо будь-яка інша змінна підходить, врахуйте за допомогою змінної часу.
    • Ці дані MUST включають глобальний атрибут cdm\_timeseries\_variables, де значення є кома-сепарований список змін, які мають інформацію про кожну станцію. Для даної станції значення цих змін MUST є постійними. Наприклад,
      <att name="cdm\\_timeseries\\_variables">station\\_id,station\\_type,latitude,longitude</att>

Список MUST включає в себе cf\_role=timeseries\_id змінну та всі інші змінні з інформацією про станцію, яка майже завжди включає широтність та довгота. Список ніколи не буде включати час, висоту, глибину або будь-які зміни спостереження.

  • Список змін, які мають інформацію про кожен профіль. Для даного профілю значення цих змін MUST є постійними. Наприклад,
    <att name="cdm\\_profile\\_variables">profile\\_number,time</att>

Список MUST включає в себе cf\_role=profile\_id змінну та всі інші змінні з інформацією про профіль, яка майже завжди включає час. Список ніколи не буде включати широтність, довгота, висоту, глибину або будь-які зміни спостереження.

Трактори
  • Трактори-- - послідовність вимірювань, які беруться вздовж траєкторії (Шлях через простір і час) (Наприклад, море\_вода\_температура, що приймається судном, оскільки вона переміщається через воду) й Ці дані можуть бути зібрані з цих траєкторій, наприклад, послідовність від кожного з 4 різних суден.
    • Один з змінних (Наприклад, корабель\_id) MUST має атрибут cf\role=traloggery\_id для визначення змінної, яка унікально визначає траєкторії.
      <att name="cf\\_role">trajectory\\_id</att>
JavaScript licenses API Веб-сайт Go1.13.8
  • Список даних містить глобальний атрибутJavaScript licenses API Веб-сайт Go1.13.8, де значення є окремим переліком змінних, які мають інформацію про кожну траєкторію. Для даної траєкторії значення цих змін MUST є постійними. Наприклад,
    <att name="cdm\\_trajectory\\_variables">ship\\_id,ship\\_type,ship\\_owner</att>

Список MUST включає в себе cf\role=траєкторію\_id змінної та всі інші змінні з інформацією про траєкторію. Список ніколи не буде включати час, широта, довгота або будь-які зміни спостереження.

JavaScript licenses API Веб-сайт
  • JavaScript licenses API Веб-сайт-- є послідовністю профілів, які беруться вздовж траєкторії. Ці дані можуть бути зібрані в цих файлах, наприклад, послідовність профілів, прийнятих на 14 різних суден.
    • Один з змінних (Наприклад, корабель\_id) MUST має змінний атрибут cf\role=traloggery\_id для визначення змінної, яка унікально визначає траєкторії.
      <att name="cf\\_role">trajectory\\_id</att>
    • Один з змінних (Наприклад, профіль\_number) MUST має змінний атрибут cf\role=profile\_id для визначення змінної, яка унікально визначає профілі.
      <att name="cf\\_role">profile\\_id</att>  
      (Для даної траєкторії\_ід.) Якщо будь-яка інша змінна підходить, врахуйте за допомогою змінної часу.
    • Список змін, які мають інформацію про кожну траєкторію. Для даної траєкторії значення цих змін MUST є постійними. Наприклад,
      <att name="cdm\\_trajectory\\_variables">ship\\_id,ship\\_type,ship\\_owner</att>

Список MUST включає в себе cf\role=траєкторію\_id змінної та всі інші змінні з інформацією про траєкторію. Список ніколи не буде включати змінні профілю, час, широтість, довгота або будь-які зміни спостереження.

  • Список змін, які мають інформацію про кожен профіль. Для даного профілю значення цих змін MUST є постійними. Наприклад,
    <att name="cdm\\_profile\\_variables">profile\\_number,time,latitude,longitude</att>

Список MUST включає в себе cf\_role=profile\_id змінну та всі інші змінні з інформацією про профіль, яка майже завжди включає час, широтність та довгота. Список ніколи не буде включати висоту, глибину або будь-які зміни спостереження.

Інше
  • Інше- не має вимог. Використовуйте його, якщо датасет не підходить один з інших варіантів, можливо, якщо датасет не містить чіткості, довготи і часових змін.  
  • Всі EDDTable datasets з cdm\_data\_type, крім "Other" MUST мають довго, широта і часові змінні.
  • Дані з профілями MUST мають високу змінну, глибину змінну, абоcdm\_altitude\_proxyзмінна.
  • Якщо ви не можете зробити дані, які відповідають всім вимогам до ідеального cdm\_data\_type, скористайтеся "Point" (що має кілька вимог) або "Інші" (які не мають вимог) до.
  • Ця інформація використовуєтьсяERDDAP™в різних варіантах, наприклад, але в основному для виготовлення.ncФайли CF (.ncФайли, які відповідають Contiguous Ragged Array) і.ncФайли CFMA (.ncФайли, які відповідають багатовимірним представникам Array, пов'язані з кдмом даних \_data\_type) як визначеноДискретні шамплінг геометереї (ДСГ) УкраїнськийПанчохиКонвенції метаданих, які раніше назвали «Конвенції спостереження за ТПП».
  • Хін: Для цих даних, правильне налаштуванняsubsetVariablesзазвичай є поєднання всіх змінних, що вказані в кдм\_...\_variables атрибутів. Наприклад, для TimeSeriesProfile, використовуйте cdm\_timeseries\_variables плюс cdm\_profile\_variables.
contributor\_name
  • contributor\_name АКДДСтандарт метаданих) Чи можна знайти людину, організацію або проект, який долучився до цього Dataset (наприклад, оригінальний творець даних, перш ніж він був перероблений творцем цього Dataset) й Наприклад,
        <att name="contributor\\_name">NOAA OceanWatch - Central Pacific</att>  

Якщо "contributor" насправді не застосовується до набору даних, визнайте цей атрибут. Порівнятиcreator\_name, це іноді зосереджено на джерело фінансування.

contributor\_role
  • contributor\_role АКДДСтандарт метаданих) - Визначений спосіб визначення роліcontributor\_nameй Наприклад,
        <att name="contributor\\_role">Source of Level 2b data</att>  

Якщо "contributor" насправді не застосовується до набору даних, визнайте цей атрибут.

Конвенції
  • Конвенції ПанчохиСтандарт метаданих) ЗАГАЛЬНА ЗАГАЛЬНА. (Ви можете переглянути в майбутньому.) Значення є окремим списком стандартів метаданих, які ці дані зберігаються. Наприклад:
    <att name="Conventions">COARDS, CF-1.6, ACDD-1.3</att>  

Загальні конвенції метаданих, що використовуються вERDDAP™:

Якщо ваш набір даних дивиться на деякі додаткові стандарти метаданих, будь ласка, додайте назву до списку CSV у атрибуті Конвенції.

coverage\_content\_type
  • coverage\_content\_type до 1 2 3 4 5+Стандарт метаданих) - РЕКОМЕНДОВАНИЙ спосіб визначення типу сітчастих даних (вEDDGridдані) й Наприклад,
    <att name="coverage\\_content\\_type">modelResult</att>  

Допустимі значення є допоміжніінформація, зображення, модельРезультати, фізичні Вимірювання (За замовчуванням при створенні метаданих ISO 19115) , якістьІнформація, посиланняІнформація та тематичнакласифікація. (Не використовуйте цей тег для EDDTable datasets.)

creator\_name
  • creator\_name АКДДСтандарт метаданих) Чи можна знайти людину, організацію або проект (якщо не конкретна особа або організація) , найбільш відповідальний за створення (або останні репроцеси) даних. Наприклад,
    <att name="creator\\_name">NOAA NMFS SWFSC ERD</att>  

Якщо дані були значно перероблені (наприклад, супутникові дані від рівня 2 до рівня 3 або 4) , як правило, репроцесор вказаний як творець і оригінальний творець вказаний черезcontributor\_nameй Порівнятипроект, це більш гнучка, оскільки вона може виявити людину, організацію або проект.

creator\_email
  • creator\_email АКДДСтандарт метаданих) - Визначений спосіб ідентифікації адреси електронної пошти (правильно відформатований) Щоб зв'язатися з творцем. Наприклад,
    <att name="creator\\_email">erd.data@noaa.gov</att>  
creator\_url
  • creator\_url АКДДСтандарт метаданих) Це спосіб виявлення URL-адреси для організації, яка створила дані, або URL-адресу з інформацією творця про цей набір даних (але це більше цілейinfoUrl) й Наприклад,
    <att name="creator\\_url">https://www.pfeg.noaa.gov</att>  
date\_created
  • date\_created АКДДСтандарт метаданих) – Визначено спосіб визначення дати, на яку було створено дані (наприклад, обробляється в цю форму) Формат ISO 8601 Наприклад,
    <att name="date\\_created">2010-01-30</att>  

Якщо дані періодично додані до даних, це перша дата, яку було здійснено оригінальні дані.

date\_modified
  • date\_modified АКДДСтандарт метаданих) Чи можливо виявляти дату, на якій дані було оновлено останнім (наприклад, коли було виправлено помилку або коли додано останні дані) Формат ISO 8601 Наприклад,
    <att name="date\\_modified">2012-03-15</att>  
date\_issued
  • date\_issued АКДДСтандарт метаданих) З’явився спосіб визначення дати, на якій дані були вперше внесені до інших, у форматі ISO 8601, наприклад, 2012-03-15. Наприклад,
    <att name="date\\_issued">2010-07-30</att>  

Наприклад, даніdate\_createdз 2010-01-30, але був проведений тільки публічно доступний 2010-07-30.date\_issuedменш часто використовується, ніжdate\_createdіdate\_modifiedй Якщоdate\_issuedприпущена, припустимо бути таким же, що іdate\_createdй

глобальнийdrawLandMask
  • drawLandMask --- Це глобальний атрибут OPTIONAL, який використовуєтьсяERDDAP™ (і без стандартів метаданих) який визначає значення за замовчуванням для параметра "Draw Land Mask" на основі даних, що робить графічну форму ( datasetID .граф) і для параметра &.land у URL, запитуючи карту даних. Наприклад,
    <att name="drawLandMask">over</att>  

ДивитисяdrawLandMaskОглядй

featureType
  • featureType ПанчохиСтандарт метаданих) ЄДРПОУ та/або РЕПЛАЦЕД. Якщо даніcdm\_data\_typeдоречно,ERDDAP™автоматично використовувати його для створенняfeatureTypeатрибут. Так вам не потрібно.

Однак, якщо ви використовуєтеEDDTableЗ альбомуNcCFFilesстворювати дані з файлів, які слідувати заПанчохи Дискретні шамплінг геометереї (ДСГ) стандарт, самі файли повинні матиfeatureTypeправильно визначено, щобERDDAP™читати файли правильно. Що входить до вимог CF DSG для цього типу.  

Історія
  • Історія ПанчохиіАКДДстандарти метаданих) Багатолінійний глобальний атрибут RECOMMENDED з лінією для кожного кроку обробки, який проходить. Наприклад,
    <att name="history">2011-08-05T08:55:02Z CMOR: Rewrote data to comply with CF standards.  
    2012-04-08T08:34:58Z CMOR: Converted 'height' type from 'd' to 'f'.</att>
    • Ідеально підходить для кожної лінії ISO 8601:2004 (Етикети) дата форматування+timeZ (Наприклад, 2011-08-05T08:55:02З) далі описом етапу обробки.
    • ERDDAP™не існує.
    • Якщо це вже існує,ERDDAP™запрошуватиме нову інформацію до існуючої інформації.
    • історія є важливою, тому що вона дозволяє клієнтам здійснювати резервні копії до оригінального джерела даних.
infoUrl
  • infoUrl є глобальним атрибутом з URL-адресою веб-сторінки з більш детальною інформацією про цей набір даних (Як правило, на сайті початкової установи) й Наприклад,
    <att name="infoUrl">http://www.globec.org/</att>
    • Ефір глобальних данихджерелоАтрибутиабо його глобальний<addAttributesГоловна MUST включає цей атрибут.
    • infoUrlважливо, щоб клієнти дізналися більше про дані з оригінального джерела.
    • ERDDAP™відображає посилання на посиланняinfoUrlза формою доступу даних ( datasetID Українська) , Зробіть сторінку Графа ( datasetID .граф) та інші веб-сторінки.
    • Якщо URL-адреса є частиною запиту (після "?) , вона вже була% закодованой Вам необхідно зашифрувати спеціальні символи в обмеженнях (крім початкового '&' і головного'=', якщо будь-який) у вигляді %HH, де HH є 2 дігітним шістнадцятковим значенням персонажа. Як правило, вам просто потрібно конвертувати кілька символів пунктуації: % в %25 і в %26, " в %22,<в %3C, = в %3D, > в %3E, + в %2B,|в %7К,\[в %5Б,\]в %5D, простір в %20 і перетворюйте всі символи вище #127 у свою форму UTF-8, а потім відсотків кодують кожну байт UTF-8 у форматі %H (запитати програміста) й Наприклад, &stationID>="41004" стає іstationID%3E=%2241004%22 Відсоткова кодування зазвичай потрібна при доступіERDDAPчерез програмне забезпечення, крім браузера. Браузери, як правило, обробляється процентним кодуванням для вас. У деяких ситуаціях вам потрібно процентувати всі символи, крім A-Za-z0-9\_-!.~ Р () \*, але все ще не зашифрувати початковий '&' або головний'='й Мова програмування має інструменти для цьогоJavaРjava.net.URLEncoder
      іJavaСценаристи [encodeURIComponent()до ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent ) ) і є веб-сайти, які процентують код/декодй
    • Зdatasets.xmlФайл XML, ви MUST також &-encode ALL '&', '<', і '>' в URL як '&', '<', і '>' після відсоткового кодування.
    • infoUrlунікальнийERDDAPй Це не з будь-якого стандарту метаданих.
Інститут
  • Інститут ПанчохиіАКДДстандарти метаданих) є глобальним атрибутом з короткою версією установи, що є джерелом даних (зазвичай акронімом, як правило,<20 символів. Наприклад,
    <att name="institution">NASA GSFC</att>
    • Ефір глобальних данихджерелоАтрибутиабо його глобальний<addAttributesГоловна MUST включає цей атрибут.
    • ERDDAP™відображає інститут, коли він відображає список даних. Якщо ім'я установи тут більше 20 символів, лише перші 20 символів буде видно у списку даних (але весь заклад можна побачити, поставивши курсор миша над сусіднім іконою?) й
    • Якщо ви додаєте установу до переліку<categoryAttributesГоловна вERDDAPРНалаштування.xmlФайл, користувачі можуть легко знайти дані з тієї ж установи черезERDDAP«Пошук даних за категоріями» на головній сторінці.
Новини
  • Новини АКДДСтандарт метаданих) - Список слів та коротких фраз (наприклад,ГКМД Наукові ключові слова) описати дані в загальному вигляді, а не надавати іншим знанням даних (наприклад, для океанографічних даних, включають океан) й Наприклад,
    <att name="keywords">ano, circulation, coastwatch, currents, derived, Earth Science &gt; Oceans &gt; Ocean Circulation &gt; Ocean Currents, eastward, eastward\\_sea\\_water\\_velocity, experimental, hf radio, meridional, noaa, northward, northward\\_sea\\_water\\_velocity, nuevo, ocean, oceans, radio, radio-derived, scan, sea, seawater, velocity, water, zonal</att>  

Зdatasets.xmlXML документ, символи та,<, і > в атрибуті як ключові слова (Наприклад, символи GCMD) повинні бути закодовані як &,<, і , відповідно. При завантаженні данихERDDAPй

  • "Earth Science > "Додається до запуску будь-якого ключа GCMD, який не має його.
  • Ключові слова GCMD перетворюються на випадок Назва (i.e., перші літери) й
  • Вибрані ключові слова в сортування замовлення та будь-які нові символи.  
keywords\_vocabulary
  • keywords\_vocabulary АКДДСтандарт метаданих) є атрибутом RECOMMENDED: якщо ви маєте наступний гід для атрибутів слів/фразів у вашому атрибуті ключових слів (Наприклад, GCMD Science Ключові слова) , покласти ім'я цього напряму тут. Наприклад,
    <att name="keywords\\_vocabulary">GCMD Science Keywords</att>  
ліцензія
  • ліцензія АКДДСтандарт метаданих) є глобальним атрибутом STRONGLY RECOMMENDED з ліцензією та/або обмеженнями використання. Наприклад,
    <att name="license">\\[standard\\]</att>
    • Якщо\[стандарт\]" відбувається в значення атрибуту, він буде замінений стандартомERDDAP™ліцензія від<СтандартЛіцензія> тег вERDDAPР \[домка\]/webapps/erddap/WEB-INF/classes/gov/noaa/pfel/erddap/util/messages.xml файл.  
Metadata\_Conventions
  • Metadata\_Conventions від застарілогоАКДД 1.0 (які були виявлені вMetadata\_Conventionsяк "UnidataEnglish, Українська, Français...) Стандарт метаданих. Текстове значення атрибуту було відокремленим переліком конвенцій метаданих, що використовуються цими даними. Якщо за допомогою Dataset використовує ACDD 1.0, цей атрибут є STRONGLY RECOMMENDED, наприклад,
    <att name="Metadata\\_Conventions">COARDS, CF-1.6, Unidata Dataset Discovery v1.0</att>  

АлеERDDAP™Тепер рекомендуємо ACD-1.3. Якщо у вас єПеремкнено дані для використання ACDD-1.3, використанняMetadata\_ConventionsСТРАХЛЬНІ ЗНИЖКИ: просто використовуйте [<Акції> (Без категорії) до.

processing\_level
проект
  • проект АКДДСтандарт метаданих) є атрибутом OPTIONAL для визначення проекту, який містить дані. Наприклад,
    <att name="project">GTSPP</att>  

Якщо датасет не входить до проекту, не використовуйте цей атрибут. Порівнятиcreator\_name, це зосереджено на проекту (не особа або організація, яка може бути залучена до декількох проектів) й

publisher\_name
  • publisher\_name АКДДСтандарт метаданих) Чи можна виявляти особу, організацію, або проект, який публікує цей набір даних. Наприклад,
    <att name="publisher\\_name">JPL</att>  

Наприклад, ви видавець, якщо інша людина або групастворенняВи просто перезавантажте його черезERDDAPй Якщо "опулікат" не дуже застосовується до набору даних, ознайомтеся з цим атрибутом. Порівнятиcreator\_name, видавець, ймовірно, не змінився або переробляє дані; видавець просто робить дані доступні в новому місці.

publisher\_email
  • publisher\_email АКДДСтандарт метаданих) - Визначений спосіб ідентифікації адреси електронної пошти (JavaScript licenses API Веб-сайт Go1.13.8) який надає спосіб зв'язатися з видавцем. Наприклад,
    <att name="publisher\\_email">john\\_smith@great.org</att>  

Якщо "опулікат" не дуже застосовується до набору даних, ознайомтеся з цим атрибутом.

publisher\_url
  • publisher\_url АКДДСтандарт метаданих) Це спосіб визначення URL-адреси для організації, яка опублікувала дані, або URL-адресу з інформацією видавця про цей набір даних (але це більше цілейinfoUrl) й Наприклад,
    <att name="publisher\\_url">https://podaac.jpl.nasa.gov</att>  

Якщо "опулікат" не дуже застосовується до набору даних, ознайомтеся з цим атрибутом.

real\_time
  • real\_time глобальний атрибут String (не з будь-якого стандарту) якщо це реальний часовий датасет. Наприклад,
    <att name="real\\_time">true</att>  

Якщо це помилково (За замовчуванням) йERDDAP™буде кешувати відповіді на запити для типів файлів, де весь файл повинен бути створений доERDDAP™може почати надсилати відповідь на користувача і повторно використовувати їх протягом 15 хвилин (Наприклад,.nc, .png) й Якщо це встановлено,ERDDAP™ніколи не буде кешувати файли відповіді і завжди повернеться до новостворених файлів.

sourceUrlатрибути
  • sourceUrl є глобальним атрибутом з URL джерела даних. Наприклад,
    <att name="sourceUrl">https://opendap.co-ops.nos.noaa.gov/ioos-dif-sos/SOS</att>  
    (але викласти все на одну лінію)
    • ERDDAP™Як правило, створює цей глобальний атрибут автоматично. Два винятки EDDTableЗ альбомуHyraxФайли та EDDTableЗ альбомуThreddsFiles.
    • Якщо джерело є локальними файлами та файлами, створеними Вашою організацією, використовуйте
        <att name="sourceUrl">(local files)</att>
    • Якщо джерело є локальною базою та даними, які були створені організацією, використовуйте
        <att name="sourceUrl">(local database)</att>
    • sourceUrlважливо, тому що це дозволяє клієнтам здійснювати резервну копію на оригінальне джерело даних.
    • sourceUrlунікальнийERDDAPй Це не з будь-якого стандарту метаданих.
standard\_name\_vocabulary
  • standard\_name\_vocabulary АКДДСтандарт метаданих) є атрибутом RECOMMENDED для визначення назви контрольованої лексики, з якої зміннаstandard\_nameй Наприклад,
    <att name="standard\\_name\\_vocabulary">CF Standard Name Table v77</att>  

для версії 77 з версіїТаблиця розмірів CFй  

subsetVariables
  • subsetVariables (для EDDTable даних тільки) Відкрито глобальний атрибут, який дозволяє вказати список категорій, що містяться у списку [Електронний ресурс].<dataVariable>] (#datavariable) destinationNames для визначення змін, які мають обмежену кількість значень (зазначений інший спосіб: змінні, для яких кожен з значень має багато дублікатів) й Наприклад,
    <att name="subsetVariables">station\\_id, longitude, latitude</att>  

Якщо даний атрибут присутній, то дані datasetID Веб-сайт .subset (і посилання на цей список даних) дозволяє користувачам швидко і легко вибрати різні підбори даних.

  • Кожен раз навантажується датасет,ERDDAPвантажі і магазини на диску стіл з усіма відмінними () комбінацій субсету Значення змінної.ERDDAP™може прочитати, щоsubsetVariablesстіл і процес дуже швидко (особливо в порівнянні з читанням лотів файлів даних або отримання даних з бази даних або іншої зовнішньої служби) й
  • Що дозволяєERDDAP™до 3 речей:
    1. Це дозволяєERDDAP™Щоб додати список можливих значень у списку спадок на сторінці доступу до даних, зробіть веб-сторінку графа та веб-сторінці .subset.
    2. Це дозволяєERDDAP™Щоб запропонувати веб-сторінку .subset для цього облікового запису. Ця сторінка цікава тому, що вона дозволяє легко знайти дійсні комбінації значень цих змінних, які для деяких даних і деяких змінних є дуже важко, дуже важко (практично неможливо) й Далі всі запити користувачів для відмінного () субтитри Змінні дані будуть дуже швидко.
    3. Якщо є запит користувача, який тільки відноситься до підмножини тих змінних,ERDDAP™швидко читатиsubsetVariablesТаблиця і відповідь на запит. Що може заощадити тонну часу і зусиль дляERDDAPй
  • Порядок замовленняdestinationNames ви визначаєте порядок сортування на datasetID .subset веб-сторінки, тому ви зазвичай вказите найбільш важливі змінні спочатку, потім найменш важливо. Наприклад, для даних з даними часових рядів для декількох станцій можна використовувати, наприклад,
        <att name="subsetVariables">station\\_id, longitude, latitude</att>  

так, що значення сортуються станцією\_id.

  • Очевидно, що це ваш вибір, який змінний для включення вsubsetVariablesсписок, але запропоноване використання:

В цілому, включають змінні для яких ви хочетеERDDAP™для відображення випадаючого списку опцій за формою доступу до даних (Українська) та макіяж (.граф) веб-сторінки.

В цілому, включіть змінні дані з інформацією про функції Dataset (станції, профілі та/або траєкторії, неможливі відcdm\_timeseries\_variablesйcdm\_profile\_variablesйJavaScript licenses API Веб-сайт Go1.13.8) й Є лише декілька різних значень для цих змін, тому вони добре працюють з випадками.

Не містить ніяких змінних даних, пов'язаних з індивідуальними спостереженнями (e.g., час, температура, солоність, швидкість струму) вsubsetVariablesсписок. Є занадто багато різних значень для цих змінних, тому список випадаючий буде повільним, щоб завантажити і бути важко працювати з (або не працювати) й

  • Якщо кількість різних комбінацій цих змін перевищує 1,000,000, слід враховувати обмеженняsubsetVariablesщоб зменшити кількість різних комбінацій нижче 1,000,000; в іншому випадку, datasetID .subset веб-сторінки можна створювати повільно. У крайніх випадках дані не можуть завантажуватисяERDDAP™Оскільки створення списку відмінних комбінацій використовує занадто багато пам'яті. Якщо так, ви MUST видаліть деякі змінні зsubsetVariablesсписок.
  • Якщо кількість різних значень будь-якої змінної підмножини більше, ніж близько 20 000, слід розглянути не в тому числі, що змінна в спискуsubsetVariables; в іншому випадку він займає довгий час для передачі datasetID .subset, datasetID й datasetID Веб-сторінки .html Також на Mac дуже важко зробити вибір з випадаючого списку з більш ніж 500 одиниць через відсутність прокрутки. Проблемою є: видалення змінних з списку, коли користувачі не ймовірно вибирають значення з випадаючого списку.
  • Ви повинні перевірити кожен набір даних, щоб побачити, якщоsubsetVariablesНалаштування океї. Якщо сервер вихідних даних є повільним і він займає занадто довго (або не вдається) для завантаження даних або зменшення кількості змінних, зазначених або видаленняsubsetVariablesглобальний атрибут.
  • Підставка Варіанти дуже корисні. Отже, якщо ваш набір даних підходить, будь ласка, створітьsubsetVariablesатрибут.
  • EDDTableЗ альбомуSOSавтоматично додає
        <att name="subsetVariables">station\\_id, longitude, latitude</att>  

при створенні даних.

  • Можливе попередження: якщо користувач використовує datasetID веб-сторінки під назвою «Повернення» або «Нова лінія» datasetID .subset не буде.ERDDAP™не може працювати над цим питанням через деякі деталі HTML. У будь-якому випадку, це майже завжди гарна ідея для видалення перевезень Щоб допомогти вам виправити проблему, якщо EDDTable.subsetVariablesМетод данихERDDAPВизначте значення даних, які спричинять неприємності, він по електронній пошті попередження зі списком вихідних значень на електронну пошту Про нас Для електронних адрес, вказаних в налаштуваннях.xml. Таким чином, ви знаєте, що потрібно зафіксувати.
  • Передгенеровані таблиці підмножини. Нормально, колиERDDAP™навантажує набір даних, він вимагає відмінного () Заміна змінного таблиці даних з джерела даних, просто через звичайний запит даних. У деяких випадках дані не доступні з джерела даних або оновлення з джерела даних може бути важко на сервері джерела даних. Якщо так, ви можете надати таблицю з інформацією в.jsonабо .csv файл з назвою домка / контент / erddap/subset/ datasetID .json (або .csv) й Якщо присутні,ERDDAP™читати його після завантаження даних і використовувати його як джерело даних підмножини.
  • Якщо є помилка під час його читання, дані, які не будуть завантажені.
  • У MUST є однакові імена стовпців (наприклад, в тому ж випадку) як<subsetVariables>, але стовпчики МАЄ в будь-якому порядку.
  • У MAY є додаткові стовпчики (вони будуть видалені, і будуть видалені нові червоні рядки) й
  • Відсутні значення повинні бути відсутні значення (не підроблені номери, як -99) й
  • .jsonФайли можуть бути трохи важче, щоб створити, але боротися з символами Unicode..jsonФайли легко створювати, якщо ви створюєте їх зERDDAPй
  • .csv файли легко працювати з, але підходять тільки для символів ISO 8859-1. .csv файли MUST мають імена стовпців на першому ряду і дані на наступних рядках.
  • Для величезних даних або коли<subsetVariables> є неправильним, таблиця комбінацій значень може бути досить великим, щоб викликати помилки Too Багато даних або OutOfMemory. Розчин для видалення змінних з переліку<subsetVariables> для яких є велика кількість значень, або видалення змінних, як потрібно до розміру цього столу. Незалежно від помилки, частинERDDAP™використовуватиsubsetVariablesсистема не працює добре (Наприклад, завантаження веб-сторінок дуже повільно) коли є занадто багато рядків (наприклад, більше мільйона) в таблиці.
  • subsetVariablesне має нічого спільного з визначенням, які змінні користувачі можуть використовуватися в обмеженнях, тобто, як користувачі можуть запитати субсети даних.ERDDAP™завжди дозволяє обмеження на будь-який з змінних.
Часові блоки

Час і часстовпці повинні мати ISO 8601:2004 (Етикети) дата форматування + час Z рядки (Наприклад, 1985-01-31T15:31:00Z) й  

анотація
  • анотація ПанчохиіАКДДстандарти метаданих) є глобальним атрибутом з довгим описом даних (зазвичай)<500 символів. Наприклад,
    <att name="summary">VIIRSN Level-3 Standard Mapped Image, Global, 4km, Chlorophyll a, Daily. The Visible and Infrared Imager/Radiometer Suite (VIIRS) is a multi-disciplinary instrument that flies on the National Polar-orbiting Operational Environmental Satellite System (NPOESS) series of spacecraft, including the NPOESS Preparatory Project (NPP).</att>
    • Ефір глобальних данихджерелоАтрибутиабо його глобальний<addAttributesГоловна MUST включає цей атрибут.
    • Резюме дуже важливо, тому що це дозволяє клієнтам читати опис даних, який має більш детальну інформацію, ніж заголовок і, таким чином, швидко зрозуміти, які дані зберігаються.
    • Поради: будь ласка, напишіть резюме так що він буде працювати, щоб описати дані до деяких випадкових осіб, які ви зустрічаєте на вулиці або до колеги. Пам'ятайте, щоП'ять W's і один H: Хто створив дані? Яку інформацію було зібрано? Коли зібрані дані? Де було зібрано? Чому було зібрано? Як було зібрано?
    • ERDDAP™виводить резюме на форму доступу даних Dataset ( datasetID Українська) , Зробіть сторінку Графа ( datasetID .граф) та інші веб-сторінки.ERDDAP™використовує резюме при створенні FGDC та ISO 19115 документів.
testOutOfDate
  • testOutOfDate (ДодатковоERDDAP- специфічний атрибут глобальних метаданих, не від будь-якого стандарту) specifies, в спрощує спосіб, коли дані для ближнього злаку часу дані вважається застарілим, зазначеним якnow- труси Наприклад,now-2 дні для даних, які зазвичай з'являються 24-48 годин після значення часу. Для прогнозування даних використовуйте зараз до + труси , наприклад, зараз + 6days для прогнозування даних, які є, на більшості, 8 днів в майбутньому. (Дивитисяnow- труси Опис синтаксисуй) При максимальному значенні часу для збору даних більш недавній, ніж зазначений час, датасет вважається актуальним. Якщо максимальне значення часу старше зазначеного часу, то датасет вважається актуальним. Для застарілих даних існує проблема з джерелом даних, томуERDDAP™не вдається доступу до даних з більш пізніх точок часу.

Про насtestOutOfDateзначення відображається як стовпець вallDatasetsметау васERDDAPй Також використовується для розрахунку індексу зовнішнього індексу, який є ще одним стовпцем вallDatasetsдатасет. При індексі<1, датасет вважається застарілим. При індексі<=1, датасет вважається застарілим. При індексі<=2, датасет вважається дуже застарілим.

Про насtestOutOfDateзначення також використовуєтьсяERDDAP™генерувати https://yourDomain/erddap/outOfDateDatasets.html Веб-сайт (Приклад) що показує дані, які мають<testOutOfDate> теги, з даними, що посвідчують, як вони застарілі. Якщо змінити тип файлу (від .html до .csv,.jsonlCSVй.ncй.tsv, ...) Ви можете отримати цю інформацію в різних форматах файлів.

При можливостіГенераціяДатасетСмлдодаєtestOutOfDateатрибут глобальногоaddAttributesданих. Це значення є припуском на основі інформації, доступних для GenerateDatasetsXml. Якщо значення не доречно, змінити його.

"Out-of-date" тут дуже відрізняється від [<перевантаження КоженNMinutes> (#завантажитизавжак) , яка працює з тим, як оновитиERDDAP- знання Dataset. Про нас<testOutOfDate> система передбачає, щоERDDAP- знання даних. Питання<testOutOfDate> пропозиції з є: чи є щось неправильно з джерелом даних, що викликає більш останні дані, які не доступні за допомогоюERDDAP?

Назва
  • Назва ПанчохиіАКДДстандарти метаданих) є глобальним атрибутом з коротким описом даних (зазвичай)<=95 символів. Наприклад,
    <att name="title">VIIRSN Level-3 Mapped, Global, 4km, Chlorophyll a, Daily</att>
    • Ефір глобальних данихджерелоАтрибутиабо його глобальний<addAttributesГоловна MUST включає цей атрибут.
    • Назва є важливою, тому що кожен список даних, представленийERDDAP (інші результати пошуку) перераховує дані в алфавітному порядку, заголовок. Отже, якщо ви хочете вказати порядок даних, або мати деякі дані, які груповані разом, ви повинні створити назви, з якими розумом. Багато списків даних (наприклад, у відповідь на пошук категорії) , показати підмножину повного списку і в іншому порядку. Отже, заголовок для кожного набору даних повинен стояти самостійно.
    • Якщо назва містить слово "DEPRECATED" (всі столичні листи) , потім датасет отримає нижчий рейтинг в пошуку.  
<axisVariable>
  • Про нас ** <axisVariableГоловна ** до (#основний) використовується для опису розмірів (також називається "вісь") й ДляEDDGridдані, один або іншийaxisVariableмітки є ОБЛАДНАННЯ, і всіdataVariableйзавжди ділитися / використовувати всі змінні осі. (Чому? Що робити?)
    Для кожного виміру змінних даних є змінна вісь. Ось змінні MUST вказані в порядку, що змінні дані використовують їх. (EDDTable datasets не може використовуватися<axisVariable> теги.) Приклад з'єднання:

  <axisVariable>
      <sourceName\>MT</sourceName>
      <destinationName\>time</destinationName>
      <addAttributes>
        <att name="units">days since 1902-01-01T12:00:00Z</att>
      </addAttributes>
  </axisVariable>

<axisVariable> підтримує наступні теги:

<sourceName\>
  • Про нас<sourceName\> (Ім'я) -- назва джерела даних для змінної. Це ім'я, якеERDDAP™використовуватиметься при запитуванні даних з джерела даних. Це ім'я, якеERDDAP™буде виглядати при поверненні даних з джерела даних. Цей випадок чутливий. Це ОБЛАДНАННЯ.
<destinationName\>
  • Про нас<destinationName\> (Назва) є ім'ям для змінної, яка буде показано і використовуватисяERDDAP™користувачів.
    • Це OPTIONAL. Якщо немає,sourceNameвикористовується.
    • Це корисно, тому що він дозволяє змінити cryptic або непарнийsourceNameй
    • destinationNameчуйний випадок.
    • destinationNames MUST старт з листом (А-З, а-з) і MUST слідувати 0 або більше символів (A-Z, a-z, 0-9, і \_) й ('-' допускається ранішеERDDAP™версія 1.10.) Це обмеження дозволяє вісь змінними іменами бути однаковими вERDDAP™, у файлах відповіді та у всіх програмах, де будуть використовуватися ці файли, включаючи мови програмування (якPythonйMatlabйJavaАвторизація) де існують аналогічні обмеження на змінні імена.
    • УEDDGridдані, данідовгота, широта, висота, глибина і часВісь змінні спеціальні.  
axisVariable <addAttributes>
  • Про нас<addAttributes>] (#variable-addattributes) визначає OPTIONAL набір атрибутів ( Ім'я до значення ) які додаються до атрибутів джерела для змінної, щоб зробити комбіновані атрибути для змінної. Якщо зміннаджерелоАтрибутиабо<addAttributes> включаютьscale\_factorта/абоadd\_offsetатрибути, їх значення будуть використані для розпакування даних з джерела перед поширенням на клієнт (результат Значення = джерело Вартість \*scale\_factorдо +add\_offset) й Розпакована змінна буде однаковим типом даних (Наприклад, float) якscale\_factorіadd\_offsetзначення.  
<dataVariable>
  • Про нас ** <dataVariableГоловна ** до (#datavariable) ОБЛАДНАННЯ (майже всі дані) тег в межах<dataset> тег, який використовується для опису змінної даних. Є MUST бути 1 або більше екземплярів цього тегу. Приклад з'єднання:

  <dataVariable>
      <sourceName\>waterTemperature</sourceName>
      <destinationName\>sea\_water\_temperature</destinationName>
      <dataType>float</dataType>
      <addAttributes>
        <att name="ioos\_category">Temperature</att>
        <att name="long\_name">Sea Water Temperature</att>
        <att name="standard\_name">sea\_water\_temperature</att>
        <att name="units">degree\_C</att>
      </addAttributes>
  </dataVariable>

<dataVariable> підтримує наступні теги:

<sourceName>
  • Про нас<sourceName>] (Ім'я) -- назва джерела даних для змінної. Це ім'я, якеERDDAP™використовуватиметься при запитуванні даних з джерела даних. Це ім'я, якеERDDAP™буде виглядати при поверненні даних з джерела даних. Цей випадок чутливий. Це ОБЛАДНАННЯ.
Групи

CF додано підтримку для груп з CF v1.8. Почати в ~ 2020,NetCDFінструменти підтримки внесення змін до груп у групи.ncфайл. На практиці це означає, що змінні мають довге ім’я, яке визначає групу (й) і змінне ім'я, наприклад, група1a/group2c/varName .ERDDAP™підтримує групи шляхом перетворення "/" в змінну<sourceName> в "\_" в змінній"<destinationName>, наприклад, група1a\_group2c\_varName . (Коли ви бачите, що ви повинні розуміти, що групи не набагато більше, ніж конвенція синтаксису.) Коли змінні вказані вERDDAP™, всі змінні в групі з'являться разом, зміщуючи основну групу.\[ЯкщоERDDAP™, можливо, GenerateDatasets Xml, не виконує також, і це може бути з вихідними файлами, які мають групи, будь ласка, по електронній пошті файл зразок для Кріса. Джон на noaa.gov .\]

EDDTableЗ альбомуFiles datasets може використовувати деякі спеціально зашифровані, псевдоsourceNames для визначення змінних даних, наприклад, для просування глобального атрибуту, який буде змінним. Про насдокументаціяй

HDFСтруктура

Почати зERDDAP™в2.12,EDDGridВідNcFiles іEDDGridВідNcFiles Розпаковані дані можна дізнатися з "структур" в.nc4 і.hdf4 фото. Для визначення змінної, яка знаходиться з структури,<sourceNameГоловна необхідно використовувати формат: веб камера | Ім'я користувача , наприклад, група1/myStruct|myMember .

Фіксований джерело значень

Якщо ви хочете створити змінну (з єдиною, фіксованою вартістю) це не у вихідному датасеті, використання:

    <sourceName>=*fixedValue*</sourceName>  

Початкові рівні знаки говоритьERDDAP™що фіксується Значення буде слідувати.

  • Для нумеричних змін, фіксоване значення має бути односкінченним значенням або NaN (випадок нечутливий, наприклад, \=NaN) й
  • Для струнних змін фіксоване значення повинно бути одностороннім,JSON-style рядок (з особливими героями, які втекли з символами \) , наприклад, \="My \"Special\" String" .
  • Для змінного часу вкажіть фіксоване значення як номер в"seconds since 1970-01-01T00:00:00Z"і використання блоки: секунди з 1970-01T00:00Z .

Інші теги для<dataVariable> робота, якби це було регулярною змінною. Наприклад, для створення змінної висоти з фіксованою вартістю 0.0 (плавати) , використання:

<sourceName>=0</sourceName>
<destinationName\>altitude</destinationName>
<dataType>float</dataType>

Для незвичайних ситуацій можна навіть вказатиactual\_rangeaddAttribute, який перенаправить очікувані значення призначенняMin і призначенняMax (що б інакше рівний фіксований Ціна) й  

Script SourceNames/Derived мінливі

Почати зERDDAP™v2.10, вEDDTableЗ альбомуFilesйEDDTableЗ альбомуDatabaseабоEDDTableЗ альбомуFileNamesдатасет,<sourceName> може бути вираз (рівняння, яке оцінюється на одне значення) , використовуючи формат

    <sourceName>=*expression*</sourceName>  

або скрипт (серія виписок, що повертає одне значення) , використовуючи формат

    <sourceName>=*script*</sourceName>  

ERDDAP™спирається наСтатус на сервери JavaМова експресії (ДЖЕКСЛ) (ліцензія:Афіша) оцінити вирази та запустити сценарії. Розрахунок заданої нової змінної здійснюється в межах одного ряду результатів, багаторазового для всіх рядків. Висловлення та скрипти використовуютьJava- іJavaScript-like syntax і може використовувати будь-який з Оператори та методи, які вбудовані в JEXLй Також можна використовувати скрипти (функції) з цих класів:

  • Календар2, яка є обгорткою для деяких статичних, часових і календарних методів в com.cohort.util.Calendar2 (ліцензія) й Наприклад, Календар2.parseToEpochSeconds ( вихідний час, дата Часформа ) покаже джерело Строк часу через рядок датиTimeFormat і повернути рядок"seconds since 1970-01-01T00:00:00Z" (епохаСеконди) подвійне значення.
  • Маф, що є обгорткою практично для всіх статичних, математичних методів вскачати Мафй Наприклад, Math.atan2 ( й, x ) в прямокутних координатах (й, x) і повертає полярні координати (масив подвійних з\[р, тата\]) й
  • Маф2, яка є обгорткою практично для всіх статичних, математичних методів в com.cohort.util. Маф2 (ліцензія) й Наприклад, Math2.roundTo ( д, пміс ) буде округлити d до вказаної кількості цифр праворуч від десяткової точки.
  • Стрінг, що дає вам доступ до всіх статичних методів, пов'язаних з Stringскачати Ступіньй Струнні об'єкти вERDDAP™вирази та сценарії можуть використовувати будь-який з їх пов'язанихJavaметоди, як описано в java.lang. Струвальна документація. Наприклад, String.valueOf (й) перетворить подвійний значення d в String (Хоча ви також можете використовувати ""+d) й
  • Стрінг2, яка є обгорткою для більшості статичних, String- та масивних методів у com.cohort.util.String2 (ліцензія) й Наприклад, String2.zероПад ( кількість, nDigits ) додаємо 0 до лівої числа String, щоб загальна кількість цифр nDigits (м. Київ.zероПад ("6", 2) повернеться "06") й
  • Увійти, що має нестатичні методи доступу до даних з різних стовпців в поточному ряді таблиці вихідних даних. Наприклад, ряд.columnString ("рік") прочитає значення з "літнього" стовпчика як Рядок, в той час як, ряд.column Вступ ("рік") прочитає значення з колонки «рік» як ціле.

З причин безпеки, вирази та сценарії не можуть використовувати інші класи, крім тих 6.ERDDAP™використовує цей обмеження, створюючи чорний список за замовчуванням (які всі класи) а потім білий список (який спеціально дозволяє описувати 6 класів) й Якщо вам потрібні інші методи та / або інші класи, щоб зробити вашу роботу, будь ласка, попишіть ваші запити до Кріса. Джон на noaa.gov .

ККД

Для EDDTableЗ альбомуFiles datasets, є тільки дуже мінімальний (ймовірно, не помітно) уповільнення запитів на дані з цих змінних. Для EDDTableЗ альбомуDatabase існує величезна швидкість штрафу за запити, які включають обмеження на ці змінні (наприклад, (&longitude0360>30&longitude0360<40) тому, що обмеження не можуть бути передані до бази даних, тому база даних має повернути набагато більше даних, щоб отримати більшеERDDAP™ (який дуже трудомісткий) так, щобERDDAP™може створити нову змінну і застосувати обмеження. Щоб уникнути найгіршого випадку (де немає обмежень, які надходять до бази даних) йERDDAP™кидає повідомлення про помилку, щоб база даних не повинна повернути весь вміст таблиці. (Якщо ви хочете обходити це, додайте обмеження до нескопченого стовпчика, який завжди буде вірним, наприклад, і час<3000-01-01.) З цієї причини, з EDDTableЗ альбомуDatabase, ймовірно, завжди краще створювати отримані стовпці в базі даних, а не використовуватиsourceNameЗавантажити плагінERDDAPй

Огляд Як Експресія (Або Script) Використовується:

У відповідь на запит користувача для табличних даних,ERDDAP™отримує дані з серії вихідних файлів. Кожен вихідний файл буде генерувати таблицю сировини (прямо з джерела) дані.ERDDAP™Після цього зайдіть через таблицю вихідних даних, ряд за допомогою рядка і оцініть вираз або скрипт один раз на кожен рядок, щоб створити новий стовпчик, який має той вираз або сценарій якsourceNameй

ГенераціяДатасетСмл

Примітка, що GenerateDatasets Xml повністю вуаєрист, коли є необхідність створення змінної з<sourceName>= вираз <УкраїнськаsourceName>. Ви повинні створити змінну вdatasets.xmlвід руки.

Приклади експресії:

Нижче наведено приклади змінних даних, які використовують вираз для створення нового стовпця даних. Ми очікуємо, що ці приклади (і варіанти їх) покриє близько 95% використання всіх виразівsourceNameй

Комбінація окремих "датних" та"time"стовпчики в єдиний стовпчик часу:
    <dataVariable>
<sourceName>=Calendar2.parseToEpochSeconds(row.columnString("date") + "T" +
row.columnString("time") + "Z", "yyyy-MM-dd'T'HH:mm:ss'Z'")</sourceName>
<destinationName>time</destinationName>
<dataType>double</dataType>
<addAttributes>
<att name="units">seconds since 1970-01-01</att>
</addAttributes>
</dataVariable>

ЩоsourceNameвираз робить новий"time"колонка, що містить значення String від "date" (yyyy-MM-dd) і"time" (ХХ:мм:с) стовпчики на кожному ряду вихідних файлів і шляхом перетворення цього рядка в"seconds since 1970-01-01" (епохаСеконди) подвійне значення.

Або, звичайно, ви повинні налаштувати рядок форматів часу, щоб мати справу з певним форматом у кожному дата джерела даних та часові стовпці, див. документація одиницьй

Технічно не потрібно використовувати Календар2.parseToEpochSeconds () конвертувати комбіновану дату + час в епохСеконди. Ви можете просто передати дату + час доERDDAP™і вказати формат (наприклад, yyyy-MM-dd'T'H:mm:s'Z') через атрибут одиниць. Але є суттєві переваги для перетворення в epochSeconds -- немовірно, EDDTableFromFiles може потім легко відстежувати діапазон значень часу в кожному файлі і так швидко вирішити, чи шукати в даній файлі при відповіді на запит, який має час обмежень.

Пов'язаною проблемою є необхідність створення єдиної дати + часової колонки з джерела з окремим роком, місяця, дати, години, хвилину, другий. Розчин дуже схожий, але вам часто потрібно нуль-паду багато полів, щоб, наприклад, місяць (1 - 12) і дата (1 - 31) Завжди мати 2 цифри. Ось приклад з рік, місяць, дата:

    <sourceName>=Calendar2.parseToEpochSeconds(row.columnString("year") + 
String2.zeroPad(row.columnString("month"), 2) +
String2.zeroPad(row.columnString("date"), 2), "yyyyMMdd")</sourceName>

Пов'язаною проблемою є необхідність створення єдиної широтності або довготи колонки, поєднуючи дані в початковому таблиці окремих ступенів, хвилин і секунд стовпців, кожен зберігається в якості цілих чисел. Наприклад,

    <sourceName>=row.columnInt("deg") + row.columnInt("min")/60.0 + 
row.columnInt("sec")/3660.0</sourceName>
Перетворення колонки «лон» з значеннями довготи від 0 - 360° в стовпчик іменем «довго» з значеннями від -180 - 180°
    <dataVariable>
<sourceName>=Math2.anglePM180(row.columnDouble("lon"))</sourceName>
<destinationName>longitude</destinationName>
<dataType>double</dataType>
<addAttributes>
<att name="units">degrees\\_east</att>
</addAttributes>
</dataVariable>

ЩоsourceNameекспресія робить новий "longitude" стовпчик, перетворюючи подвійне значення з "лонової" стовпчика на кожному ряду вихідних файлів (з 0 - 360 значень) , і шляхом перетворення, що в -180 до 180 подвійний значення.

Якщо ви замість того, щоб перетворити значення довготи джерела -180 - 180 ° в 0 - 360 °, використовуйте

    <sourceName>=Math2.angle0360(row.columnDouble("lon"))</sourceName>

Нагадувати два довгострокові варіації: Якщо датасет буде мати 2 довгострокові змінні, ми рекомендуємо використовуватиdestinationName=довга для -180 - 180 ° змінна іdestinationNameJavaScript licenses API Веб-сайт (і довгоName=\"Longitude 0-360°") для 0 - 360° змінної. Це важливо, тому що користувачі іноді використовують розширений пошук для пошуку даних в певному діапазоні довготи. Цей пошук буде працювати краще, якщо довгостроково послідовно має -180 - 180 ° значення для всіх даних. Крім того, геопросторовий Dataset\_lon\_min, геопросторовий\_lon\_max, Westernmost\_Easting and Easternmost\_Eastings глобальних атрибутів буде встановлюватися послідовно (до 180°) ;

Перетворення стовпця «tempF» з значеннями температури за ступенем \_ F в колонку «темпК» з температурою за ступенем\_ К:
    <dataVariable>
<sourceName>=(row.columnFloat("tempF")-32)\\*5/9</sourceName>
<destinationName>tempC</destinationName>
<dataType>float</dataType>
<addAttributes>
<att name="units">degrees\\_C</att>
</addAttributes>
</dataVariable>

ЩоsourceNameекспресія робить новий "tempC" стовпець, перетворюючи ступінь плавлення\_ F значення від стовпця "tempF" на кожному ряду вихідних файлів в ступінь плавлення \_ C значення.

Зверніть увагу, що ваш набір даних може мати як оригінальний час F змінна і новий час C змінна, має іншу змінну з

    <sourceName>tempF</sourceName>
Перетворення вітру "швидкість" і "режим" стовпчиків в два стовпчики з компонентами u,v
  • Щоб зробити змінну u, використовуйте
    <sourceName>=row.columnFloat("speed") \\* Math.cos(row.columnFloat("direction"))</sourceName>
  • Щоб зробити змінну v, використовуйте
    <sourceName>=row.columnFloat("speed") \\* Math.sin(row.columnFloat("direction"))</sourceName>

Або, враховуючи u,v:

  • Щоб зробити змінну швидкості, використовуйте
    <sourceName>=Math.atan2(row.columnDouble("v"), row.columnDouble("u"))\\[0\\]</sourceName>
  • Щоб зробити змінну напрямок, використовуйте
    <sourceName>=Math.toDegrees(Math.atan2(row.columnDouble("v"), row.columnDouble("u"))\\[1\\])</sourceName>
Приклад сценарію:

Ось приклад використання скрипта, не просто вираз, як виразsourceNameй Ми очікуємо, що сценарії, на відміну від виразів, не потрібно часто. У цьому випадку мета полягає у поверненні неналежного значення (-99) для значень температур зовні певного діапазону. Зауважте, що скрипт є частиною після "=".

    <dataVariable>
<sourceName>=var tc=row.columnFloat("tempC"); return tc&gt;35 || tc&lt;-5? -99.0f : tc\\*9/5+32;</sourceName>
<destinationName>tempF</destinationName>
<dataType>float</dataType>
<addAttributes>
<att name="units">degrees\\_F</att>
</addAttributes>
</dataVariable>
Жорсткий Прапор

Якщо ви зміните вираз або сценарій, визначений вsourceName, ви повинні встановитижорсткий прапордля збору данихERDDAP™Видаліть всю необхідну інформацію для файлів даних і перечитайте всі дані (використовуючи новий вираз або скрипт) Наступного разу він завантажує дані. Як правило, ви можете використовуватиДатиякий є еквівалентним налаштуванням жорсткого прапора.

відсоток кодування

Це тільки рідко актуально: Оскільки вирази та сценарії написані вdatasets.xml, який є XML документом, ви повинні відсотково зашифрувати будь-який<, \>, і символи в виразах і скриптах як<, > і & .

Загальні проблеми

Загальна проблема полягає в тому, що ви створюєте змінну зsourceNameдо вираз але отриманий стовпчик даних просто не має значення. Як правило, деякі ряди нового стовпчика не мають значення і ви думаєте, що вони не повинні. Основна проблема полягає в тому, що щось неправильно з виразом іERDDAPПеретворення цієї помилки в відсутній значення. Для вирішення проблеми,

  • Дивитися вираз, щоб побачити, що проблема може бути.
  • ДивитисяJavaScript licenses API Веб-сайт Go1.13.8, яка покаже перше повідомлення про помилку, створене під час створення кожного нового стовпця.

Загальні причини:

  • Ви використовували неправильний випадок. Виявлення та сценарії є конфіденційними.
  • Ви включили назву класу. Наприклад, ви повинні використовувати Math.abs () , не просто абс () й
  • Ви не робили перетворення типу. Наприклад, якщо тип даних параметра String і у вас є подвійне значення, потрібно конвертувати подвійний в String через ""+d.
  • Назва стовпця в виразі не відповідає назві стовпця в файлі (або ім'я може відрізнятися в деяких файлах) й
  • Є помилки синтаксису у виразі (наприклад, відсутній або додатковий) «»

Якщо вам потрібна допомога, Будь ласка, вкажіть деталі та див. інформаціюрозділ про отримання додаткової підтримкий

<destinationName>
  • Про нас<destinationName>] (Назва) -- Ім'я для змінної, яка буде показано і використовуватисяERDDAP™користувачів.
    • Це OPTIONAL. Якщо немає,sourceNameвикористовується.
    • Це корисно, тому що він дозволяє змінити cryptic або непарнийsourceNameй
    • destinationNameчуйний випадок.
    • destinationNames MUST старт з листом (А-З, а-з) і MUST слідувати 0 або більше символів (A-Z, a-z, 0-9, і \_) й ('-' допускається ранішеERDDAP™версія 1.10.) Це обмеження дозволяє змінювати дані таким же чином,ERDDAP™, у файлах відповіді та у всіх програмах, де будуть використовуватися ці файли, включаючи мови програмування (якPythonйMatlabйJavaАвторизація) де існують аналогічні обмеження на змінні імена.
    • У EDDTable datasets,довгота, широта, висота (або глибина) і часзмінні дані є особливим.  
<дані Тип і гт;
  • Про нас<датаТип> (Головна) - визначає тип даних, що надходить з джерела. (У деяких випадках, наприклад, при зчитуванні даних з файлів ASCII, він визначає, як дані, що надходять з джерела, повинні зберігатися.)
    • Це ОБЛАДНАННЯ деяких типів даних і IGNORED іншими. Типи даних, які вимагають цього дляdataVariableйEDDGridВідXxxFiles, EDDTableЗXxxFiles, EDDTableЗ альбомуMWFS, EDDTableЗ альбомуNOS, EDDTableЗ альбомуSOSй Інші типи даних ігнорують цей тег, оскільки вони отримують інформацію з джерела.  
    • Дійсно значення є будь-яким стандартомERDDAP™типи данихплюс болеан (Переглянути нижче) й Назви даних є чутливими.  
boolean дані
  • "Болеан"- особливий випадок.
    • Внутрішнє,ERDDAP™не підтримує boolean тип, тому що booleans не може зберігати відсутні значення і більшість типів файлів не підтримують booleans. Також,DAPне підтримує booleans, тому не буде стандартним способом переробити boolean змінні.
    • Вказати "Болеан" для даних Тип вdatasets.xmlбуде викликати значення болеан, які будуть зберігатися і представлені як байти: 0=false, 1=true, 127=missing\_valueй
    • Користувачі можуть вказати обмеження за допомогою числових значень (Наприклад, "isAlive=1") й
    • ERDDAP™адміністратори іноді повинні використовувати дані "болеан" Тип вdatasets.xmlрозповістиERDDAP™як взаємодіяти з джерелом даних (Наприклад, для читання boolean значень з відносної бази даних та перетворення їх в 0, 1, або 127) й  
  • Якщо ви хочете змінити змінну даних з DataType у вихідних файлах (Наприклад, короткий) в деякі інші дані Тип в даних (Наприклад, int) , не використовуйте<dataType> вказати те, що ви хочете. (Працює для деяких типів даних, але не інших.) До:
    • Зареєструватися<dataType> вказати те, що в файлах (Наприклад, короткий) й
    • У<addAttributes> для змінного, додайтеscale\_factorатрибут з новими даними Тип (Наприклад, int) і значення 1, наприклад,
            <att name="scale\\_factor" type="int">1</att>  
dataVariable <addAttributes>
  • Про нас<addAttributes>] (#variable-addattributes) - визначає набір атрибутів ( Ім'я до значення ) які додаються до атрибутів джерела для змінної, щоб зробити комбіновані атрибути для змінної. Це OPTIONAL. Якщо зміннаджерелоАтрибутиабо<addAttributes> включаютьscale\_factorта/абоadd\_offsetатрибути, їх значення будуть використані для розпакування даних з джерела перед поширенням на клієнт. Розпакована змінна буде однаковим типом даних (Наприклад, float) якscale\_factorіadd\_offsetзначення.
Сортування<addAttributes>
  • Про нас ** Варіанти атрибутів / мінливі<addAttributesГоловна ** до (#variable-addattributes) ---<addAttributes> OPTIONAL tag в межах<axisVariable> або<dataVariable> тег, який використовується для зміни атрибутів змінної.

    • ** Використовуйте змінну<addAttributes> змінити атрибути змінної. ** ERDDAP™поєднує в собі атрибути змінного струму з джерела даних** джерелоАтрибути ) і змінної addAttributes які ви визначаєтеdatasets.xml (які мають пріоритет) Щоб зробити змінну " комбіновані атрибути ** ", якіERDDAP™користувачів див. Таким чином, можна використовуватиaddAttributesдля перевизначення значень вихідних атрибутів, додавання нових атрибутів або видалення атрибутів.

    • Дивитися [ ** <addAttributesГоловна інформація (#аддаттрибути) що стосується глобальної та змінної <addAttributesГоловна ** й

    • ERDDAP™шукає і використовує безліч цих атрибутів різними способами. Наприклад, значення ColorBar обов'язкові для створення змінної, доступним черезWMS, щоб карти можуть бути зроблені з послідовним кольоромBars.

    • Довгота, широта, висота (або глибина) , часові змінніотримувати багато відповідних метаданих автоматично (наприклад,блоки) й

    • зразок<addAttributes> для зміни даних:

        <addAttributes>
              <att name="actual\_range" type="doubleList">10.34 23.91</att>
              <att name="colorBarMinimum" type="double">0</att>
              <att name="colorBarMaximum" type="double">32</att>
              <att name="ioos\_category">Temperature</att>
              <att name="long\_name">Sea Surface Temperature</att>
              <att name="numberOfObservations" />
              <att name="units">degree\_C</att>
        </addAttributes>

Порожня кількістьОфісні атрибути викликає номер джерелаOfObservations (якщо) видалити з кінцевого списку атрибутів.

  • Постачання цієї інформації допомагаєERDDAP™робіть краще завдання і допомагає користувачам зрозуміти дані. Хороші метадані робить дані, які ми використовуємо. Недостатні метадані забезпечують без використання даних. Будь ласка, введіть час, щоб зробити хорошу роботу з атрибутами метаданих.
Коментарі до змінних атрибутів, які є особливим уERDDAP:
actual\_range
  • actual\_range є змінним атрибутом RECOMMENDED. Наприклад,

<att name="actual\_range" type="floatList"\>0.17 23.58</att>

  • Цей атрибут відCайтCOARDSіБФ 1.7+стандарти метаданих.
  • Якщо присутній, це MUST є масивом двох значень одного типу даних, оскільки тип даних призначення змінної, вказавши фактичний (не теоретичні або дозволені) мінімальні та максимальні значення даних для цієї змінної.
  • Якщо дані упакованіscale\_factorта/абоadd\_offsetйactual\_rangeповинні мати непаковані значення і бути однакових типів даних, як незпаковані значення.
  • Для деяких джерел даних (Наприклад, всі EDDTableЗ альбому... Файли даних) йERDDAP™визначаєactual\_rangeкожної змінної та наборівactual\_rangeатрибут. З іншими джерелами даних (Наприклад, реляційні бази даних, Кассандра,DAPПЕР,Hyrax) , це може бути неприємний або тягарний для джерела, щоб розрахувати діапазон, так щоERDDAP™не запитати. У цьому випадку краще, якщо ви можете встановитиactual\_range (особливо для довготи, висоти, глибини та часових змін) шляхом додаванняactual\_rangeатрибут до кожного змінного [<addAttributes>] (#аддаттрибути) для цього набору данихdatasets.xmlНаприклад,

<att name="actual\_range" type="doubleList"\>-180 180</att>

  • Для нумеріїчас і часові зміни, зазначені значення повинні бути відповідним джерелом (не призначення) числові значення. Наприклад, якщо значення часу джерела зберігаються як "датки з 1985-01", тоactual\_rangeвказано в "день з 1985-01". І якщо ви хочете звернутися до ЗАРАЗ як другого значення для даних ближнього часу, які періодично оновлюються, ви повинні використовувати NaN . Наприклад, для визначення діапазону даних 1985-01-17 до ЗАРАЗ, використання

<att name="actual\_range" type="doubleList"\>16 NaN</att>

  • Якщоactual\_rangeВідомий (користувацький)ERDDAP™розрахувати або додавши його через<addAttributes>,ERDDAP™буде відображати його користувачеві у формі доступу до даних ( datasetID Українська) Зробіть Графічні веб-сторінки ( datasetID .граф) для цього набору даних та його використання при створенні метаданих FGDC та ISO 19115. Також останні 7 днів часуactual\_rangeвикористовується як субсет часу за замовчуванням.
  • Якщоactual\_rangeвідомо, користувачі можуть використовуватихв () і макс () функціїв запитах, які часто дуже корисні.
  • Для всіх EDDTable ... дані, якщоactual\_rangeВідомий (або ви вказуючи його абоERDDAP™розрахувати його) йERDDAP™дасть можливість швидко відхилити будь-які запити на дані за межі цього діапазону. Наприклад, якщо найнижча вартість даних відповідає 1985-01-17, то запит на всі дані з 1985-01-01 по 1985-01-16 буде негайно відхилено повідомленням про помилку "Ваш запит не відповідає результатам." Це робитьactual\_rangeдуже важливий предмет метаданих, оскільки він може зберегтиERDDAP™багато зусиль і збереження користувача багато часу. І це підкреслює, щоactual\_rangeзначення не повинні бути вузькими, ніж фактичний діапазон даних; інакше,ERDDAP™може помилково сказати "Не відповідає даним" при наявності відповідних даних.
  • Коли користувач вибирає підмножину даних і запитує тип файлу, який містить метадані (наприклад,.nc) йERDDAP™Новиниactual\_rangeу файлі відповіді для відображення діапазону підмножини.
  • Дивитися такожdata\_minіdata\_max, які є альтернативним способом уточненняactual\_rangeй Тим не менш, це відхилено зараз, щоactual\_rangeвизначається CF 1.7+.  
Колір Бар Атрибути

Є кілька атрибутів змінної OPTIONAL, які вказують на запропоновані атрибути за замовчуванням для кольорового бару (використовується для перетворення значень даних в кольори на зображеннях) для цієї змінної.

  • Якщо в даний час дана інформація використовується як за замовчуванням за допомогою Griddap іtabledapколи ви запитуєте зображення, яке використовує колірний ряд.

  • Наприклад, коли широтно-довголені дані розкриваються як покриття на карті, колірний рядок визначає, як значення даних перетворюються на кольори.

  • Ці значення дозволяютьERDDAP™для створення зображень, які використовують послідовний колірний ряд по різних запитах, навіть коли час або інші значення розмірів змінюються.

  • Ці імена атрибутів були створені для використання вERDDAPй Вони не мають стандарту метаданих.

  • Атрибути, пов'язані з кольором бару:

    • colorBarMinimum визначає мінімальне значення на колірБар. Наприклад,

    <att name="colorBarMinimum" type="double"\>-5</att>

    • Якщо дані упакованіscale\_factorта/абоadd\_offset, вкажітьcolorBarMinimumяк непаковане значення.
    • Значення даних нижчеcolorBarMinimumпредставлені таким же кольором, якcolorBarMinimumзначення.
    • атрибут повинен бутитип="double", незалежно від типу змінної даних.
    • Вартість зазвичай є приємним круглим номером.
    • Кращі практики: Ми рекомендуємо значення трохи вище мінімального значення даних.
    • Немає значення за замовчуванням.
  • colorBarMaximum визначає максимальне значення на колірБар. Наприклад,

<att name="colorBarMaximum" type="double"\>5</att>

  • Якщо дані упакованіscale\_factorта/абоadd\_offset, вкажітьcolorBarMinimumяк непаковане значення.
  • Значення даних вищеcolorBarMaximumпредставлені таким же кольором, якcolorBarMaximumзначення.
  • атрибут повинен бутитип="double", незалежно від типу змінної даних.
  • Вартість зазвичай є приємним круглим номером.
  • Кращі практики: Ми рекомендуємо значення трохи нижче, ніж максимальне значення даних.
  • Немає значення за замовчуванням.
  • колір Барпалет Визначає палітра для кольоруБар. Наприклад,
        <att name="colorBarPalette">WhiteRedBlack</att>
  • ВсіERDDAP™Установки підтримують ці стандартні палітри: BlackBlueБілий, ЧорнийЧервонийБілий, ЧорнийБілий, СинійБілийЧервоний, LightRainbow, океан, OceanDepth, Веселка, RedWhiteBlue, ReverseRainbow, Topography, TopographyDepth\[доданий в v1.74\], БілийЧорний, БілийЧорний та БілийЧервонийЧорний.
  • Якщо ви встановилидодаткові палітриВи можете звернутися до одного з них.
  • Якщо цей атрибут не присутній, за замовчуванням BlueWhiteRed if \-1 \ *colorBarMinimumдоcolorBarMaximum; в іншому випадку за замовчуванням є Rainbow.
  • колірБарСкаль виділяє масштаб для кольоруБар. Наприклад,
        <att name="colorBarScale">Log</att>
  • Дійсно значення є лінійним і логічним.
  • Якщо значення є лог,colorBarMinimumповинна бути більше 0.
  • Якщо цей атрибут не присутній, за замовчуванням є лінійним.
  • колір БарКонтинуус Визначає, чи має колірБар безперервна палітра кольорів, або чи має колірБар кілька дискретних кольорів. Наприклад,
        <att name="colorBarContinuous">false</att>
  • Дійсно значення є рядки true і false.
  • Якщо цей атрибут не присутній, за замовчуванням є вірним.
  • колірБарнисекції визначає номер за замовчуванням розділів на колірБар. Наприклад,
        <att name="colorBarNSections" type="int">6</att>
  • Діє значення є позитивними цілими.
  • Якщо цей атрибут не присутній, за замовчуванням \-1, який говоритьERDDAP™підібрати кількість секцій на основі діапазону кольоруБар.
WMS

Основні вимоги до змінної, доступні черезERDDAPРWMSСервери:

  • Ці дані повинні бутиEDDGrid... дані
  • змінна даних MUST є сітчастою змінною.
  • Змінні дані MUST мають довгострокові та широтні змінні осі. (Інші змінні осі OPTIONAL.)
  • У MUST є деякі довгострокові значення між -180 і 180.
  • Про насcolorBarMinimumіcolorBarMaximumатрибути MUST вказані. (Інші атрибути колірних барів OPTIONAL.)
data\_minіdata\_max
  • data\_min і data\_max --- Це депресовані змінні атрибути, визначені в експерименті Світового океана (ЗАМОВИТИ) Опис метаданих. Наприклад,

    <att name="data\_min" type="float"\>0.17</att>
    <att name="data\_max" type="float"\>23.58</att>

    • Ми рекомендуємо Вам використовуватиactual\_range, замістьdata\_minіdata\_max, боactual\_rangeтепер визначається специфікацією CF.
    • Якщо в даний час вони повинні бути однакових типів даних, як і тип призначення змінної, і вказати фактичний (не теоретичні або дозволені) мінімальні та максимальні значення даних для цієї змінної.
    • Якщо дані упакованіscale\_factorта/абоadd\_offsetйdata\_minіdata\_maxнеобхідно розпакувати значення за допомогою непакованого типу даних.  
зміннаdrawLandMask
  • drawLandMask --- Це змінний атрибут OPTIONAL, який використовуєтьсяERDDAP™ (і без стандартів метаданих) який визначає значення за замовчуванням для параметра "Draw Land Mask" на основі даних, що робить графічну форму ( datasetID .граф) і для параметра &.land у URL, запитуючи карту даних. Наприклад,
        <att name="drawLandMask">under</att>  

ДивитисяdrawLandMaskОглядй

Консервація
  • Головна
    • Цей атрибут може використовуватися тільки з змінними змінами String.
    • Цей атрибут дуже рекомендується.
    • Цей атрибут відNetCDFКерівництво користувача (НУГ) й
    • ВнутрішнєERDDAP™, Рядки є послідовністю 2-байтних символів, які використовуютьУнікод UCS-2 набір символівй
    • Багато типів файлів тільки підтримують 1-байтні символи в Рядках і, таким чином, потрібно цей атрибут для визначення асоційованого Кошик (Сторінка коду АКА) який визначає, як малювати 256 можливих значень до набору 256 символів, що намальовуються з набору символів UCS-2 та/або системи кодування, наприклад,УФ-8 (що вимагає між 1 і 4 байтами за характер) й
    • Цінності для \_Encoding є чутливими.
    • У теоріїERDDAP™може підтримувати \_Encoding ідентифікатори зСписок IANA, але на практиці,ERDDAP™Зараз просто підтримує
      • Модель: ISO-8859-1 (зауважити, що вона має даше, не підкреслює) , яка має перевагу, що він ідентичний першим 256 символів Unicode, і
      • УФ-8.
    • При зчитуванні вихідних файлів, значення за замовчуванням ISO-8859-1, крім файлів netcdf-4, де за замовчуванням є UTF-8.
    • Це постійне питання проблем, оскільки багато вихідних файлів використовують charsets або кодування, які відрізняються від ISO-8859-1, але не виявляти charset або кодування. Наприклад, багато вихідних файлів даних мають деякі файли метаданих, які скопіюються і виписані з Microsoft Word на Windows, і, таким чином, мають фантазії фенів і апотрофів з Windows-специфічного вугілля замість гіфенів ASCII і апотрофів. Ці символи потім показують як непарні символи або '?' вERDDAPй  
JavaScript licenses API Веб-сайт Go1.13.8
  • JavaScript licenses API Веб-сайт Go1.13.8і файлAccessSuffix дуже рідко використовуються атрибути, які не з будь-якого стандарту. Якщо стовпчик EDDTable має імена веб-доступних файлів (наприклад, зображення, відео або аудіо файли) , можна додати
    <att name="fileAccessBaseUrl">*someBaseURL*</a>  

вказати URL-адресу бази (з /) потрібно зробити ім'я файлу в повну URL-адресу. У незвичайних випадках, наприклад, коли стовпчик має посилання на файли .png, але значення відсутні ".png", можна додати

    <att name="fileAccessSuffix">*someSuffix*</a>  

(наприклад,<English, Українська, Français...<Українська щоб вказати suffix, який буде додано, щоб зробити ім'я файлу в повну URL-адресу. Далі.htmlTableвідповіді,ERDDAP™покаже ім'я файлу як посилання на повну URL (бази Урл плюс ім'я файлу плюс suffix) й

Якщо ви хочетеERDDAP™подавати відповідні файли, зробити окремийEDDTableЗ альбомуFileNamesDataset для тих файлів (це може бути особистим даними) й

файлAccessАрхів Уль
  • файлAccessАрхів Уль є дуже рідко використовуваним атрибутом, який не від будь-якого стандарту. Якщо стовпчик EDDTable має імена веб-доступних файлів (наприклад, зображення, відео або аудіо файли) які доступні через архів (Наприклад,.zipГоловна) Доступний за допомогою URL-адреси<Ім'я файлаAccessArchiveUrl"> УРЛ </att> вказати URL для архіву.

Якщо ви хочетеERDDAP™подати файл архіву, зробити окремийEDDTableЗ альбомуFileNamesдатасет для цього файлу (це може бути особистим даними) й

ioos\_category
  • ioos\_category --- Це змінний атрибут REQUIRED, якщо<змінніMustHaveIoosCategory> встановлюється на true (За замовчуванням) вНалаштування.xml; в іншому випадку це OPTIONAL. Наприклад,<Ім'я користувачаioos\_category"> Салінність<Українська категорії зNOAA- інтегрована система спостереження за океаном (IOOS) й

    • (Як писати це) Ми не знаємо про формальні визначення цих назв.
    • Назва ядра від Zdenka Willis' .ppt "Комплексна система спостереження за океаном (IOOS) NOAA- Підхід до побудови початкової працездатностіСША IOOS Blueprint (Сторінка 1-5) й
    • Імовірно, що цей список буде переглянуто в майбутньому. Якщо у вас є запитання, будь ласка, по електронній пошті Кріс. Джон на noaa.gov.
    • ERDDAP™підтримує більший список категорій, ніж IOOS, тому що Bob Simons додано додаткові імена (В основному на основі імен наукових полів, наприклад, Біологія, Екологія, Метеорологія, Статистика, Таксономія) для інших типів даних.
    • Поточні дійсні значення вERDDAP™Є Bathymetry, Біологія, Bottom Character, CO2, Кольорові розчинені органічні матові, Contaminants, струми, розчинені Nutrients, Розчинені O2, Екологія, Рибна недостатність, Рибні характеристики, Теплофлюс, Гідрологія, дистрибуція льоду, Місцезнаходження, Метеорологія, океанський колір, Оптичні властивості, Інші, Патогени, Фітопланктон види, тиск, Продуктивність, Золотість, Зоологія, Природа, Статистика, Потокове покриття, Поверхневі хвилі, Taxonomy, Температура, час, Загальний підвісний Matter, Невідомий, Волог
    • Є деякі перекриття та неоднозначність між різними термінами - зробити краще.
    • Якщо додатиioos\_categoryдо списку<categoryAttributesГоловна вERDDAPРНалаштування.xmlФайл, користувачі можуть легко знайти дані з аналогічними даними черезERDDAP«Пошук даних за категоріями» на головній сторінці. Спробуйтеioos\_categoryпошук даних відсотків.
    • Тамдискусія про обговоренняERDDAP™іioos\_categoryвERDDAP™Українська

Ви можете бути спокусені, щоб встановити<змінніMustHaveIoosCategory> до false так що цей атрибут не потрібно. ("Пульт" Що мені?) Деякі причини, щоб залишити його наодинці (За замовчуванням) і використанняioos\_category:

  • При налаштуванні.xml<JavaScript licenses API Веб-сайт Go1.13.8 налаштовується,ГенераціяДатасетСмлзавжди створює / отримуємоioos\_categoryатрибут для кожної змінної в кожному з нових даних. Так чому б не просто залишити його?
  • ERDDAP™дозволяє користувачам шукати дані проценти за категоріями.ioos\_categoryдуже корисна категорія пошуку, оскільки ioos\_categories (наприклад, температура) досить широкий. Це робитьioos\_categoryнабагато краще для цієї мети, ніж, наприклад, набагато більш дрібніший CFstandard\_nameй (що не так добре для цього з-за всіх синонімів і незначних варіацій, наприклад, море\_surface\_температурний верст море\_вода\_температура) й (Використанняioos\_categoryдля цієї мети контролюється<categoryAttributes> у файлі налаштування.xml.) Спробуйтеioos\_categoryпошук даних відсотків.
  • Ці категорії зNOAA- інтегрована система спостереження за океаном (IOOS) й Ці категорії є фундаментальними для IOOS опису місії IOOS. Якщо ви перебуваєте вNOAA, підтримкаioos\_categoryце хороший Один-NOAAщо робити. (Дивитися цеОдинNOAAВідеоі бути натхненними!) Якщо ви перебуваєте в іншому або міжнародному агентстві, або працюєте з органами державної влади, або працюєте з іншою системою спостереження за океаном, не є гарною ідеєю для співпраці з офісом U.S. IOOS?
  • Будь ласка, зв'яжіться з намиERDDAP™посилання на ваші дані черезEDDGridВідErddapіEDDTableЗ альбомуErddapй Якщо іншеERDDAP™Задоволенняioos\_categoryВаші дані повинні матиioos\_categoryЗамовитиEDDGridВідErddap і EDDTableЗ альбомуErddap до роботи.
  • Це психологічно набагато простіше включатиioos\_categoryколи ви створюєте дані (це просто інше, щоERDDAP™потрібно додати даніERDDAP) , ніж додати його після того, як (якщо ви вирішили використовувати його в майбутньому) й  
long\_name
  • long\_name (COARDSйПанчохиіАКДДстандарти метаданих) є змінним атрибутом RECOMMENDEDERDDAPй Наприклад,
        <att name="long\\_name">Eastward Sea Water Velocity</att>
    • ERDDAP™використанняlong\_nameдля маркування осей на графіках.
    • Кращі практики: Капіталізувати слова вlong\_nameякби він був титулом (капіталізація першого слова і всіх нечастинних слів) й Не входить в блокиlong\_nameй Довга назва не повинна бути дуже довго (зазвичайно)<20 символів, але повинні бути більш докладними, ніжdestinationName, яка часто дуже лаконічна.
    • Якщоlong\_name"Не визначено в змінній"джерелоАтрибутиабо<addAttributes>,ERDDAP™генерує її шляхом очищенняstandard\_name (якщо присутні) чиdestinationNameй  
missing\_value
  • missing\_value і \_Філл Ціна (COARDSіПанчохи) є змінними атрибутами, які описують номер (Наприклад, -9999) який використовується для відображення відсутніх значень. Наприклад,

<att name="missing\_value" type="double"\>-9999</att>

Для String змінних, за замовчуванням для обох "" (порожній рядок) й Для нумеричних змін, за замовчуванням для обох є NaN.

  • ERDDAP™підтримка якmissing\_valueі \_FillValue, так як деякі джерела даних визнають дещо різні значення для них.
  • Якщо присутні, вони повинні бути однакових типів даних, як змінна.
  • Якщо дані упакованіscale\_factorта/абоadd\_offsetйmissing\_valueі \_FillValue значення повинні бути так само упаковані. Аналогічно для стовпчика з значеннями String дати / часу, які використовують локальніtime\_zoneйmissing\_valueі \_FillValue значення повинні використовувати локальну часову зону.
  • Якщо змінна використовує ці особливі значення, тоmissing\_valueі / або \_FillValue атрибути ОБЛАДНАННЯ.
  • Длячас і часові зміни (Чи є джерело рядків або числових) йmissing\_values і \_FillValues з'являються як "" (порожній рядок) коли час написано як String, так і як NaN, коли час написано як подвійний. Значення джерела дляmissing\_valueі \_FillValue не з'явиться в метаданих змінної.
  • Для String змінних,ERDDAP™завжди конвертує будь-якийmissing\_values або \_FillValue значення даних в "" (порожній рядок) й Значення джерела дляmissing\_valueі \_FillValue не з'явиться в метаданих змінної.
  • Для нумеричних змінних: Про насmissing\_valueі \_FillValue з'явиться у метаданих змінної. Для деяких форматів вихідних даних,ERDDAP™ви побачите -9999. Для інших форматів вихідних даних (неможливі текстові формати, такі як .csv і.htmlTable) йERDDAP™замінить ці спеціальні номери з NaN або "".
  • Деякі типи даних притаманні відсутнім значенням, які не повинні бути явно визначені зmissing\_valueабо \_FillValue атрибути: плавлення та подвійні зміни мають NaN (Не номер) , Рядкові значення використовують порожній рядок, і значення char мають характер\uffff (символ #65535, який значення Unicode для не Character) й Типи даних не мають властивих відсутніх знаків значення.
  • Якщо ціла змінна має відсутні значення (Наприклад, порожня позиція у файлі .csv) йERDDAP™інтерпретувати значення як визначеноmissing\_valueабо \_FillValue для цієї змінної. Якщо не визначено,ERDDAP™буде інтерпретувати значення, як відсутні значення за замовчуванням для цього типу даних, яке завжди є максимальною вартістю, яка може бути проведена цим типом даних: 127 для змінних, 32767 для короткого, 2147483647 для int, 9223372036854775807 довго, 255 для ubyte, 65535 для ushort, 4294967295 для uint, і 18446744073709551615 для ulong.
ADD \_FillValue ATTRIBUTES?
  • ADD \_FillValue ATTRIBUTES?
    Кожен разERDDAP™завантажує набір даних, він перевіряє, якщо змінні з цілими типами вихідних даних мають визначенийmissing\_valueабо \_FillValue атрибут. Якщо змінна відсутня, тоERDDAP™друкує повідомлення до файлу журналу (від "Add \_FillValue Атрибут?") рекомендуєERDDAP™адміністратор додати \_Fill Значення атрибуту для цієї змінної вdatasets.xmlй Це дуже корисно для кожної змінної, щоб мати \_FillValue абоmissing\_valueтому, що відсутні значення завжди можливі, наприклад, якщо заданий файл у dataset не має даної змінної,ERDDAP™повинні бути в змозі представити, що змінна, оскільки всі відсутні значення для цієї змінної. Якщо ви вирішили змінити значення не має атрибуту \_FillValue, ви можете додати <п»ї ДомРμРЅРЅС‹РNo достаРNo РґР°Рμтся, посмотрРμть С†РμРЅСѓ!</att> замість того, що придушить повідомлення для цьогоdatasetID+загальне поєднання в майбутньому.

Кожен разERDDAP™починається, збирає всі ці рекомендації в повідомлення, яке написано в файл журналу (від "ADD \_FillValue ATTRIBUTES??) , по електронній поштіERDDAP™адміністратор, і письмовий на файл даних CSV у файлі даних\[bigParentПублічний\]/logs/ каталог. Якщо ви хочете, ви можете використовувати програму GenerateDatasetsXml (і опція AddFillValueAttributes) застосувати всі пропозиції в файлі CSV доdatasets.xmlфайл. Для будь-якого зdatasetID/variable комбінації в цьому файлі, якщо ви вирішили не додати атрибути, ви можете змінити атрибут до<п»ї ДомРμРЅРЅС‹РNo достаРNo РґР°Рμтся, посмотрРμть С†РμРЅСѓ!</att> для пригнічення рекомендацій для цьогоdatasetID+загальне поєднання в майбутньому.

Це важливо! Як Боб часто сказав: це буде погано (і гасіння) якщо деякі докази глобального потепління були викликані неідентифікованими відсутніми значеннями в даних (Наприклад, значення температур 99 або 127 градусів\_ C, які повинні бути позначені відсутніми значеннями та таким чином, вирощено середню та/або мультимедійну статистику вище) й

  • \_FillValue іmissing\_valueзначення для заданої змінної в різних вихідних файлах повинні бути послідовними; інакше,ERDDAP™приймати файли з одним набором значень і відхиляти всі інші файли, як "Bad Files". Для вирішення проблеми,
    • Якщо файли скріплюються.ncФайли, ви можете використовуватиEDDGridВідNcFilesUnpackedй
    • Якщо файли є файлами табличних даних, ви можете використовувати EDDTableЗ альбому... Рстандартизація ЩорозповістиERDDAPстандартизувати вихідні файли, як вони читаються вERDDAPй
    • Для складних задач можна використовуватиНЦМЛабоNCOвирішити проблему.  
scale\_factor
  • scale\_factor (За замовчуванням = 1) і add\_offset (За замовчуванням = 0) (COARDSіПанчохи) ОПЦІОНАЛЬНІ змінні атрибути, які описують дані, які упаковуються у простий тип даних за допомогою простої трансформації.
    • Якщо присутній, їх тип даних відрізняється від типу вихідних даних і описує тип даних значень призначення. Наприклад, джерело даних може зберігати значення float даних з одним десятковим цифровим пакетом, як короткі точки (вт16) , використовуючиscale\_factor= 0.1 іadd\_offset= 0. Наприклад,

    <att name="scale\_factor" type="float"\>0.1</att>
    <att name="add\_offset" type="float"\>0</att>

У цьому прикладіERDDAP™розпакувати дані і пред’явити його користувачеві як поплавити значення даних.

  • Якщо присутні,ERDDAP™видобувати значення з цих атрибутів, видаляти атрибути та автоматично розпакувати дані для користувача: призначення Значення = джерело Вартість \*scale\_factorдо +add\_offset
    Або, заявили інший спосіб: JavaScript licenses API Веб-сайт Go1.13.8 Вартість \*scale\_factorдо +add\_offset
  • Про насscale\_factorіadd\_offsetзначення для заданої змінної в різних вихідних файлах повинні бути послідовними; інакше,ERDDAP™приймати файли з одним набором значень і відхиляти всі інші файли, як "Bad Files". Для вирішення проблеми,
    • Якщо файли скріплюються.ncФайли, ви можете використовуватиEDDGridВідNcFilesUnpackedй
    • Якщо файли є файлами табличних даних, ви можете використовувати EDDTableЗ альбому... Рстандартизація ЩорозповістиERDDAPстандартизувати вихідні файли, як вони читаються вERDDAPй
    • Для складних задач можна використовуватиНЦМЛабоNCOвирішити проблему.  
standard\_name
  • standard\_name ПанчохиСтандарт метаданих) є змінним атрибутом RECOMMENDEDERDDAPй CF зберігає список дозволенихCF стандартних іменй Наприклад,
        <att name="standard\\_name">eastward\\_sea\\_water\\_velocity</att>
    • Якщо додатиstandard\_nameдо змінних атрибутів і додатиstandard\_nameдо списку<categoryAttributesГоловна вERDDAPРНалаштування.xmlФайл, користувачі можуть легко знайти дані з аналогічними даними черезERDDAP«Пошук даних за категоріями» на головній сторінці.
    • Якщо ви вказали CFstandard\_nameдля змінного, атрибути блоків для змінної не повинні бути ідентичними Canonical Units, зазначених для стандартного імені в таблиці імен CF Standard, але одиниці MUST перетворюються на Canonical Units. Наприклад, всі температури пов'язані CFstandard\_names мати "K" (Келвін) як Canonical Units. Так змінна з температуроюstandard\_nameУМСТ є підрозділи К, ступінь \_C, ступінь \_F, або деякі варіанти УДУніттів цих назв, так як вони всі міжперетворні.
    • Кращі практики: Частина живленняконтрольовані бокуляриВи можете використовувати тільки умови в списку. Ми рекомендуємо дотримуватися умов, визначених у контрольованій лексиці, і рекомендуємо робити термін, якщо у списку немає відповідного. Якщо вам потрібні додаткові умови, див. у випадку, якщо комісія буде додавати їх до контрольованої лексики.
    • standard\_nameзначення є тільки значення атрибута CF, які є чутливими. Вони завжди всі огірки. ПочатиERDDAP™v1.82, GenerateDatasets перетворить літери верхнього регістру в нижні літери. І при завантаженні данихERDDAP, літери верхнього регістру безшумно змінені на нижні літери.  
time\_precision
  • time\_precisionє атрибутом OPTIONAL, який використовуєтьсяERDDAP™ (і без стандартів метаданих) длячас і часові зміни, які можуть бути в сітчастих даних або табличних даних, і вaxisVariableйdataVariableй Наприклад,
        <att name="time\\_precision">1970-01-01</att>  
    time\_precisionвизначає прецизію, яка використовується в будь-який часERDDAP™формати значень часу з цієї змінної як рядків на веб-сторінках, включаючи.htmlTableвідповіді. У форматах файлів, деERDDAP™формати разів як рядки (Наприклад, .csv і.json) йERDDAP™використовувати тількиtime\_precision-видимий формат, якщо він включає дробові секунди; інакше,ERDDAP™використовує 1970-01T00:00:00 Z формат.
  • Дійсно значення 1970-01-01, 1970-01-01T00Z, 1970-01T00:00Z, 1970-01-01T00:00Z (За замовчуванням) , 1970-01-01T00:00:00.0Z, 1970-01T00:00:00.00Z, 1970-01T00:00:00:00.000Z.\[1970 - це не варіант, тому що це єдиний номер, томуERDDAP™не знаю, якщо це форматований рядок часу (рік) або якщо це кілька секунд з 1970-01T00:00:00Z.\]
  • Якщоtime\_precisionне вказано або значення не відповідає, значення за замовчуванням буде використовуватися.
  • Тут, як в інших частинахERDDAP™, будь-які поля форматованого часу, які не відображаються, мають мінімальне значення. Наприклад, 1985-07, 1985-07-01, 1985-07-01Т00З, 1985-07-01Т00:00З, 1985-07-01Т00:00:00:00:00 З вважається рівноцінним, хоча з різними рівнями прецизійного напилення. Це відповідаєISO 8601:2004"extended"Специфікація формата часуй
  • ВАЖКО: Ви повинні використовувати тільки обмеженіtime\_precisionякщо Всі значень даних для змінної мають лише мінімальне значення для всіх полів, які приховані.
  • Наприклад, можна використовуватиtime\_precisionз 1970-01-01, якщо всі значення даних мають годину=0, хвилину=0, а другий=0 (на прикладі 2005-03-04T00:00Z і 2005-03-05T00:00Z) й
  • Наприклад, не використовуйтеtime\_precisionз 1970-01-01, якщо є не-0 годин, хвилина, або секунд значення, (Наприклад 2005-03-05T12:00:00З) тому, що значення не буде відображатися. В іншому випадку, якщо користувач запитує всі дані з часом=2005-03-05, запит не буде несподівано.  
time\_zone
  • time\_zone
    • time\_zoneє атрибутом OPTIONAL, який використовуєтьсяERDDAP™ (і без стандартів метаданих) длячас і часові зміни, які можуть бути в сітчастих даних або табличних даних.
    • За замовчуванням "Zulu« » » » » » » » » » » » » » » (- сучасна версія часової зони GMT) й
    • Додаткова інформація: "часні офсети" (Наприклад, Тихоокеанський стандартний час, -08:00, GMT-8) фіксовані, специфічні, офсети відносноZulu (Навігація) й На відміну від «часових зон» набагато складніші речі, які постраждали від Daylight Saving (Наприклад, "US/Pacific") , які мали різні правила в різних місцях. Часові пояси завжди мають імена, оскільки вони не можуть бути підведені простою офсетною вартістю (див. у таблиці "Назви бази даних TZ" https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones ) йERDDAPРtime\_zoneатрибут дозволяє використовувати локальні дані часу з зони часу (Наприклад, 1987-03-25T17:32:05 Тернопіль час) й Якщо у вас є рядок або числові дані часу з (фіксована) час вимкнення, ви повинні просто регулювати дані дляZulu (Що такеERDDAP™Привітання) вказуючи інший час бази в атрибуті блоків (Наприклад, "Час з 1970-01-01T08:00:00Z", зверніть увагу на T08, щоб вказати часовий зсув) , і завжди перевірте результати, щоб забезпечити вам потрібні результати.
    • Для часових змінних з вихідними даними з Strings цей атрибут дозволяє вказати часову зону, яка ведеERDDAP™перетворити час на локальне джерело (деякі в Стандартний час, деякі в Daylight Економія часу) УвійтиZuluчас (завжди в стандартному режимі) й Список імен часової зони, ймовірно, ідентичний списку в колонці TZ https://en.wikipedia.org/wiki/List\_of\_tz\_database\_time\_zones й Загальні зони часу США: США/Гавай, США/Аласка, США/Тихоокеанський, США/Монтан, США/Арізона, США/Центральні, США/Східна.
    • Для часових змінних з числовими даними джерела можна вказати "time\_zone" атрибут, але значення має бути "Zulu" або "UTC". Якщо вам потрібна підтримка інших часових поясів, будь ласка, по електронній пошті Кріс. Джон на noaa.gov .  
блоки
  • блоки (COARDSйПанчохиіАКДДСтандарт метаданих) визначає одиниці значень даних. Наприклад,
        <att name="units">degree\\_C</att>
    • "безкоштовно" ОБЛАДНАННЯ як або джерело"time"змінних і є STRONGLY RECOMMENDED для інших змінних, коли (що майже завжди) й

    • В цілому ми рекомендуємоУДАТИ\-сумісні одиниці, які потрібніCOARDSіПанчохистандарти.

    • Ще один загальний стандартУКУМ-- Уніфікований код для одиниць вимірювання.OGCпослуги, такі якSOSйWCSйWMSзажадає UCUM і часто звертайтесь до UCUM як UOM (Блоки заходів) й

    • Ми рекомендуємо використовувати один стандарт для всіх даних у вашому пристроїERDDAPй Ви повинні розповістиERDDAP™який стандарт ви використовуєте<блоки\_standard>, у вашомуНалаштування.xmlфайл.

    • Пристрої для даної змінної в різних вихідних файлах повинні бути послідовними. Якщо у вас є збір даних, де один підмножити файли, використовує різні значення одиниць, ніж один або інший підмножити файли (наприклад, "Дні з 1985-01-01" верст "Дні з 2000-01-01", "degree\_Celsius" versus "deg\_C", або "knots" versus "m/s") потрібно знайти спосіб стандартизувати значення одиниць, інакше,ERDDAP™буде тільки завантаження одного підмножини файлів. Подумайте про це: якщо один файл має вітровірозділи=knots і інший має вітровіSpeed юніти=m/s, то значення з двох файлів не повинно бути включено в той же сукупний дані.

      • Якщо файли скріплюються.ncФайли, в багатьох ситуаціях можна використовуватиEDDGridВідNcFilesUnpackedй
      • Якщо файли є файлами табличних даних, у багатьох ситуаціях ви можете використовувати EDDTableЗ альбому... Рстандартизація ЩорозповістиERDDAPстандартизувати вихідні файли, як вони читаються вERDDAPй
      • Для складних задач можна використовуватиНЦМЛабоNCOвирішити проблему.
    • Стандартний розділ CF 8.1 говорить, що якщо дані змінної запаковані черезscale\_factorта/абоadd\_offset, "Установки змінної повинні бути представником непакованих даних."

    • Для часових і часових змінних,чи зміннаджерелоАтрибутиабо<addAttributesГоловна (що має прецедентію) MUST матиблокияк

      • Для змінних часових осі або змінних даних часу з числовими даними:УДАТИ\-сумісний рядок (з форматом блоки з JavaScript licenses API Веб-сайт ) описувати значення часу перекладу (на прикладі, секунди з 1970-01T00:00Z) й

      блоки може бути будь-яким:

          ms, msec, msecs, millis, millisec, millisecs, millisecond, milliseconds,  
      s, sec, secs, second, seconds, m, min, mins, minute, minutes, h, hr, hrs, hour, hours,
      d, day, days, week, weeks, mon, mons, month, months, yr, yrs, year, or years.

Технічно,ERDDAP™не слідуватиUDUNITSстандарт при конвертації"years since"і"months since"часові значення"seconds since"й Про насUDUNITSСтандарт визначає рік як фіксоване, одне значення: 3.15569259747e7 секунд. ІUDUNITSвизначає місяць як рік/12. На жаль, більшість / всі дані, які ми бачили,"years since"або"months since"чітко виявляти значення для календарних років або календарних місяців. Наприклад, 3"months since 1970-01-01"зазвичай призначений для того, щоб означати 1970-04-01. Так,ERDDAP™Переклади"years since"і"months since"як календар років і місяців, і не категорично слідуватиUDUNITSстандарт.

Про нас JavaScript licenses API Веб-сайт має бути ISO 8601:2004 (Етикети) форматований рядок часу дати (yyyy-MM-dd'T'H:mm:sZ, наприклад, 1970-01T00:00:00Z) або деякі варіації цього (наприклад, з деталями, відсутніми в кінці) йERDDAP™намагається працювати з широким діапазоном варіацій цього ідеального формату, наприклад, "1970-1 0:0:0". Якщо інформація про часову зону відсутня, вона повинна бутиZuluчасовий пояс (АКА ГРУП) й Навіть якщо вказано інший час,ERDDAP™ніколи не використовує Daylight заощаджуючи час. Якщо базовий час використовує інший формат, необхідно використовувати<addAttributes> вказати новий рядок блоків, який використовує варіацію ISO 8601:2004 (Етикети) Формат (наприклад, зміна днів з 1 січня 1985 року в дні з 1985-01-01.

Ви можете перевіритиERDDAP- вміння боротися з певним блоки з JavaScript licenses API Веб-сайт зERDDAPРКонвертер часуй Сподіваємось, ви можете розблокувати в рядку (перше значення часу з джерела даних?) і рядок блоків, натисніть на Перетворення іERDDAP™буде в змозі перетворити його в ISO 8601:2004 (Етикети) форматований рядок часу дати. Перетворювач поверне повідомлення про помилку, якщо рядок блоків не розпізнається.

Рядки часу

Для широко використовуваних форматів часу, які є варіаціями ISO 8601:2004 (Етикети) стандартний формат (+7-863-218-40-00 доб.200-80) Ви можете вказати варіаціїyyyy-MM-dd'T'H:mm:sZ, наприклад, використанняyyyy-MM-ddякщо рядок часу тільки має дату. Для будь-якого формату, який починається з yyy-M,ERDDAPвикористовується спеціальний парсер, який дуже схильний до менших варіацій у форматі. Парсер може обробляти часові пояси у форматі "Z", "UTC", "GMT", ±XX:XX, ±XXXX, і ±XX форматів. Якщо частини дати не вказані (наприклад, хвилин і секунд) йERDDAP™припускає найнижче значення для цього поля (Наприклад, якщо секунди не вказані, секунд=0 приймається) й

Для всіх інших форматів часу рядка, вам потрібно точно вказати рядок форматування формата датаTimeFormatter. Якyyyy-MM-dd'T'H:mm:ssZ, ці рядки формату будуються з символів, які ідентифікують конкретний тип інформації з часового рядка, наприклад, м означає хвилину-за годину. Якщо ви повторите типовий характер, якийсь номер часу, то він додатково відновлює значення, наприклад, м означає, що значення може бути зазначене будь-яким числом цифр, мм означає, що значення має бути зазначене 2 цифри. Про насJavaдокументація для DataTimeFormatter є сирим оглядом і не робить ці деталі чіткими. Так ось список варіацій символів формату та їх значення в межахERDDAP™ (що іноді трохи відрізняється відJava's DateTimeFormatter) :

|Аксесуари|Приклади|Малювання| |до|до|до| |у, y, Y|\-4712, 0, 1, 10, 100, 2018|номер року, будь-яка кількість цифр.ERDDAP™лікує y (Рік випуску) й Y (Рік тижня, оскільки це часто помилково використовується замість того, щоб я) як у,астрономічний рікй Астрономічні роки позитивно або негативні цілі, які не використовують BCE (БЦ) або CE (Аудиторія) епошні конструктори: 2018=2018CE, ..., 2=2CE, 1=1CE, 0=1BCE, -1=2BCE, -2=3BCE, ...| |uuuu, yyy, Я|\-4712, 0000, 0001, 0010, 0100, 2018|4 цифра астрономічний рік номер (ігнорування будь-яких прецедентів) | |Р|1, 01, 12|номер місяця, будь-яка кількість цифр (1=Січень) | |ММ|01, 12|до 2 (нуклейка) місяць номер| |МММ|Ян, сінь, JAN|3 літера Англійська місяць ім'я, випадок| |МММ|Ян, сінь, JAN, січень, січень, січень|3 лист або повне ім'я англійською місяця, випадок нечутливим| |й|1, 01, 31|денний номер, будь-яка кількість цифр| |з|01, 31|до 2 (нуклейка) день місяця. Перший «цифровий» може бути просторим.| |Р|1, 001, 366|день року, будь-яка кількість цифр, 001=Jan 1| |ДДДД|001, 366|день року, 3 цифри, 001=Jan 1| |ЕРС|Тю, ТЮ, Чт|3 листового дня, значення ігнорується при парсингу| |EEEE|thu, THU, Чт, четвер, THURSDAY, Четвер|3 літера або повний англійський день-перегляду, випадок нечутливий, значення ігнорується при парсингу| |Х|0, 00, 23|Час-день (0-23) , будь-яка кількість цифр| |ХХХ|00, 23|HH час-день (00-23) 2 цифри. Перший «цифровий» може бути просторим.| |з|am, АМ, ПМ, ПМ|АМ або ПМ, випадок| |ж|12, 1, 01, 11|Цілодобово-на добу-на-в-хв (12, 1, 2, ... 11) , будь-яка кількість цифр| |пн|12, 01, 11|Цілодобово-на добу-на-в-хв (12, 1, 2, ... 11) 2 цифри. Перший «цифровий» може бути просторим.| |Р|1, 1, 11|час-на-в-хв (0, 1, ...11) , будь-яка кількість цифр| |КК|00, 01, 11|час-of-am-pm, 2 цифри| |м.кв|до 1 2 3 4 5+|будь-яка кількість цифр| |мм|00, 59|1 час| |й|до 1 2 3 4 5+|2-хвилин, будь-яка кількість цифр| |ж|00, 59|2-хвилин, 2 цифри| |Р|0,000, 9,999|фракційно-другий, як якщо слідкувати за десятковою точкою, будь-яка кількість цифр| |Р|00, 99|стоти другого, 2 цифр| |ПСС|999 р.|тисячі других, 3 цифр| |Р|0, 0000, 86399999|мілісекундний день, будь-яка кількість цифр| |ААААА|000000000000, 86399999|мілісекундний день, 8 цифр| |Навігація|0,00000000000000, 86399999999999999999999999|наносекундний день, будь-яка кількість цифр. УERDDAP™, це обрізається до nMillis.| |ННННННННННННННН|00000000000000, 86399999999999999999|наносекундний день, 14 цифр. УERDDAP™це обрізається до nMillis.| |п|0,000000000000000, 59999999999999|наносекунд, будь-яка кількість цифр. УERDDAP™це обрізається до nMillis.| |Український|000000000000000, 59999999999|наносекунд, 11 цифр. УERDDAP™це обрізається до nMillis.| |XXX, ЗЗЗ|З, -08:00, +01:00|часова зона з форматом 'Z' або ± (2 розряду годин) : (2 дигіт хвилини офсет) й Це лікування простір до + (нестандартні) й ZZZ підтримує «Z» нестандартне, але працює з загальною помилкою користувачів.| |XX, ЗЗ|З -0800, +0100|часова зона з форматом 'Z' або ± (2 розряду годин) : (2 дигіт хвилини офсет) й Це лікування простір до + (нестандартні) й ZZ підтримує "Z" нестандартний, але працює з загальною помилкою користувачів.| |X, З|З, -08, +01|часова зона з форматом 'Z' або ± (2 розряду годин) : (2 дигіт хвилини офсет) й Це лікування простір до + (нестандартні) й Z підтримка 'Z' нестандартний, але працює з загальною помилкою користувачів.| |хххххх|\-08:00, +01:00|часова зона з форматом ± (2 розряду годин) : (2 дигіт хвилини офсет) й Це лікування простір до + (нестандартні) й| |кскскс|\-0800, +0100|часова зона з форматом ± (2 розряду годин) (2 дигіт хвилини офсет) й Це лікування простір до + (нестандартні) й| |до|\-08, +01|часова зона з форматом ± (2 розряду годин) й Це лікування простір до + (нестандартні) й| |Р|'T', 'Z', 'GMT'|початок і кінець серії літеральних символів| |Р Р (дві одиночні лапки) |Р Р|дві одинарні лапки виводить літрову одну цитату| | \[\] | \[ \] |початок (« » » » » » » » » » » » » » »\[« » » » » » » » » » » » » » ») і кінець (« » » » » » » » » » » » » » »\]« » » » » » » » » » » » » » ») Додатковий розділ. Ця нотація підтримується тільки для літерних символів і в кінці рядка форматів.| |#, {, }|#, {, }|Закупи хостинг »| |G,L,Q,e,c,V,z,O,p| |Ці символи форматування підтримуютьсяJava's DateTimeFormatter, але в даний час не підтримуєтьсяERDDAPй Якщо вам потрібна підтримка для них, по електронній пошті Кріс. Джон на noaa.gov .|

Примітки:

  • У день з пунктуацією можуть мати змінну кількість цифр (Наприклад, у форматі slash дата "1/2/1985", місяць та дата може бути 1 або 2 цифр) Отже, формат повинен використовувати 1-letter Tokens, наприклад, M/d/yyyy, які приймають будь-яку кількість цифр протягом місяця і дати.
  • Якщо кількість цифр для елемента є постійним, наприклад, 01/02/1985, то вкажіть кількість цифр у форматі, наприклад, MM/dd/yyyy для 2-цифрового місяця, 2-значний дата і 4 цифра року.
  • Ці формати є складними для роботи з. Заданий формат може працювати для більшості, але не всі, часові рядки для заданої змінної. Завжди перевірте, що формат, який ви вказали, працює як очікується вERDDAPдля всіх змінних часових рядків.
  • Коли це можливо, GenerateDatasetXml запропонує часові рядки форматів.
  • Якщо вам потрібна допомога, щоб створити рядок формату, будь ласка, по електронній пошті Кріс. Джон на noaa.gov .

Основні зміни даних часу (для табличних даних) і змінна вісь головного часу (для сітчастих даних) ВизначеніdestinationNameчас. Ці метадані блоків повинні бути UDUnits-сумісні одиниці для значень нумерного часу, наприклад, "Дні з 1970-01-01" (для табличних або сітчастих даних) абоблоки, придатні для рядкових разів, наприклад, "M/d/yyyy" (для табличних даних) й

Різні блоки часу в різні сітки.ncФайли - Якщо у вас є збір сітки.ncфайли, де, для зміни часу, один підмножити файли, використовує різні часові одиниці, ніж один або інший підмножини файлів, ви можете використовуватиEDDGridВідNcFilesUnpackedй Перетворює часові значення в"seconds since 1970-01-01T00:00:00Z"на нижньому рівні, таким чином, приховуючи відмінності, щоб ви могли зробити один набір даних з колекції неоднорідних файлів.

Варіанти часу

Варіанти часу--- Будь-яка інша змінна (axisVariableабоdataVariable, уEDDGridабо EDDTable Dataset) може бути змінною часу. Перемінники Timetamp є змінними, які мають часові та часові дані, але мають<destinationName> крім часу. ЧасStamp змінні, як правило, змінні часу, в яких вони перетворюють формат часу джерела в"seconds since 1970-01-01T00:00:00Z"й/або ISO 8601:2004 (Етикети) формат.ERDDAP™Визнання часу Штампові змінні за їх часом "блоки" метадані, які повинні відповідати цьому формальному виразу "\[А-ЗА-З\]+ до +\[0-9\].+" (для нумеричної дати Наприклад,"seconds since 1970-01-01T00:00:00Z") або бути датою Строк формата часу, що містить "uuuu", "yyy" або "YYYYY" (Наприклад, "yyyy-MM-dd'Т'Х:мм:СЗ") й Але будь ласка, використовуйтеdestinationName "time"на головну дату Зміна часу.

Завжди перевірте свою роботу, щоб переконатися, що часові дані, які відображаються вERDDAP™– правильні дані часу. Робота з даними часу завжди хитрощі і схильністю до помилок.

Про насбільше інформації про часові змінній ERDDAP™має утиліту дляПеретворення Numeric Час до / з часу Stringй Про насЯкERDDAP™Пропозиції з часомй  

valid\_range

або

<att name="valid\_min" type="float"\>0.0</att>
<att name="valid\_max" type="float"\>40.0</att>

  • Якщо в даний час вони повинні бути однакових типів даних, як змінна, і вказати дійсний мінімум і максимальні значення даних для цієї змінної. Користувачі повинні враховувати значення за межі цього діапазону, щоб бути недійсними.
  • ERDDAP™не застосовуєтьсяvalid\_rangeй Сховай ще один спосіб:ERDDAP™не конвертувати значення даних за межамиvalid\_rangeдо \_Fill Вартістьmissing\_valueйERDDAP™просто переходить на ці метадані і залишає додаток до вас. Чому? Що таке метадані. Якщо було бажати провайдера даних, провайдер даних може перетворювати значення даних за межамиvalid\_rangeбути \_FillValues.ERDDAP™не другий здогадувати провайдера даних. Цей підхід є безпечним: якщо він пізніше показує, щоvalid\_rangeбула занадто вузька або інакше неправильно,ERDDAP™не буде застарілих даних.
  • Якщо дані упакованіscale\_factorта/абоadd\_offsetйvalid\_rangeйvalid\_minіvalid\_maxповинен бути упакований тип даних і значення. ЗERDDAP™доляscale\_factorіadd\_offsetколи він завантажує дані,ERDDAP™розпакуватиvalid\_rangeйvalid\_minіvalid\_maxзначення, щоб метадані призначення (Користувачі) вказати тип і діапазон непакованих даних. Або, якщо не упаковано\_valid\_rangeатрибут присутній, він буде перейменованийvalid\_rangeколиERDDAP™завантаження даних.
<removeMVRows>
  • Про нас ** <removeMVRows> ** до (#ремонт) є тегом OPTIONAL в тегіdatasets.xmlДля EDDTableЗ альбомуFiles (включаючи всі підкласи) JavaScript licenses API Веб-сайт Go1.13.8 Це може мати значення true або false. Наприклад, правда Це знімає будь-який блок рядків в кінці групи, де всі значенняmissing\_value, \_FillValue, або CoHort ... (або char=#32 для CharArrays) й Це для CF DSG багатовимірного типу масиву і аналогічних файлів. Якщо правда, це робить правильний тест і тому завжди завантажує всі максимальні змінні дім, тому це може зайняти додатковий час. Значення за замовчуванням є помилковим. Рекомендації -- Якщо це можливо для вашого набору даних, ми рекомендуємо встановити removeMVRows до false. Налаштування removeMVRows to true може значно уповільнити запити, хоча може знадобитися для деяких даних.