Робота з 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 й Якщо ви застрягнете, див. нашу розділ про отримання додаткової підтримки й
Різновиди в datasets.xml
Стан ERDDAP™ версія 2.29.0, datasets.xml тепер (необов'язково) обробляється StringSubstitutor й Це багато хто використовує, включаючи налаштування приватних значень (як паролі) за допомогою змінних середовища. Це може бути вимкнено, встановивши кнопкуEnvParsing до false в налаштуваннях.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. Ми використовуємо більш ефективний спосіб вирішення великої кількості постачальників даних.
Зворотній зв'язок Ця форма нова, тому будь ласка, email erd 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.xml MADE 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 й (що може дублювати деякі datasetID s вже у вашому ERDDAP ) або створення нових імен, які будуть унікальними (але, як правило, не є людським) й
EDDTableЗ альбомуErddap
Цей EDDType виробляє всі datasets.xml куртки, необхідні для приготування EDDTableЗ альбомуErddap дані з усіх EDDTable datasets в дистанційному режимі ERDDAP й Ви будете мати варіант збереження оригінального datasetID й (що може дублювати деякі datasetID s вже у вашому 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™ отримує дані з локальної нумеричної адреси.
- Якщо у вас є проблеми, які ви не можете вирішити, Перевірте поради щодо усунення несправностей й
- Код низького рівня для цього зараз використовує Unidata netcdf-java каталог код товару (тромби. клас) так що він може обробляти всі каталоги THREDDS (що може бути дивно складним) Дякую Unidata для цього коду.
EDDGrid LonPM180З альбому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™ отримує дані з локальної нумеричної адреси.
EDDGrid Lon0360З альбому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З альбомуFileNames Dataset для файлів.
- Наприкінці діагностики, що це записує до файлу журналу, просто до 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 й
- Після того, як ви маєте доступ до файлу inport-xml (як URL або локальний файл) : запустити GenerateDatasets Xml, вкажіть EDDType=EDDTableЗ альбомуInPort, вкажіть URL-адресу впорт-xml або повне ім'я файлу, вкажіть, щоChild=0 і вказати іншу необхідну інформацію (якщо відомо) й (У цій точці вам не потрібно мати файл вихідних даних або вказати його ім'я.) Налаштування якихChild=0 говорить GenerateDatasets Xml для запису інформації для Всі з<суб'єктно-інформаційна інформація<особа> у файлі inport-xml (якщо є) й Він також друкує резюме на фонову інформацію, включаючи всі перераховані у файлі inport-xml.
- Переглянути всі дані (включаючи інформацію про фон, що GenerateDatasets Xml друку) і відвідування URL-адреси завантаження (й) Для того щоб знайти файл вихідних даних (й) й Якщо ви можете знайти його (вони) , завантажити його (вони) в каталог, доступний для ERDDAP й (Якщо ви не можете знайти будь-які файли вихідних даних, то не існує сенсу при переході.)
- Генерація Дані Xml знову. Якщо файл вихідних даних відповідає одному з файлів inport-xml<суб'єктно-інформаційна інформація<особа>'s, вкажіть, щоChild= JavaScript licenses API Веб-сайт (т.г., 1, 2, 3, ...) й ERDDAP™ намагатиметься відповідати іменам стовпців у файлі вихідних даних для імен в інформації про особу суб’єкта господарювання, а також підказка про прийняття/відведення/фіксувати будь-які розбіжності. Або, якщо файл inport-xml немає<суб'єктно-інформаційна інформація<суб'єкт>', вкажіть, щоChild=0.
- У горбочку datasets.xml що було зроблено GenerateDatasets Xml, оживити [глобал< addAttributes >] (#глобал-атрибути) як потрібно/відображається.
- У горбочку datasets.xml що було зроблено GenerateDatasetsXml, додати / перегляньте [< dataVariable >] (#datavariable) опис кожного з змінних. Переконайтеся, що ви правильно ідентифікуєте кожну змінну Про нас< sourceName >] (Ім'я) (як з'являється джерело) й Про нас< destinationName >] (Назва) (що має більше обмежень на дозволені символи, ніж sourceName ) й Про нас<блоки> (Ніна) (особливо якщо це час або час де потрібно вказати формат) й Про нас< missing\_value >] (#місія_значення) й
- Коли ви близькі до обробки, багаторазово використовуйте Дати інструмент, щоб швидко побачити, чи працює опис даних, і якщо дані з'являються в 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:
- У Windows, перший раз, коли ви запустіть DasDds, вам потрібно редагувати DasDds. bat файл з текстовим редактором, щоб змінити шлях до java. exe файл так що Windows може знайти Java й
- DasDds просить вас за datasetID за даними, які ви працюєте.
- DasDds намагається створити дані з тим, що datasetID й
- DasDds завжди друкує багато діагностичних повідомлень. Якщо ви використовуєте "DasDds -verbose", DasDds будуть друкувати більше діагностичних повідомлень, ніж звичайні.
- Для безпеки DasDds завжди видаляє всю необхідну інформацію (Файли) для набору даних перед створенням даних. Це еквівалент налаштування жорсткий прапор Для сукупних даних, ви можете налаштувати файлNameRegex тимчасово, щоб обмежити кількість файлів, знайдених конструктора даних.
- Якщо гарнітура не завантажується (з будь-якої причини) , DasDds зупиниться і покаже вам повідомлення про помилку для першої помилки.
Не намагайтеся вгадати, що може бути проблема. Прочитати повідомлення ERROR ретельно.
При необхідності читати передові діагностичні повідомлення, щоб знайти більше відчуттів і інформації. - Зробіть зміни в XML даних, щоб спробувати вирішити цю проблему
І дайте DasDds, щоб створити дані знову. - Якщо ви неодноразово вирішуєте кожну проблему, ви в кінцевому підсумку вирішите всі проблеми
і датасет буде навантажуватися.
- Усі дані DasDds (діагностика та результати) записуються на екран і до bigParentПублічний /logs/DasDds.log .
- Якщо DasDds може створити набір даних, DasDds потім покаже вам .das (Структура атрибутів даних) й .Діти (Диспетчер даних Структура) й .timeГапс (час зазори) інформацію для набору даних на екрані та написати їх на екран bigParentПублічний /logs/DasDds.out .
- Нерідко ви хочете, щоб зробити деякі невеликі зміни до 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-реєстратор, як анотація й
Поради щодо усунення несправностей
- Інші способи діагностики проблем з даними
На додаток до двох основних Інструменти й - JavaScript licenses API Веб-сайт Go1.13.8 є файл журналу з усіма ERDDAP діагностичні повідомлення.
- Про нас Щоденний звіт має більше інформації, ніж сторінка статусу, в тому числі список даних, які не були завантажені та винятки (Помилки) вони генеруються.
- Про нас Реєстрація швидко перевірити ERDDAP Статус на сервери Список даних, які не навантажували (хоча б не пов'язані винятки) і завдання Статистика (показати прогрес EDDGrid Партнерство і EDDTableКопі дані та будь-які EDDGrid Відповіді або EDDTableЗ альбомуFiles дані, які використовують cacheЗ альбомуUrl (але не кеш РозмірGB) ) й
- Якщо ви застрягнете, див. нашу розділ про отримання додаткової підтримки й
Спеціальні змінні
- ** Довгота, широта, висота, глибина, тиск і час (ЛІТА) змінна destinationName s є особливим.**
- В цілому:
- 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, оскільки імена змінної однакові у всіх відповідних даних.
- Для змінної "довго" і змінної "широтості":
- Використання destinationName s "довга" і "широтість" тільки якщо блоки є ступені\_схід і ступені\_норт, відповідно. Якщо Ваші дані не відповідають цим вимогам, використовуйте різні імена змінних даних (Наприклад, x, y, lonRadians, latRadians) й
- Якщо у вас є довгота і широтні дані, виражені в різних підрозділах і, таким чином, з різними destinationName s, наприклад, lonRadians і latRadians, зробити графік ( * datasetID * .граф) зробить графіки (наприклад, часовий ряд) замість карт.
- Для "широтості", "запобігання", або "глибина" змінна:
- Використання destinationName "Розширення" для визначення відстані даних над рівнем моря (позитивні значення ="up") й Додатково ви можете використовувати "широту" для дистанцій нижче рівня моря, якщо значення негативні нижче моря (або якщо ви використовуєте, наприклад, Про нас<Ім'я користувача scale\_factor " type="int">- 1 час<Українська (#масштаб_фактор) перетворювати значення глибини на значення висоти.
- Використання destinationName "глибина" для визначення відстані даних нижче рівня моря (позитивні значення) й
- Крім того, для висот, визначених рівнем тиску повітря (як свінгери ) , ви повинні встановити destinationName до «пресури». Підтримує блоки в "hPa", "Pa", "mbar" (позитивні значення) й
- Ці дані можуть мати лише одну "широтість", "пресур", або "глибина" змінна.
- Для цих "широтних" і "глибих" змінних, блоки повинна бути "м", "метр", або "метри". Якщо одиниці різні (наприклад, жиросоми) , ви можете використовувати Про нас<Ім'я користувача 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») й
- З’являються значення для всіх типів нумеричних даних.
.nc 3 фото
- .nc 3 файли, які не мають відношення до цілих типів даних. До CF v1.9 CF не підтримує не позначені цілі типи. З цим, ERDDAP™ 2.10+ дотримується стандарту NUG і завжди додає атрибуту "\_Unsigned" з значенням "true" або "false" для позначення, якщо дані від не позначеної або підписаної змінної. Всі атрибути цілого запису (Наприклад,) з підписаними значеннями (наприклад, ubyte) actual\_range атрибут з значеннями 0 до 255, з'являється як атрибут байт з значеннями 0 до -1 (переклад двох доповнювачів значення зовнішнього значення). Не можна легко дізнатися, які (значені) атрибути повинні прочитати як не позначені атрибути. ERDDAP™ підтримує атрибут "\_Unsigned", коли він читає .nc 3 фото.
- .nc 3 файли, які не підтримують довгострокові або віддалені типи даних. ERDDAP™ з цим тимчасово перетворюючи їх, щоб бути подвійними змінними. Двічі можуть точно представляти всі значення до +/- 9,007,199,254,740,992 який є 2^53. Це недосконале рішення. Unidata відмова зробити незначне оновлення .nc 3, щоб боротися з цими і пов'язаними проблемами, цитуючи .nc 4 000 р. (велика зміна) як розчин.
- Специфікація CF (до v1.9) Вона підтримує тип даних char, але незрозуміло, якщо char призначено тільки як будівельні блоки масивів char, які ефективно струнуть. Питання до їх переліку розсилки, що надавалися лише відповідями. Через ці ускладнення краще уникати змінних вугілля в ERDDAP™ і використовувати Струнні змінні, коли це можливо.
- Традиційно, .nc 3 фото тільки підтримані рядки з ASCII-encoded (7-біт, #0 - #127) символи. НУГ (і ERDDAP ) продовжити (від ~ 2017) в тому числі атрибут "\_Encoding" з значенням "ISO-8859-1" (розширення ASCII, що визначає всі 256 значення кожного 8-бітного персонажа) або "UTF-8" вказати, як зашифровано дані String. Інші кодування можуть бути юридичними, але дискуровані.
.nc 4 фото
- .nc 4 фото підтримка всіх 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" з підписаними значеннями (наприклад, ubyte actual\_range атрибут з значеннями 0 до 255, з'являється як атрибут байт з значеннями 0 до -1 (переклад двох доповнювачів значення зовнішнього значення). Немає простих способів дізнатися, які атрибути «byte» повинні прочитати як атрибути ubyte.
- (OPeN)DAPне підтримує підписані або невизнані довги. ERDDAP™ пропозиції з цим тимчасово перетворюючи їх, щоб бути подвійними змінними та атрибутами. Двічі можуть точно представляти всі значення до 9,007,199,254,740,992 який є 2^53. Це недосконале рішення. OPeNDAP (організація) відмова зробити незначне оновлення DAP 2.0 для вирішення цих і пов'язаних проблем, цитування DAP 4 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™ має спеціальні функції для полегшення доступу до медіа файлів. Це два крокові процеси:
- Зробіть кожен файл, доступний за допомогою власної URL-адреси, через систему, яка підтримує запити діапазону. Найпростіший спосіб зробити це, щоб покласти файли в каталозі, який ERDDAP™ має доступ до. (Якщо вони в контейнері люблять .zip файл, розпакувати їх, хоча ви можете запропонувати .zip Файл для користувачів теж.) Далі робимо EDDTableЗ альбомуFileNames Dataset, щоб зробити файли доступними через ERDDAP™ , можливо, через ERDDAP Р "files" системи й
Всі файли, доступні через EDDTableЗ альбомуFileNames і ERDDAP Р "files" підтримка системи Запити діапазону й Нормально, коли клієнт (e.g., веб-сайт) Виконує запит на URL, він отримує весь файл як відповідь. Але з вимогою байтів, запит визначає діапазон байтів з файлу, і сервер тільки повертає ці байти. Це доречно тут, тому що аудіо та відеоплеєри в браузерах працюють тільки якщо файл можна отримати за допомогою протоколів байтів.
Додатково: Якщо у вас є більше одного набору даних з пов'язаними медіа файлами, ви можете зробити лише один EDDTableFromFileName, який має підкладку для кожної групи файлів. Перевага полягає в тому, що якщо ви хочете додати нові медіа файли для нового набору даних, все, що ви повинні зробити, це створити нову папку і покласти файли в цій папці. Папка та файли будуть автоматично додані в EDDTableЗ альбомуFileNames dataset.
- Додатково: Якщо у вас є дані, які містять посилання на медіа файли, додайте його до 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
Відповідна УРЛ для цього об'єкта
AWS підтримує невелику варіацію, як сконструюється URL, але ERDDAP™ вимагає цього певного формату: https://bucketName.s3.region.amazonaws.com/key
Стан ERDDAP v2.29, тепер ви можете використовувати й URI формат замість URL відро. Це формат, який використовується AWS s3 cli й
й Навігація Українська Головна
Про нас регіон Для S3 URI можна вказати в одному з трьох способів:
- Про нас регіон в Tomcat користувача
~/.aws/configПрофіль - Про нас
AWS_DEFAULT_REGIONзмінна середовища - Про нас
авт.регіонJVM змінний (в setenv.sh для Tomcat)
Це загальна практика, як з цим прикладом, щоб зробити ключові імена, як ієрархічний шлях плюс ім'я файлу, але технічно вони не є. Так як це загальний і корисний, 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 для Java 2.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 також підтримує анонімні облікові дані для державних відро. Для використання анонімних облікових записів додайте <useAwsAnonymous> Справедливість </useAwsAnonymous> на Ваше налаштування.xml.
Призначені для користувача S3 Endpoints
Для S3 сумісного зберігання об'єктів не розміщеного Amazon, потрібно налаштувати Endpoint_url поряд з спекуляцією відро/під ключа за допомогою й УРТ.
Про нас Endpoint_url можна вказати в одному з трьох способів:
- Про нас Endpoint_url в Tomcat користувача
~/.aws/configПрофіль - Про нас
AWS_ENDPOINT_URLзмінна середовища - Про нас
aws.endpoint УльJVM змінний (в setenv.sh для Tomcat)
Для повного списку змінних конфігурації S3, Переглянути документацію Amazon й
Сертифікати
Для самоприхованих S3 відро, ви часто будете мати самопризначені SSL сертифікати. Для ERDDAP читати з цих відрав, потрібно додати до бази даних сертифікатів до JVM $JAVA_HOME/jre/lib/security/cacerts й Додатково ERDDAP використання AWS загальний робочий час для доступу до ковро-асинхронно. Це підвищує продуктивність, але також вимагає того, що ваші самовизнані сертифікати додаються до вашого OS конкретного Truststore. Якщо ви хочете уникнути цього, ви можете відключити AWS CRT з <useAwsCrt> Логін </useAwsCrt> у налаштуваннях.xml..
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™ є:
-
Створення каталогу на вашому комп'ютері для зберігання декількох файлів даних тестових даних.
-
Завантажте два файли даних з джерела до каталогу, які ви просто створили.
-
Зареєструватися ГенераціяДатасетСмл для створення шматочка datasets.xml для набору даних на основі двох локальних файлів даних.
-
Перевірити те, що датасет працює за бажанням Дати та/або локальні ERDDAP й
Наступні кроки роблять копію цих даних (які отримають дані від S3 відро) на громадськість ERDDAP й
-
Статус на сервери datasets.xml для збору даних datasets.xml для громадськості ERDDAP™ які будуть служити даними.
-
Створіть каталог на публічний ERDDAP - локальний жорсткий диск для зберігання кешу тимчасових файлів. Не використовуйте багато дискового простору (див. cacheSizeGB нижче) й
-
Змінення значення індексу даних<fileDir> тег так що він вказує на каталог, який ви просто створили (Хоча каталог порожній) й
-
Додати cacheЗ альбомуUrl тег, який визначає назву відра даних і додатковий префікс (i.e., каталог) в конкретному Формат URL-адреси Aws S3 ERDDAP™ Задоволення й
-
Додати [<cacheSizeGB>] (#cachefromurl) тег до xml (наприклад, 10 є гарним значенням для більшості даних) розповісти ERDDAP™ обмежити розмір локального кешу (i.e., не намагайтеся кешувати всі віддалені файли) й
-
Дивитися, якщо це працює в публічному режимі ERDDAP й Зверніть увагу, що перший раз ERDDAP™ навантажує набір даних, він займе довгий час для завантаження, оскільки ERDDAP™ необхідно завантажити і читати всі файли даних.
-
Якщо датасет є величезною колекцією величезних сітчастих файлів даних, це займе дуже довго і буде непрактично. У деяких випадках для мережевих файлів даних, ERDDAP™ може витягти необхідну інформацію (e.g., часовий пункт для даних у сітчастому файлі даних) від імені файлу і уникнути цієї проблеми. Про нас Агрегація через Ім'я файлу й
- Додатково (але особливо для 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" система.
- Відкрийте обліковий запис AWS ERDDAP™ використання AWS SDK для Java щоб отримати відро інформацію від AWS, так що вам потрібно створити та активувати обліковий запис AWS й Це досить велика робота, з великою кількістю речей, щоб дізнатися.
- Поставте свої значення 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.
- Створіть URL-адресу відра в форматування ERDDAP™ Задоволення , наприклад, https://noaa-goes17.s3.us-east-1.amazonaws.com й (для громадських відро) Перевірте його в браузері, щоб переконатися, що він повертає XML-документ, який має частковий список вмісту цього відра.
- Зареєструватися ГенераціяДатасетСмл створити 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 й
- Якщо ви дотримуйтесь інструкцій вище і завантажте дані 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 та значень даних) й Наприклад, веб-сторінки, які відображають довгострокові змінні імена, будуть висунуті широкі та довгі змінні імена, якщо вони перевищують ліміт типу файлу відповіді.
Для роз'ємних даних:
- Максимальна кількість axisVariable s ~2 млрд. Максимальна кількість dataVariable s ~2 млрд. Але якщо датасет має > 100 змінних, він буде громіздкою для користувачів. І якщо датасет має >1 млн змінних, ваш сервер буде потрібно багато фізичної пам'яті, і є інші проблеми.
- Максимальний розмір кожного виміру ( axisVariable ) ~2 мільярдів значень.
- Я думаю, що максимальна загальна кількість клітин (продукт всіх розмірів) є необмеженим, але це може бути ~9e18.
Для табличних даних:
- Максимальна кількість dataVariable s ~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.8 NetCDF Атрибутова конвенція для виявлення даних яка була названа як " Unidata Dataset Discovery v1.0 в глобальних конвенціях і Metadata\_Conventions атрибути.
Якщо Ваші дані використовуються раніше версій ACDD, ми рекомендуємо вам переключитися до ACDD-1.3. Не важко. ACDDD-1.3 є високооптимізованим з версією 1.0. Щоб перейти, для всіх даних (до EDDGrid ВідErddap і EDDTable Відповідні дані) :
- Зняти новий світ 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.25 ERDDAP™ читати локальну Файли Зар 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 (Увійти) всі змінні осі. ( Чому? Що робити? ) Новий ERDDAP™ версія 2.29.0 з EDDGrid ВідNcFiles є експериментальною підтримкою змінних даних, які не підтримують всі змінні осі (або як деякі з них називають 1D і 2D дані в одному з даних) й
- Сортовані значення розмірів - Всі 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:
- EDDTableЗ альбомуAllDatasets - це більш високий рівень даних, що містить інформацію про всі інші дані в ваших даних ERDDAP й
- EDDTableЗ альбомуAsciiFiles агрегує дані з коми-, вкладок-, напівколон-, або просторо-сепаровані табличні файли даних ASCII.
- EDDTableЗ альбомуAsciiService є суперклас всіх EDDTableЗ альбомуAsciiService... класи.
- EDDTableЗ альбомуAsciiServiceNOS обробка даних з деяких NOAA Веб-послуги NOS.
- EDDTableЗ альбомуAudioFiles сукупності даних з групи локальних аудіо файлів.
- EDDTableЗ альбому AwsXmlFiles сукупні дані з набору автоматичної станції погоди (АВІ) XML файли.
- EDDTableЗ альбомуCassandra ручки табличних даних з одного столу Кассандра.
- EDDTableЗ альбомуColumnarAsciiFiles агрегує дані з табличних файлів даних ASCII з фіксованими стовпчиками даних.
- EDDTableЗ альбомуDapSequence ручки табличних даних з DAP послідовні сервери.
- EDDTableЗ альбомуDatabase ручки табличних даних з одного таблиці бази даних.
- EDDTableЗ альбому EDDGrid дозволяє створювати EDDTable дані з EDDGrid датасет.
- EDDTableЗ альбомуErddap ручки табличних даних з пульта дистанційного керування ERDDAP й
- EDDTableЗ альбомуFileNames створює дані з інформації про групу файлів в файловій системі сервера, але вона не обслуговує дані з файлів.
- EDDTableЗ альбомуFiles є суперклас всіх EDDTableЗ альбому...Файли класи.
- EDDTableЗ альбомуHttpGet Про нас ERDDAP - єдина система імпорту даних, а також експорт даних.
- EDDTableЗ альбому Hyrax Файли (ДЕПРЕЄСТРАЦІЯ) сукупні дані з файлів з декількома змінними розмірами, що подаються загальними розмірами Hyrax OPeNDAP сервер й
- EDDTableЗ альбомуInvalidCRAFiles дані агрегатів з NetCDF (v3 або v4) .nc Файли, які використовують специфічний, недійсний, варіант CF DSG Contiguous Ragged Array (Кошик) Файли Немовля ERDDAP™ підтримує цей тип файлів, це недійсний тип файлів, який не повинен використовувати його. Групи, які в даний час використовують цей тип файлів, сильно заохочуються до використання ERDDAP™ щоб генерувати дійсні файли CF DSG CRA і зупинити використання цих файлів.
- EDDTableЗ альбомуJsonlCSVFiles дані агрегатів з Сонце Лінії CSV файлів й
- EDDTableЗ альбомуMultidimNcFiles дані агрегатів з NetCDF (v3 або v4) .nc файли з декількома змінними розмірами.
- EDDTableЗ альбомуMqtt Конструювати дані на основі повідомлень MQTT. Зауважте, що документація знаходиться на спеціальній сторінці. Зауважте, що є багато схожостей EDDTableЗ альбомуHttpGet й
- EDDTableЗ альбомуNcFiles дані агрегатів з NetCDF (v3 або v4) .nc файли з декількома змінними розмірами. Ми рекомендуємо використовувати EDDTableЗ альбомуMultidimNcFiles.
- EDDTableЗ альбомуNcCFFiles дані агрегатів з NetCDF (v3 або v4) .nc Файли, які використовують один з форматів файлів, зазначених за допомогою файлів Панчохи Дискретні шамплінг геометереї (ДСГ) конвенції. Але для файлів з використанням одного з багатовимірних варіантів CF DSG, використання EDDTableЗ альбомуMultidimNcFiles до.
- EDDTableЗ альбомуNccsvFiles дані агрегатів з НККСВ Файли ASCII .csv.
- EDDTableЗ альбомуNOS (ДЕПРЕЄСТРАЦІЯ) ручки табличних даних з серверів NOS XML.
- EDDTableЗ альбомуOBIS ручки табличних даних з серверів OBIS.
- EDDTableЗ альбомуParquetFiles обробка даних з Паркет й
- EDDTableЗ альбому SOS ручки табличних даних з SOS сервери.
- EDDTableЗ альбомуThreddsFiles (ДЕПРЕЄСТРАЦІЯ) сукупні дані з файлів з декількома змінними розмірами, що подаються загальними розмірами ЦІНИ OPeNDAP сервер й
- EDDTableЗ альбому WFS Файли (ДЕПРЕЄСТРАЦІЯ) робить локальну копію всіх даних з ArcGIS Мапа WFS сервер так що дані можна швидко зберігати ERDDAP™ користувачів.
- EDDTableАгрегатор може зробити EDDTable дані з групи EDDTable datasets.
- EDDTableКопі може зробити локальну копію багатьох типів EDDTable datasets, а потім швидко зберігати дані з локальної копії.
Детальні описи типів даних
EDDGrid Від
** EDDGrid Від** ручки сітки змінні з DAP сервери.
- Ми рекомендуємо використовувати ГенераціяДатасети Програма Xml зробити грубий проект datasets.xml горб для цього набору даних. Ви можете зібрати інформацію, необхідну для того, щоб зробити свій власний XML для EDDGrid EnglishDeutschPусский简体中文中國傳統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 й (Створено з деяких EDDTable dataVariable й) і деякі dataVariable й (створений з решти EDDTable dataVariable й) й ГенераціяДатасетСмл зробить здогадку, до якого EDDTable dataVariable s повинні стати EDDGrid ВідEDDTable axisVariable s, але це просто здогадка. Вам потрібно змінити вихід GenerateDatasetsXml, щоб вказати який dataVariable б axisVariable і в якому порядку.
-
ОсьValues -- Немає нічого про основний EDDTable, щоб розповісти EDDGrid Відобразити можливі значення axisVariable s в сітчастій версії Dataset, тому ви MUST надаєте цю інформацію для кожного axisVariable через один з цих атрибутів:
- ОсьValues -- Дозволяє вказати список значень. Наприклад, <Назва поштового відділення type="doubleList" \>2, 2.5, 3, 3,5, 4<Українська Примітка використання тип даних плюс список слів. Також, тип списку (наприклад, подвійний) , MUST відповідає даним Тип змінної в EDDTable і EDDGrid Відключені дані.
- вісьValuesStartStrideStop -- Дозволяє вказати послідовність регулярних значень, вказавши початок, рядок і значення зупинки. Ось тут: <Назва поштового зв'язку: ValuesStartStrideStop type="doubleList" \>2, 0.5, 4<Українська Знову зауважте використання типу даних списку. Також, тип списку (наприклад, подвійний) , MUST відповідає даним Тип змінної в EDDTable і EDDGrid Відключені дані.
Оновлення -- Так само, як немає способу EDDGrid ЗЕДВ'ЯЗКАТИ, щоб визначити вісьВід EDDTable спочатку, також немає надійного способу для EDDGrid Відключено визначення від EDDTable при зміні осіValues (необов'язково, коли є нові значення для змінного часу) й В даний час єдиним рішенням є зміна атрибуту вісьValues в datasets.xml і перезавантажити дані. Наприклад, ви можете написати скрипт
- Пошук datasets.xml для datasetID й Головна « » » » » » » » » » » » » » » Отже, ви працюєте з правильним набором даних.
- Пошук datasets.xml на наступний випадок
НавігаціяНазва
так ви працюєте з правильною змінною. - Пошук datasets.xml на наступний випадок
<att name="axisValuesStartStrideStop" type="doubleList">
так що ви знаєте стартову позицію тегу. 4. Пошук datasets.xml на наступний випадок
</att>
так ви знаєте кінцеву позицію значень осі. 5. Замініть старий старт, припиніть значення з новими значеннями. 6. Контакти посилання для опису даних ERDDAP™ перезавантаження даних.
Це не ідеальний, але він працює.
- точність -- Коли EDDGrid Відмовлено відповідь на запит користувача на дані, він переміщує ряд даних з таблиці відповіді EDDTable у таблиці реагування користувача на дані. EDDGrid зворотна сітка. Для цього потрібно розібратися, якщо значення "вісь" на заданому ряді в таблиці відповідати деяким поєднанням значень осі в сітку. Для цілих типів даних легко визначити, чи дорівнює два значення. Але для плавань і подвійних, це приносить жахливу проблему плаваючих чисел точки не відповідати точно й (Наприклад, 0,2 верст 0.199999999996) й до (намагатися) з цим, EDDGrid Здатний дозволяє вказати атрибут точності для будь-якого з axisVariable s, яка визначає загальну кількість десяткових цифр, які повинні бути ідентичними.
- Наприклад,<int name="recision" type="int">5<Українська
- Для різних типів змінних даних існують різні значення точності за замовчуванням. За замовчуванням зазвичай доречні. Якщо вони немає, потрібно вказати різні значення.
- Для axisVariable й час або час Штамп змінних , За замовчуванням повна точність (точний матч) й
- Для axisVariable s, які плавають, точність за замовчуванням 5.
- Для axisVariable s, які є подвійними, точність за замовчуванням 9.
- Для axisVariable s, які мають цілі типи даних, 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. Наприклад, якщо датасет має 4 axisVariable й dataVariable s як східний \[ час \] \[ знаменитості \] \[ довгота \] \[ глибина \] , лівий (перший) змінна вісь часу.
- Якщо<Увійти в 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 є основою для сітки / причепи / вигодовування з ERDDAP s, які ефективно розподіляють використання процесора (переважно для створення карт) , використання пам'яті, зберігання даних та використання пропускної здатності великого центру даних.
Перенаправлення
- На відміну від інших типів даних, коли ERDDAP™ отримувати запит на дані або зображення з цих даних, ERDDAP перенаправлення запит на пульт ERDDAP™ сервер. Результат:
- Це дуже ефективний (Процесор, пам'ять та пропускна здатність) , бо інакше
- Склад ERDDAP™ має надіслати запит на інший ERDDAP™ (що займає час) й
- Інше ERDDAP™ має отримувати дані, переформатувати та передавати дані до композиту ERDDAP й
- Склад 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™ адміністратор.
Чи не працює це? Чи зберігаються локальні дані в синхронізації з дистанційними даними? Для того, щоб ваші дані залишалися актуальними. Перевірити кожен з цих речей в порядку:
- Ваше ім'я ERDDAP™ необхідно мати можливість надсилати електронні листи. Переглядайте налаштування електронної пошти в налаштуваннях.xml.
- В цілому (але не завжди) , ваш ERDDAP Р<Головна> та<JavaScript licenses API Веб-сайт Go1.13.8 (Наприклад: 8080, :8443) й Якщо вони роблять, використовуйте Проксимус для видалення порту з Урлі.
- В налаштуваннях.xml,<Підписатися на розсилку
- Коли ваш локальний EDD ... ВідErddap Dataset перезавантажено, він повинен надіслати запит на пульт ERDDAP™ підписатися на віддалені дані. Переглядайте в log.txt, щоб побачити, чи це відбувається.
- Ви повинні отримувати повідомлення електронної пошти, щоб підтвердити запит на підписку.
- Вам необхідно натиснути на посилання, вказану електронну пошту, щоб підтвердити запит на підписку.
- Віддалений ERDDAP™ слід сказати, що валідація була успішним. У будь-який час ви можете запросити електронну пошту з пульта дистанційного керування ERDDAP™ з переліком ваших підписок та дійсних підписок. Переглянути форму дистанційнийErddapBase Уль English, Українська, Français...
- При зміні віддалених даних (наприклад, отримує додаткові дані) , віддалений ERDDAP™ Вам необхідно звернутися до прапора ERDDAP й Ви не можете перевірити це, але ви можете попросити адміністратора дистанційного керування ERDDAP™ перевірити це.
- Ваше ім'я ERDDAP™ повинен отримати запит, щоб встановити прапорець. Ознайомитися з вашою логікою.txt для "setDatasetFlag.txt?" запит (й) і подивитися, якщо є повідомлення про помилку, пов'язані з запитами.
- Ваше ім'я ERDDAP™ потім спробуйте перезавантажити дані (не відразу, але АСАП) й
До сучасної макс. (час) ?
EDDGrid /TableЗ альбомуErddap datasets only змінює збережену інформацію про кожного джерела даних, коли джерело даних "Завантажити" і деякі зміни метаданих (Наприклад, змінна час actual\_range ) , тим самим генеруючи повідомлення про підписку. Якщо джерело даних має дані, які часто змінюються (наприклад, нові дані) і використовує "оновлення" система помітити часті зміни до основних даних, EDDGrid /TableЗ альбомуErddap не буде повідомлено про ці часті зміни до наступного набору даних "завантаження", тому EDDGrid /TableЗ альбомуErddap не буде ідеальною. Ви можете мінімізувати цю проблему, змінивши джерело даних<reloadEveryNMinutes> до меншого значення (60? 15?) так, щоб повідомлення про підписку більше, щоб розповісти EDDGrid /TableЗ альбомуErddap для оновлення його інформації про джерело даних.
Або, якщо система управління даними знає, коли джерело даних має нові дані (наприклад, через скрипт, який копіює файл даних на місце) і якщо це не дуже часто (наприклад, кожні 5 хвилин, або рідше) , є краще рішення:
- Не використовуйте<updateEveryNMillis> для збереження вихідних даних
- Набір вихідних даних<reloadEveryNMinutes> до більшого числа (1440?) й
- У вас є скрипт контакту з вихідним даними посилання Після копіювання нового файлу даних на місце.
Це призведе до вихідних даних, які ідеально додаються до дати та викликати його для створення повідомлення про підписку, яка буде відправлена до джерела даних, які будуть надіслані на джерело. EDDGrid /TableЗ альбомуErddap Dataset. Що призведе до EDDGrid /TableЗ альбомуErddap Dataset, щоб бути ідеальною (добре, протягом 5 секунд додано нові дані) й І все, що буде зроблено ефективно (без зайвих перевантажень даних) й
Ні addAttributes й axisVariable або dataVariable
На відміну від інших типів даних, EDDTableЗ альбомуErddap і EDDGrid Відповідні дані<addAttributes>й< axisVariable >, або< dataVariable > розділи в datasets.xml для цього набору даних. Проблема, що дозволяє тим, хто призведе до невідповідностей:
- Повідомляємо, що це дозволено, і ви додали новий глобальний атрибут.
- При запиті користувача ERDDAP™ для глобальних атрибутів з'явиться новий атрибут.
- Але коли користувач запитує ERDDAP™ для файлу даних, ERDDAP™ перенаправлення запиту на джерело ERDDAP й Що ERDDAP™ є носієм нового атрибуту. Отже, якщо він створює файл даних з метаданими, наприклад, .nc Файл, метадані не мають нового атрибуту.
Є два робочі місця:
- Конвінце адміністратор джерела ERDDAP™ внести зміни, які ви хочете метаданих.
- Замість 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 й
- Тільки два datasetID s підтримуються 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 Для обробки певного типу файлу:
- EDDGrid ВідМергетика обробка даних з сітки Про нас .gz Файли
- EDDGrid ВідAudioFiles сукупності даних з групи локальних аудіо файлів.
- EDDGrid ВідNcFiles обробка даних з сітки ГРИБ .grb Файли HDF (v4 або v5) .hdf Файли .nc з Файли NetCDF (v3 або v4) .nc Файли Це може працювати з іншими типами файлів (Наприклад, БУФ) Ми просто не перевірили це - будь ласка, надсилайте нам деякі файли зразок, якщо ви зацікавлені.
- EDDGrid ВідNcFilesUnpacked є варіантом EDDGrid ВідNcFiles, які обробляє дані з сітки NetCDF (v3 або v4) .nc і пов'язані файли, які ERDDAP™ розпакування на низькому рівні.
В даний час не підтримується інші типи файлів. Але, як правило, відносно легко додати підтримку інших типів файлів. Зв'язатися з нами, якщо у вас є запит. Або, якщо ваші дані є у старому форматі файлів, який ви хочете відійти від, ми рекомендуємо конвертувати файли, щоб бути NetCDF в3 .nc Файли NetCDF є широко підтримується, бінарний формат, дозволяє швидко випадковий доступ до даних, і вже підтримується ERDDAP й
Від файлів Детальніше
До всіх підкласів EDDGrid Відповіді.
Агрегація зовнішнього виміру
Всі варіації EDDGrid ВідФайли можуть збирати дані з місцевих файлів, де кожен файл має 1 (чи більше) різні значення для лівої (перший) розмір, зазвичай \[ час \] , які будуть агрегатовані. Наприклад, розміри можуть бути \[ час \] \[ висота \] \[ знаменитості \] \[ довгота \] і файли можуть мати дані для одного (або кілька) часове значення (й) за файл. З’явився набір даних, якщо всі дані файлів були об’єднані. Великі переваги агрегату:
- Розмір сукупного набору даних може бути набагато більшим, ніж один файл може бути зручно (~2 Гб) й
- Для локальних даних легко додавати новий файл з найновішим шматком даних. Ви не повинні переписати весь набір даних.
Вимоги до агрегації:
- Місцеві файли не мають однакових dataVariable й (як визначено в даних datasets.xml ) й Ці дані будуть мати dataVariable s визначений в datasets.xml й Якщо заданий файл не має dataVariable й ERDDAP™ буде додано відсутні значення в міру необхідності.
- Всі dataVariable s MUST використовувати те ж саме axisVariable s/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™ час відпрацьованих відкладень, коли потрібно їх читати. Наприклад:
- Файли даних: наприклад, .nc 4, і .hdf 5 фото: Деякі файли використовують внутрішню компресію; деякі Як розповісти: змінні стиснені мають атрибути "\_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 с.
Для мене, що є розумною торговою маркою для будь-якого набору даних, і, звичайно, для даних, які нечасто використовуються.
-
Внутрішній універсальний зовнішній стиснення -- Порівняно з внутрішньою компресією файлів, що пропонується .nc 4 і .hdf 5 фото, ERDDAP - підхід до зовнішніх компресованих бінарних файлів має переваги та недоліки. Недолік є: за один раз читати невелику частину одного файлу, внутрішня компресія краще, тому що EDDGrid Відповіді тільки потрібно декомпресувати кілька шматків (й) не весь файл. Але ERDDAP Підхід має деякі переваги:
- ERDDAP™ підтримує стиснення всіх типів файлів даних (бінарні та небінарні, наприклад, .nc 3 і .csv) не просто .nc 4 і .hdf 4. У
- Якщо об'єм файлу необхідно читати більше, ніж один раз в короткий період часу, то економить час, щоб видалити файл один раз і читати його багато разів. Це відбувається в ERDDAP™ коли користувач використовує Make-A-Graph для набору даних і робить серію невеликих змін до графіка.
- Уміння мати стиснені файли і не стиснені файли в одній колекції, дозволяє більш контролювати, над якими файлами стиснені і які не є. І це додано контроль надходить без реальної зміни файлу джерела (так як можна стискати файл з наприклад, .gz а потім декомпресувати його, щоб отримати оригінальний файл) й
- Уміння змінити в будь-який час, чи дається файл компресований і як він компресований (різні алгоритми та налаштування) дає вам більше контролю за виконанням системи. І ви можете легко відновити оригінальний незрівняний файл в будь-який час.
Поки не підійшло переможця у всіх ситуаціях, зрозуміло, що ERDDAP «здатність служити даними з зовнішніх компресованих файлів робить зовнішню компресію розумною альтернативою внутрішньому компресії, запропонованому внутрішньою компресією .nc 4 і .hdf 5. У З огляду на те, що внутрішня компресія є однією з основних причин, які люди вибирають .nc 4 і .hdf 5. У
Декомпресований кеш
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-Ranges http свінгери)
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 " до бази OPen DAP URL-адреса для даної інформації (Наприклад,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 Відображення даних (але за рахунок використання більше пам'яті) , ви можете використовувати [<JavaScript licenses API Веб-сайт<Головна > (#filetableinmemory) розповісти 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 змінив, і їх інформація оновлено. Нові столи заміняють старі столи пам'яті і на диску.
Погані файли
Таблиця поганих файлів і причин, які були заявлені поганими (пошкоджений файл, відсутні змінні та ін.) електронна пошта Про нас Адреса електронної пошти (ймовірно, ви) кожен раз перезавантаження даних. Ви повинні замінювати або відремонтувати ці файли якомога швидше.
Змішані мінливі
Якщо деякі файли не мають деяких dataVariable s, визначений в даних 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".
Новий ERDDAP™ версія 2.29.0 - експериментальна підтримка змінних даних, які не підтримують всі змінні осі (або як деякі з них називають 1D і 2D дані в одному з даних) й Про нас (обговорення або питання) з відгуками та помилками.
Це може працювати з іншими типами файлів (Наприклад, БУФ) Ми просто не перевірили це - будь ласка, надсилайте нам деякі файли вибірки.
- Для GRIB файлів, ERDDAP™ зробить файл індексу .gbx вперше він читає кожен файл GRIB. Отже, файли GRIB повинні бути в каталозі, де "користувач", які ran Tomcat прочитали дозвіл на підписку.
- Переглянути суперклас класу, EDDGrid Відповіді Інформація про те, як працює цей клас і як його використовувати.
- Почати з ERDDAP™ в2.12, EDDGrid ВідNcFiles і EDDGrid ВідNcFiles Розпаковані дані можна дізнатися з "структур" в .nc 4 і .hdf 4 фото. Для визначення змінної, яка знаходиться з структури,< 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 Розпаковані дані можна дізнатися з "структур" в .nc 4 і .hdf 4 фото. Для визначення змінної, яка знаходиться з структури,< 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) й
- У ГенераціяДатасетСмл , є спеціальний "тип даних", EDDGrid LonPM180З альбомуErddapКаталог, що дозволяє генерувати datasets.xml для EDDGrid Дані LonPM180 від кожного з EDDGrid дані в ERDDAP які мають значення довготи більше 180. Це полегшує надання двох версій цих даних: оригінальні, з значеннями довготи в діапазоні 0 до 360, і нові дані, з значеннями довготи в діапазоні -180 до 180.
Підбір даних дитини в межах кожного EDDGrid LonPM180 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>
Поставити EDDGrid English, Українська, 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... Прямі підписки не генерують електронні листи, які запитують вас, щоб підтвердити підписку - валідацію слід проводити автоматично.
- Якщо у дитини датасет не є EDDGrid English, Українська, Français... ERDDAP™ , English, Українська, Français... Якщо у вас є система підписки ERDDAP™ Вимкнено, ви повинні отримувати повідомлення електронної пошти, які просять вас перевірити підписку. Про нас
- Якщо у вас є система підписки ERDDAP™ Вимкнено, дані LonPM180 можуть іноді застаріли метадані до перезавантаження даних LonPM180. Отже, якщо система підписки вимкнена, необхідно встановити [<перевантаження КоженNMinutes> (#завантажитизавжак) Налаштування даних LonPM180 до меншого числа, щоб швидше за все, виловити зміни до даних дитини швидше.
-
Для пресетів з максимальною довготою > 360, скористайтеся наступною додатковою конфігурацією для встановлення максимального значення та набору даних буде виправлено до -180 до 180.
<maxSourceLon>540</maxSourceLon>
EDDGrid LonPM180 скелет Список
<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) й
- У ГенераціяДатасетСмл , є спеціальний "тип даних", EDDGrid Lon0360З альбому ErddapКаталог, що дозволяє генерувати datasets.xml для EDDGrid Дані Lon0360 від кожного з EDDGrid дані в ERDDAP які мають значення довготи більше 180. Це полегшує надання двох версій цих даних: оригінальні, з значеннями довготи в діапазоні 0 до 360, і нові дані, з значеннями довготи в діапазоні -180 до 180.
Підбір даних дитини в межах кожного EDDGrid Lon0360 датасет буде 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>
Поставити EDDGrid Lon0360 опис Головна оригінальні дані datasets.xml й Щоб уникнути можливих проблем.
Крім того, ви можете замінити EDDGrid Збір даних дитини з оригінальним даними datasets.xml й Далі буде тільки одна версія даних: один з значеннями довготи в межах 0 до 360. Ми розголошуємо це, тому що є час, коли кожна версія датасета більш зручна.
- Якщо у вас є два варіанти набору даних, наприклад, один з довготою 0 до 360 і один з довготою -180 до 180:
- Ви можете використовувати опцію [<доступні Про нас WMS >фальсе<Головна Про нас WMS >] (#додаткова) з даними 0 до 360 для точного вимкнення WMS Послуга для даного набору даних. Після цього буде доступна тільки версія -180 до 180 WMS й
- Існує кілька способів збереження даних Lon0360, що випадають на оновлення з змінами базового набору даних:
- Якщо датасет дитини - це EDDGrid Відповідна датасета Erddap, що посилається на дані ERDDAP™ , Lon0360 Dataset намагатиметься безпосередньо підписатися на базові дані, щоб завжди було актуальним. Прямі підписки не генерують електронні листи, які запитують вас, щоб підтвердити підписку - валідацію слід проводити автоматично.
- Якщо у дитини датасет не є EDDGrid English, Українська, 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Копі ) дуже простий у використанні і дуже ефективний Вирішення деяких з найбільших проблем з наданням даних з джерела даних дистанційних даних:
- Доступ до даних з джерела даних віддалених даних може бути повільним.
- Це може бути повільним, тому що це властиво повільніше (наприклад, неефективний тип сервера) й
- тому, що це занадто багато запитів,
- або через те, що сервер або віддалений сервер обмежений.
- Віддалена датасета іноді недоступна (знову, для різних причин) й
- Поповнення на одне джерело даних не дуже добре (наприклад, коли багато користувачів і багато ERDDAP s використовувати його) й
- Як працює -- 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 Статус на сервери
- Створити<датасет> Увійти (рідний тип, не EDDGrid Партнерство) для джерела даних віддалених даних. Отримайте правильність роботи, включаючи всі необхідні метадані.
- Якщо це занадто повільно, додайте XML-код, щоб загорнути його в EDDGrid Статус на сервери
- Використовуйте різні datasetID (можливо, змінивши datasetID старі datasetID трохи) й
- Статус на сервери<доступні До>,<перезавантаженняВсіNMinutes> і<onChange> з дистанційного керування EDDGrid 's XML до XML EDDGrid Статус на сервери (Наші цінності EDDGrid Скопіювати матерію; їх значення для внутрішнього набору даних стає незворотним.)
- ERDDAP™ зробить і підтримувати локальну копію даних.
- ВАЖКО: EDDGrid Копіювати припускає, що значення даних для кожного шматка не змінюється. Якщо / коли вони роблять, потрібно вручну видалити файли згортки в bigParentПублічний Українська * datasetID * / які змінилися і Увійти Замінити дані, щоб бути перевантажені так, щоб видалені шматки будуть замінені. Якщо у вас є підписка на електронну пошту до набору даних, ви отримаєте два електронні листи: один, коли дані, які спочатку перевантажуються і починають копіювати дані, а інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
- Всі значення осі повинні бути рівні. Для кожного з осей, крім лівої (перший) , всі значення повинні бути рівні для всіх дітей. Точність тестування визначається Збігти й
- Налаштування, метадані, змінні -- EDDGrid Скопіювати налаштування, метадані та змінні з заданого джерела даних.
- Зміна метаданих --- Якщо необхідно змінити будь-який addAttributes або змінити порядок змін, пов'язаних з вихідним даними:
- Зміна addAttributes для вихідних даних datasets.xml , як це потрібно.
- Видалити один з копіюваних файлів.
- Встановити Увійти негайно перезавантажити дані. Якщо ви використовуєте прапор і ви маєте підписку на електронну пошту до датасета, ви отримаєте два електронні листи: один, коли дані, які спочатку перезавантажуються і починає копіювати дані, а також інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
- Виданий файл буде відновлено з новим метаданих. Якщо вихідний датасет ніколи не доступний, 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, ми мали труднощі отримувати Кассандра працювати з AdoptOpenJdk Java v8. Прокинув 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:
- Якщо ви вводите "!!!!!!!!!" (без котирування) для ключового простору програма буде відображати список ключових просторів
- Якщо ви вводите конкретний ключовий простір, а потім введіть "!!!!!!!!! (без котирування) Для назви таблиці програма буде відображати список таблиць у цьому ключовому просторі та їх стовпці.
Чутливість корпусу
- Кейс-індуктивний ключовий простір та назви таблиці - Кассандра лікує ключові місця та назви таблиці у випадку-інтенсивний спосіб. У зв'язку з цим, ви маєте право використовувати працевлаштування (але з різним корпусом) як ключовий простір Кассандра або назва таблиці.
- Назва стовпців -- За замовчуванням, Кассандра лікує імена стовпців у випадку-інтенсивний спосіб. Якщо ви використовуєте один з зарезервованих слів Кассандри як назву стовпця (Не пропустіть!) , ви використовуєте 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™ знати їх sourceName s і, якщо відповідні, інші відомості про те, як працювати з ними.
- Ви MUST вкажіть список назв стовпців з роздільною здатністю розділів datasets.xml Зареєструватися<Перегородки Клавіатура>. Простий приклад,
<partitionKeySourceNames>station, deviceid<partitionKeySourceNames>
Більш складний приклад,
<partitionKeySourceNames>deviceid=1007, date/sampletime/1970-01-01<partitionKeySourceNames>
- TimeStamp Partition Keys -- Якщо один з ключових стовпців перегородки є таймером, який має копіювальну версію іншого таймера, вкажіть це через
*JavaScript licenses API Веб-сайт Go1.13.8 time\_precision *
де time\_precision є однією з time\_precision рядки, які використовуються в іншому місці ERDDAP й Причіп Z в time\_precision string is the default, тому він не має значення, якщо time\_precision string 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 Головна destinationName s в глобальному атрибуті називається " subsetVariables " визначити змінні значення, які мають обмежену кількість значень. Після того, як на веб-сторінці .subset буде показано список різних значень для тих змінних у списку випадаючих сторінок.
Включаючи лише змінні ключі розділу та статичні стовпці у списку є STRONGLY E NCO УПРАВЛІННЯ. Кассандра зможе швидко створити список відмінних комбінацій і легко кожен раз перезавантаження даних. Один виняток є ключами часової перегородки, які є грубими версіями деяких інших часових стовпців - це, ймовірно, краще залишити ці з переліку списку списку списку 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]<датаТип> (Головна) тег для Кассандра dataVariable s може включати регулярні 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™ і використовувати тонни ресурсів Кассандра.
Кассандра Стати
- "Кассандра статистика" Діагностичне повідомлення --- Для кожного ERDDAP™ запит користувача на Кассандра, ERDDAP™ буде друкувати рядок у файлі журналу, bigParentПублічний /logs/log.txt, з деякими статистичними даними, що стосуються запиту, наприклад,
\\* 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:
- Якщо ви вводите "!!!!!!!!!" (без котирування) для назви каталогу програма буде відображати список імен каталогів.
- Якщо ви вводите "!!!!!!!!!" (без котирування) для ім'я схеми, програма буде відображати список назв schema.
- Якщо ви вводите "!!!!!!!!!" (без котирування) для назви таблиці програма буде відображати список таблиць та їх стовпців. Перший "!!!ЛИСТ!!!" запис, який ви робите, це той, хто буде використовуватися.
- Уважно прочитайте всю інформацію про 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... Драйвер .
- Для MariaDB намагатися https://mariadb.com/kb/en/about-the-mariadb-java-client/
Після того, як ви поставили драйвер 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 База даних Тип « » » » » » » » » » » » » » » (наприклад, Oracle 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 Я не являюсь гражданином Грузии 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 з часовою зоною" (Ідеально підходить для того, щоб використовувати JavaScript Zulu часовий пояс) й
- У ERDDAP Р datasets.xml , у< dataVariable > тег для змінного часу, набір
і в< 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\_value s для користувачів 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<=2008-02-01T00:00:00Z
буде перетворюватися в SQL
SELECT "time", "temperature" FROM *tableName*
WHERE "time" >= 2008-01-01T00:00:00Z AND "time" <= 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 для пошуку майна з'єднання для того, щоб збільшити це, і додайте його до опису даних у драйвері JDBC datasets.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 який відповідає формальному виразу (Використовуйте .\*, щоб відповідати всім datasetID s для сітчастих даних) й
Шинка 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 і що каталог має файл jplMU RSS T20150103000000.png, потім буде показано URL-адресу для цього файлу https://serverUrl/erddap/jplMURSST/jplMURSST20150103000000.pngй
Крім використання локального каталогу для<fileDir>, ви також можете вказати URL-адресу віддаленої, каталог-подібної сторінки. Це працює з:
- Неагреговані дані в THREDDS, наприклад, https://data.nodc.noaa.gov/thredds/catalog/aquarius/nodc\\_binned\\_V3.0/monthly/ \[ 2020-10-21 Цей сервер не доступний. \]
- Неагреговані дані в Hyrax , наприклад, https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/
- Найпопулярніші каталоги Apache, наприклад, https://www1.ncdc.noaa.gov/pub/data/cmb/ersst/v5/netcdf/
від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> буде включений в цей набір даних. Наприклад, jplMU RSS Т.{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>
У разі зміни часу, якщо файл має ім'я jplMU RSS T20150103000000.png, екстрактRegex відповідатиме назві файлів, витягувати символи, які відповідають групі першого захоплення ("20150103000000") як dataType=String, потім використовуйте блоки, придатні для рядкових разів задати рядки в значення даних часу (2015-01-03Т00:00:00З) й
У разі зміни дня, якщо файл має ім'я jplMU RSS T20150103000000.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 для обробки певного типу файлу:
- EDDTableЗ альбомуAsciiFiles агрегує дані з коми-, вкладок-, напівколон-, або просторо-сепаровані табличні файли даних ASCII.
- EDDTableЗ альбомуAudioFiles сукупності даних з групи локальних аудіо файлів.
- EDDTableЗ альбому AwsXmlFiles сукупні дані з набору автоматичної станції погоди (АВІ) XML файли.
- EDDTableЗ альбомуColumnarAsciiFiles агрегує дані з табличних файлів даних ASCII з фіксованими стовпчиками даних.
- EDDTableЗ альбому Hyrax Файли (ДЕПРЕЄСТРАЦІЯ) сукупні дані з декількома змінними, кожен з загальними розмірами (наприклад, час, висота (або глибина) , широта, довгота) і подаються Hyrax OPeNDAP сервер й
- EDDTableЗ альбомуInvalidCRAFiles дані агрегатів з NetCDF (v3 або v4) .nc Файли, які використовують специфічний, недійсний, варіант CF DSG Contiguous Ragged Array (Кошик) Файли Немовля ERDDAP™ підтримує цей тип файлів, це недійсний тип файлів, який не повинен використовувати його. Групи, які в даний час використовують цей тип файлів, сильно заохочуються до використання ERDDAP™ щоб генерувати дійсні файли CF DSG CRA і зупинити використання цих файлів.
- EDDTableЗ альбомуJsonlCSVFiles дані агрегатів з Сонце Лінії CSV файлів й
- EDDTableЗ альбомуMultidimNcFiles дані агрегатів з NetCDF (v3 або v4) .nc (або .nc з ) файли з декількома змінними, кожен з загальними розмірами (наприклад, час, висота (або глибина) , широта, довгота) й
- EDDTableЗ альбомуNcFiles дані агрегатів з NetCDF (v3 або v4) .nc (або .nc з ) файли з декількома змінними, кожен з загальними розмірами (наприклад, час, висота (або глибина) , широта, довгота) й Ми рекомендуємо використовувати EDDTableЗ альбомуMultidimNcFiles.
- EDDTableЗ альбомуNcCFFiles дані агрегатів з NetCDF (v3 або v4) .nc (або .nc з ) Файли, які використовують один з форматів файлів, зазначених за допомогою файлів Панчохи Дискретні шамплінг геометереї (ДСГ) конвенції. Але для файлів з використанням одного з багатовимірних варіантів CF DSG, використання EDDTableЗ альбомуMultidimNcFiles до.
- EDDTableЗ альбомуNccsvFiles дані агрегатів з НККСВ Файли ASCII .csv.
- EDDTableЗ альбомуParquetFiles обробка даних з Паркет й
- EDDTableЗ альбомуThreddsFiles (ДЕПРЕЄСТРАЦІЯ) сукупні дані з файлів з декількома змінними розмірами, що подаються загальними розмірами ЦІНИ OPeNDAP сервер й
- EDDTableЗ альбому WFS Файли (ДЕПРЕЄСТРАЦІЯ) робить локальну копію всіх даних з ArcGIS Мапа WFS сервер так що дані можна швидко зберігати ERDDAP™ користувачів.
В даний час не підтримується інші типи файлів. Але, як правило, відносно легко додати підтримку інших типів файлів. Зв'язатися з нами, якщо у вас є запит. Або, якщо ваші дані є у старому форматі файлів, який ви хочете відійти від, ми рекомендуємо конвертувати файли, щоб бути 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 змінив, і їх інформація оновлено. Нові столи заміняють старі столи пам'яті і на диску.
Погані файли
Таблиця поганих файлів і причин, які були заявлені поганими (пошкоджений файл, відсутні змінні, неправильні значення осі тощо.) електронна пошта Про нас Адреса електронної пошти (ймовірно, ви) кожен раз перезавантаження даних. Ви повинні замінювати або відремонтувати ці файли якомога швидше.
Змішані мінливі
Якщо деякі файли не мають деяких dataVariable s, визначений в даних 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 з переліком файлів віддалених даних з віддаленого списку файлів.
- Неагреговані дані в THREDDS, наприклад, https://data.nodc.noaa.gov/thredds/catalog/aquarius/nodc\\_binned\\_V3.0/monthly/ \[ 2020-10-21 Цей сервер не доступний. \]
- Неагреговані дані в Hyrax , наприклад, https://podaac-opendap.jpl.nasa.gov/opendap/allData/ccmp/L3.5a/monthly/flk/
- Найпопулярніші каталоги Apache, наприклад, https://www.ncei.noaa.gov/data/global-precipitation-climatology-project-gpcp-daily/
- S3 відро, наприклад,
https://noaa-goes17.s3.us-east-1.amazonaws.com/
Однак це може знадобитися обліковий запис AWS і більше налаштування. Про нас робота з S3 Buckets в ERDDAP™ й Також ви зазвичай не повинні використовувати кеш ВідUrl з файлами в S3 відро, якщо файли ASCII файли (Наприклад, .csv) , бо ERDDAP™ може ефективно читати дані з відра безпосередньо через потік.
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 віддалений файл.
- Якщо значення є<до 0 (Наприклад, значення за замовчуванням -1) й
ERDDAP™ буде завантажити і підтримувати повна копія всіх файлів віддалених даних у файлах Dataset<файлДир>.
-
Про нас<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™ може бути повільним, щоб відповісти на запити на дані з цього облікового запису. Є два питання:
- Кількість файлів в каталозі. Внутрішнє, ERDDAP™ працює при однаковій швидкості незалежно від того, чи є n файлів в одному каталозі або розігнаються в декількох каталогах. Але є проблема: Чим більше файлів в даній каталозі, тим повільніше операційна система повертається в список файлів в каталозі (за файл) до ERDDAP й Час відповіді може бути O (n Увійти) й Це важко сказати, скільки файлів в одному каталозі занадто багато, але 10000, ймовірно, занадто багато. Таким чином, якщо ваша настройка генерує багато файлів, рекомендуємо тут: викласти файли в логічно організованих підкатегоріях (Наприклад, станція або станція / рік) й
Ще одна причина використання підкатегорій: якщо користувач хоче використовувати ERDDAP Р "files" система для пошуку назви найстарішого файлу для станції X, це швидше і ефективніше, якщо файли знаходяться на станціях / річних підкаталогах, оскільки значно менша інформація повинна бути передана.
- Загальна кількість файлів.
Для табличних даних, 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™ Відповіді на інші запити) й
На щастя, є розчин.
- Настроювання даних на негромадському ERDDAP™ (Ваш персональний комп'ютер?) й
- Створіть і запустіть скрипт, який вимагає серії .nc Файли CF, кожен з великим шматком даних, як правило, часовий період (наприклад, всі дані за даний місяць) й Виберіть часовий період, щоб всі отримані файли менше 2 Гб (але сподіваємось більше 1 Гб) й Якщо датасет має дані ближнього часу, запустіть скрипт для відновлення файлу на поточний період (наприклад, в цьому місяці) часто (10 хвилин? час) й Запити ERDDAP™ для .nc Файли CF створюють NetCDF в3 .nc файл, який використовує файл Панчохи Дискретні шамплінг геометереї (ДСГ) Контигузовані конструкції масивних даних.
- Налаштування 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 підтримує кілька псевдо sourceName s, які витягують значення з іншого місця (Наприклад, ім’я файлу або значення глобального атрибуту) і пропагувати, що значення буде стовпом постійних значень для цього шматка даних (Наприклад, таблиця даних цього файлу) й Для цих змін необхідно вказати тип даних змінної за допомогою [<датаТип> (Головна) мітка. Якщо отримана інформація є рядком дата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) вказана змінна (наприклад, інструмент) і створити стовп, наповнений значенням атрибута. Зміна батьків (наприклад, інструмент) не є однією з dataVariable s, що входить до визначення 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 повинні спробувати застосувати. Зміни є сумою комбінації:
- Розпакування
Це багато поширених і безпечних операцій для стандартизування нумеричних стовпчиків у файлах:
- Якщо 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™ стандарт відсутній значення \] й
- Стандартизація Numeric Times Якщо нумерична колонка має нумерні часові одиниці CF (« » » » » » » » » » » » » » » часОдягання з JavaScript licenses API Веб-сайт ", наприклад, "день з 1900-01-01") , це перетворює дату Значення часу в "seconds since 1970-01-01T00:00:00Z" значення і зміни атрибуту блоків для позначення цього. Якщо це вибрано і є шанс, що ця змінна має scale\_factor або add\_offset , #1 MUST також вибрано.
- Застосувати String missing\_value
Якщо рядок має \_FillValue та/або missing\_value атрибути, це перетворює значення в "" і видаляє атрибути. - Знайти нумерію missing\_value
Якщо числовий стовпчик не має \_FillValue або missing\_value атрибути, це намагається визначити невизнаний числовий missing\_value (Наприклад, -999, 9999, 1e37f) і перетворення екземплярів його на значення «стандарту» (МАКС\_VALUE для цілих типів, і NAN для подвійних і плавок) й Цей варіант має ризик: якщо найбільша або найменша вартість даних виглядає як відсутнє значення (Наприклад, 999) , потім дані дійсних даних будуть перетворені на відсутні значення (Наприклад: Нан) й - Зміна String "N/A" до "" Для кожного Рядка, конвертуйте кілька рядків, які зазвичай використовуються для позначення відсутній значення String до ". В даний час це виглядає для ".", "...", "-", "?", "???", "N/A", "NA", "не", "не застосовний", "нуль", "невідомий", "не спекулюється". Пошук рядка - це випадковий і прикладний після того, як рядки обрізаються. "і" і "і" особливо не на списку. Цей варіант має ризик: Якщо ви вважаєте дійсними значеннями можуть бути перетворені на ".
- Стандартизується String ISO 8601 DateTimes Для кожного Рядкового стовпчика намагайтеся конвертувати неоднорідно-нутрієві String dateTimes (Наприклад, «Ян 2, 2018») до ISO 8601 String датаЧас ("2018-01-02") й Зареєструватися щоб всі значення даних для стовпця повинні використовувати один і той самий формат, інакше цей параметр не буде вносити ніяких змін до даної колонки. Цей варіант має ризик: Якщо є стовпець з значеннями рядків, які просто трапляються виглядати як загальна дата Формат часу, який буде перетворено на ISO 8601 String dateTimes.
- Стандартизуйте Компактний час для ISO 8601 DateTimes Для кожного стовпа String або цілого типу, спробуйте перетворити чисто-нумерні String dateTimes (Наприклад, «20180102») до ISO 8601 String датаЧас ("2018-01-02") й Зареєструватися щоб всі значення даних для стовпця повинні використовувати один і той самий формат, інакше цей параметр не буде вносити ніяких змін до даної колонки. Цей варіант має ризик: Якщо є стовпчик з значеннями, які не мають компактної дати Часи, але виглядають як компактні датаЧас, вони будуть перетворені на ISO 8601 String dateTimes.
- Стандартизаційні блоки Це намагається стандартизувати рядок блоків для кожної змінної. Наприклад, "метри на секунду", "метр/секунд", "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 Щоб зробити свій набір даних, вам потрібно. Кращий підхід (як завжди) є:
- Зареєструватися ГенераціяДатасетСмл і вказати значення стандартизації Що ви хочете використовувати.
- Зареєструватися Дати Щоб забезпечити правильність завантаження даних і відображає стандартизацію Яке налаштування, яке ви вказали.
- Тестування даних вручну, коли це в 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 з даними, яка потребує цього тегу:
- Зробіть новий, тимчасовий, зразок файлу, скопіюючи існуючий файл і видаліть заголовок.
- Запуск генерування Дані Xml і вказати цей файл зразка.
- Ручно додайте<SkipHeaderToRegex> тег до datasets.xml горб.
- Видалення тимчасового, зразкового файлу.
- Використовуйте дані в 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З альбомуAsciiServiceNOS отримувати дані з NOAA Послуги ОНС
В даний час не підтримується інші види послуг. Якщо вони працюють аналогічно. Зв'язатися з нами, якщо у вас є запит.
Детальніше
Наступна інформація стосується всіх підкласів 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 від ASCII NOAA Р Національний океан (Нитки) й Інформація про те, як працює цей клас і як його використовувати, див. цей клас суперклас 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™ монтаж.
Про нас allDatasets Dataset - це таблична датасет. Має ряд інформації для кожного набору даних. У ній є стовпці з інформацією про кожного набору даних, наприклад, 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 (який не працює) й
- Цей тип файлу є простим, але неефективним способом зберігання даних, оскільки кожен файл, як правило, здається, містить спостереження з одного разу. Так може бути велика кількість файлів. Якщо ви хочете підвищити продуктивність, розгляньте консолідаційні групи спостережень (на тиждень?) в NetCDF в3 .nc Файли (краще: .nc Файли з Панчохи Дискретні шамплінг геометереї (ДСГ) Contiguous Ragged Array формат ) і використання EDDTableЗ альбомуMultidimNcFiles (або EDDTableЗ альбомуNcCFFiles ) подавати дані. Ви можете використання ERDDAP™ генерувати нові файли й
- Переглянути суперклас класу, EDDTableЗ альбомуFiles Інформація про те, як працює цей клас і як його використовувати.
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 вимога, що датасет не змінюється, крім агрегату. В цілому, поблизу даних про час DOI s, оскільки дані часто ретроактивно змінені (Наприклад, для цілей 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 ніколи не включає ×tamp= ( 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 необхідно вказати URL http ОтримуватиВаріабельні за запитом (Наприклад, stationID і час) й Якщо ці значення відповідають значенням на рядку вже в даних (які вони зазвичай будуть) , старі значення ефективно видалені (Хоча старі значення все ще доступні, якщо користувач запитує дані з попереднього версія даних) й
- Не потрібно вказати значення для не-HttpGetRequiredVariables, крім автора, які необхідні для автентифікації запиту.
- Запит відформатований як стандартна відповідь форми HTML, з ключем=значення пар, відокремлених "&'. Наприклад,
https://some.erddap.url/erddap/tabledap/myDataset**.delete**?stationID=46088&time=2016-03-30T12:37:55Z&author=JohnSmith\_someKey1
- Запит відформатований як стандартна відповідь форми 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
Детальніше:
- .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™ Можливість оперативно реагувати на більшість запитів на дані. Ця настройка вказана http GetDirectoryStructure глобальний атрибут, який виглядає як відносна назва файлу, наприклад, " 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 .json l, відповідні дані (Увійти) файл. І чітко додавати дані на інші станції в будь-який час в майбутньому, так як датасет просто створить додаткові каталоги, необхідні для зберігання даних з нових станцій.
http Кошик
Кожен EDDTable ВідХттп Отримати дані, які повинні мати глобальний атрибут http GetKeys, який визначає список дозволених авторів та їх секретних ключів як окремий список автор\_під ключ , наприклад, 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:
-
Зробіть основний каталог для зберігання даних. Наприклад, ми використовуємо /data/testGet/ . Користувач, який працює GenerateDatasetsXml та користувачем, що працює ERDDAP™ повинен мати доступ до цього каталогу.
-
Використовуйте текстовий редактор, щоб зробити зразок .json L CSV файл з розширенням .json L в цьому каталозі. Назва не важлива. Наприклад, ви можете викликати його зразок .json п Зробіть 2 рядка .json L CSV файл, з іменами стовпців на першому рядку і манжети/типічні значення (правильної форми даних) на другому рядку. Ось зразок файлу, який підходить для колекції featureType =Частина даних, які вимірюють температуру повітря і води. \[ Для featureType =Трекети, ви можете змінити stationID бути траєкторією. \]
\[ Для featureType JavaScript licenses API Веб-сайт Go1.13.8 stationID бути 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 буде використаний для запису, який авторизований автор надав дані цієї лінії. Авторизовані автори зазначаються авторами http GetKeys глобальний атрибут й Хоча ключі вказані як автор\_під ключ і знаходяться в URL-адресі «запити» у цій формі, тільки в файлі даних зберігаються тільки автора.
- У командному стовпчику з dataType byte буде вказувати, якщо дані на цьому рядку є вставкою (0 р.) або видалення (1 час) й
-
Запуск GenerateDatasets Xml і розповісти його
- Тип набору даних EDDTableЗ альбомуHttpGet
- Каталог (для цього прикладу) / дані / тест Отримати /
- Файл зразка (для цього прикладу) /data/testGet/startup .json п
- Про нас http Отримувати Варіанти (для цього прикладу) stationID , час Переглянути опис http ОтримуватиВаріабельні Головна
- Якщо дані зібрані кожні 5 хвилин, http GetDirectoryStructure для цього прикладу stationID /2міс. Переглянути опис http Завантажити Головна
- Про нас 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 секунд) й
- Примітка: Можливе використання<cacheЗ альбомуUrl> та відповідні параметри в datasets.xml для EDDTable ВідХттп Отримати дані як спосіб зробити і підтримувати локальну копію віддаленого EDDTableЗ альбомуHttpGet на інший ERDDAP й Тим не менш, в цьому випадку це локальне повідомлення відхилятиме будь-які запити .inert і .delete.
Використання EDDTable ВідHttpGet Дані
- Автори можуть зробити «запити» вставити дані або видалити дані з набору даних й
- Після того, як реальні дані були введені в дані, ви можете і повинні видалити оригінальний файл даних про зразок.
- Користувачі можуть запитати дані з даних, як вони роблять для будь-якого іншого EDDTable Dataset в ERDDAP й Якщо запит не містить обмеження на часовий стовп, то запит отримує дані з поточного варіанту збору даних (Файл журналу після обробки всіх вставок і видалення команд і пересортування http ОтримуватиВаріабельні) й
- Користувачі можуть також зробити запити, які специфічні для EDDTableЗ альбомуHttpGet datasets:
- Якщо запит містить запит<або<= обмеження часової колонки, потім ERDDAP™ обробляє ряди лог-файлу до вказаного часу. Таким чином, цей тимчасово видаляє всі зміни, внесені до даних, починаючи з того часу, що значення часу. Для отримання додаткової інформації див. інформацію Редагування й
- Якщо запит включає в себе >, >=, або = обмеження часової колонки, наприклад, ×tamp<=0, потім ERDDAP™ повертає дані з файлів даних, як це, без обробки команд вставки та видалення.
- У майбутньому ми вказуємо, що інструменти будуть побудовані (від нас? від вас?) для роботи з цими даними Наприклад, можна стати скриптом, який читає файли журналу, застосовує різне рівняння калібрування, і генерує/оновлює різні дані з цією отриманою інформацією. Зауважте, що скрипт може отримати оригінальні дані через запит ERDDAP™ (який отримує дані у форматі файлів, які найпростіші для роботи з скриптом) і генерувати/оновити нові дані через .inert "requests" ERDDAP й Скрипт не потребує прямого доступу до файлів даних; він може бути на будь-якому комп'ютері автора.
Детальна інформація про EDDTableЗ альбомуHttpGet
Теми:
- Не змінюйте налаштування!
- КРУД
- ІнвалідРезиденції
- Швидкість
- Проксимус
- Надійність системи
- Редагування
- "Що про HTTP PUT і DELETE?!"
- Нотатки
- Завдяки CHORDS для базової ідеї.
Ось детальна інформація:
Не змінюйте налаштування!
Після того, як було створено набір даних і ви додали його дані:
- Не додавати або видалити будь-який dataVariable й
- Не змінюйте sourceName або destinationName з dataVariable й
- Не змінюйте дані Тип типу dataVariable й Але можна змінити dataVariable - метадані.
- Не змінюйте http Отримувати Змінний глобальний атрибут.
- Не змінюйте http GetDirectoryStructure глобальний атрибут.
Якщо необхідно змінити будь-яку з цих речей, зробіть новий набір даних і перенести всі дані на новий набір даних.
КРУД
У комп’ютерній наукі чотири фундаментальні команди для роботи з даними КРЕАТИ, РЕАД, УДАТ, ДЕЛЕТЕ (КРУД) й 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) забезпечує додаткове забезпечення, що дана лінія не була пошкоджена.
Ми спочатку спробували використовувати .nc 3 фото з необмеженим розміром. Проте були проблеми:
- Основна проблема: Немає надійного способу, щоб дозволити кілька ниток, щоб писати на .nc 3 файл, навіть якщо нитки взаємодіють, зробивши записи в синхронізований спосіб.
- Якщо .nc 3 файл стає пошкодженим, .insert і .delete система не може продовжувати використовувати файл.
- Як .nc 3 файли бінарні, якщо файл стає пошкодженим (які вони роблять через багатопрочитану проблему) вони надзвичайно важко або неможливі для фіксації. Немає інструментів, які допоможуть з ремонтом.
- CF не має способу вказати кодування рядків, тому не існує офіційного способу підтримки Unicode, наприклад, кодування UTF-8. Ми намагалися отримати CF для підтримки атрибуту \_Encoding, але не змогли зробити будь-який прогрес. ( Unidata , до свого кредиту, підтримує атрибут \_Encoding.)
- .nc 3 файли тільки підтримують фіксовані довжини рядків. Знову ми спробували отримати CF і Unidata для підтримки змінних рядків довжини, але не вдалося зробити будь-який прогрес.
- .nc 3 файли, які не підтримують простий спосіб розрізняти одновимірні змінні з змінних значень String. Знову ми спробували отримати CF і Unidata підтримка системи для визначення цих двох типів даних, але не вдалося зробити будь-який прогрес.
- .nc 3 файли тільки підтримують 8-бітні символи з невизначеним кодуванням. Знову ми спробували отримати CF і Unidata підтримка системи визначення кодування, але не вдалося зробити будь-який прогрес.
- .nc 3 фото не підтримують 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×tamp=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) якби вони були ще один вимір (наприклад, час) й Вартість атрибута повинна бути відокремленим комою, вказавши «з» розміри, а потім «в» розмір, наприклад, «в».
Далі 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".
- Якщо .nc Файли використовують один з Панчохи Дискретні шамплінг геометереї (ДСГ) формати файлів, спробуйте використовувати EDDTableЗ альбомуNcCFFiles перед цим.
- Для нових табличних даних .nc Файли, спробуйте новий EDDTableЗ альбомуMultidimNcFiles перший.
- Ми рекомендуємо використовувати ГенераціяДатасети Програма Xml зробити грубий проект datasets.xml горб для цього набору даних. Ви можете змінити його, щоб точно налаштувати його.
Перше, що 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 для запитів та відповіді. Дуже специфічний для NOAA XML. Дивитися зразок 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 ( OGC 06-121р3) обкладинки будівництва GET і POST запитів (див. розділ 7.2.3 і розділ 9) й
- Якщо ви надішлемо запит на getCapabilities xml SOS сервер ( 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) й
- Якщо ви надішлемо запит xml SOS сервер, ви отримуєте результат xml з описом назв поля у відповідь, полів та даних. Прізвища поля буде містити довгота, широта, глибина (апошні) і час.
- Що dataVariable Для EDDTableЗ альбому SOS повинен включати атрибут "observedProperty", який ідентифікує проценти Нерідко кілька dataVariable s буде списувати однакові композитні характеристики.
- Тип даних для кожного 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&service=WFS&typename=aasg:BoreholeTemperature&format="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 Партнерство ) дуже простий у використанні і дуже ефективний Вирішення деяких з найбільших проблем з наданням даних з джерел даних дистанційних даних:
- Доступ до даних з джерела даних віддалених даних може бути повільним.
- Вони можуть бути повільними, тому що вони, як правило, повільні (наприклад, неефективний тип сервера) й
- тому, що вони занадто багато запитів,
- або через те, що сервер або віддалений сервер обмежений.
- Віддалена датасета іноді недоступна (знову, для різних причин) й
- Поповнення на одне джерело даних не дуже добре (наприклад, коли багато користувачів і багато ERDDAP s використовувати його) й
- Доступ до даних з джерела даних віддалених даних може бути повільним.
- Як працює -- 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, дані, які не перевіряють вихідний дані, щоб побачити, чи доступні додаткові дані.
Рекомендоване використання
- Створити<датасет> Увійти (рідний тип, не EDDTableCopy) для джерела даних віддалених даних. Отримайте правильність роботи, включаючи всі необхідні метадані.
- Якщо це занадто повільно, додайте XML-код, щоб загорнути його в EDDTableCopy dataset.
- Використовуйте різні datasetID (можливо, змінивши datasetID старі datasetID трохи) й
- Статус на сервери<доступні До>,<перезавантаженняВсіNMinutes> і<onChange> з віддаленого XML EDDTable до XML EDDTableCopy. (Їх значення для EDDTableCopy матерії; їх значення для внутрішнього набору даних стає незворотним.)
- Створити<removeDestinationNames> тег (Переглянути вище) й
- <ЗамовленняExtractBy> є окремим списком змінних імен пункту призначення у віддаленому режимі. При завантаженні кожного шматка даних з віддаленого сервера штан буде відсортовано ці змінні (за першою змінною, потім другою змінною, якщо перша змінна пов'язана, ...) й У деяких випадках ERDDAP™ отримувати дані швидше від локальних файлів даних, якщо перша змінна у списку є числовою змінною ( "time" кількість як нумерична змінна) й Але оберіть ці змінні спосіб, який підходить для набору даних.
- ERDDAP™ зробить і підтримувати локальну копію даних.
- WARNING: EDDTableCopy припускає, що значення даних для кожного шматка не змінюється. Якщо / коли вони роблять, потрібно вручну видалити файли згортки в bigParentПублічний Українська * datasetID * / які змінилися і Увійти Замінити дані, щоб бути перевантажені так, щоб видалені шматки будуть замінені. Якщо у вас є підписка на електронну пошту до набору даних, ви отримаєте два електронні листи: один, коли дані, які спочатку перевантажуються і починають копіювати дані, а інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
- Зміна метаданих --- Якщо необхідно змінити будь-який addAttributes або змінити порядок змін, пов'язаних з вихідним даними:
- Зміна addAttributes для вихідних даних datasets.xml , як це потрібно.
- Видалити один з копіюваних файлів.
- Встановити Увійти негайно перезавантажити дані. Якщо ви використовуєте прапор і ви маєте підписку на електронну пошту до датасета, ви отримаєте два електронні листи: один, коли дані, які спочатку перезавантажуються і починає копіювати дані, а також інший, коли завантаження даних знову завантажується (автоматично) і виявляє нові локальні файли даних.
- Виданий файл буде перегенерований з новим метаданих. Якщо вихідний датасет є коли-небудь недоступним, 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, який ще дозволено, але дискурований.
<cacheClearMinutes>
- Про нас ** <cacheClearMinutes> ** до (<a href="http://realtor.if.ua/" title="Агентство нерухомості Ріелтор") рідко використовується тег OPTIONAL в межах<erddapDatasets> мітка в datasets.xml вказати частоту для перевірки кешованих файлів і видалення старих (хвилин) (За замовчуванням=15) й Наприклад:
<cacheClearMinutes>15</cacheClearMinutes>
Коли сервер закінчує обробку запиту, він перевірить, як довго був останній кеш. Якщо це було занадто довго, це буде черга завдання на ЗавданняПодивитися, щоб очистити кеш. Будь-які зміни значення мітки будуть діяти наступного разу ERDDAP™ читати datasets.xml , в тому числі у відповідь на дані Увійти й Це може бути вказаний в налаштуваннях.xml, але це дискурований.
<конвертуватиInterpolateRequestCSVExample>
- Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#convertinterpolaterequestcsvexample) є тегом OPTIONAL в межах<erddapDatasets> мітка в datasets.xml \[ від ERDDAP™ в2.10 \] який містить приклад, який буде показано на веб-сторінці Interpolate. Значення за замовчуванням: jplMU RSS Т41/Аналізе\_ sst /Білайнар/4 .
<конвертуватиInterpolateDatasetIDVariableList>
- Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#convertinterpolatedatasetidvariablelist) є тегом OPTIONAL в межах<erddapDatasets> мітка в datasets.xml \[ від ERDDAP™ в2.10 \] який містить список CSV datasetID /загальна Приклади імен, які будуть використані в якості пропозицій на сайті Interpolate. Значення за замовчуванням: jplMU RSS Т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 (з найнижчим пріоритетом) :
- Якщо 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 який визначає ім'я користувача користувача, пароль (якщо автентифікація=студент) й ролі (список категорій) й Використання імені користувача та пароля дещо залежить від значення [<автентифікації> (/документи/сервер-адміністрування/адміністрування-інформаційна інформація#автентифікація) у вас ERDDAP English, Українська, 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.
- Про нас datasetID s MUST бути листом (А-З, а-з) далі будь-яка кількість А-З, a-z, 0-9, і \_ (але краще, якщо<32 символи всього).
- Дата Ідентифікатори є конфіденційними, але DON'T створюють два datasetID s, які відрізняються лише у верхній / нижній літер. Причини виникнення проблем на комп'ютерах Windows (Ваше та/або комп’ютер користувача) й
- Кращі практики: Ми рекомендуємо використовувати Український Випадковий й
- Кращі практики: Ми рекомендуємо, щоб перша частина була акронімом або абревіатурою імені початкової установи та другою частиною була акронімом або абревіатурою назви даних. Коли це можливо, ми створюємо назву, яка відображає назву джерела для набору даних. Наприклад, ми використовували datasetID Українська sst a8day" для збору даних NOAA NMFS SWFSC Відділ досліджень навколишнього середовища ( ERD ) який позначений джерелом, щоб бути супутниковим / PH / sst 8 день.
- Якщо ви зміните ім'я даних, старі дані (з давньою назвою) буде жити в ERDDAP й Це "orphan" датасет, оскільки специфікація для нього в datasets.xml тепер пішов. Для цього необхідно мати справу:
- Для ERDDAP™ v2.19 і пізніше, вам не потрібно нічого робити. ERDDAP™ автоматично видаліть ці сироти.
- Для 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>
- Про нас ** <доступніViaFiles> ** до (#accessibleviafiles) є тегом OPTIONAL в межах<датасет> тег в datasets.xml для EDDGrid АгрегатЕксистуванняДіменсія й EDDGrid Партнерство й EDDGrid ВідEDDTable й EDDGrid ВідErddap й EDDGrid ВідEtopo й EDDGrid Відповіді (включаючи всі підкласи) й EDDGrid Бодибилдерши й EDDTableКопі EDDTableЗ альбомуErddap й EDDTableЗ альбому EDDGrid й EDDTableЗ альбомуFiles (включаючи всі підкласи) дані. Це може мати значення true або false. Наприклад,
<accessibleViaFiles>true</accessibleViaFiles>
Якщо значення вірно, 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.
- Для tabledap datasets, найбільш поширене використання цього полягає в тому, щоб вказати діапазон часу за замовчуванням (до максимуму (час) , наприклад, &time>=max (час) -1день, або відносно зараз, наприклад, &time>= now- 1 день) й Пам'ятайте, що запитувати не змінні дані є тим самим, як вказати всі зміни даних, тому зазвичай ви можете просто вказати новий час обмеження. Наприклад:
<defaultDataQuery>&time>=max(time)-1day</defaultDataQuery>
або
<defaultDataQuery>&time>=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\\]&.draw=surface&.vars=longitude|latitude|temp</defaultGraphQuery>- Для tabledap дані, якщо ви не вказали про будь-які обмеження, запит буде нараховувати всі дані, які можуть зайняти довгий час, залежно від розміру даних.
- Для tabledap datasets, найбільш поширене використання цього полягає в тому, щоб вказати діапазон часу за замовчуванням (до максимуму (час) , наприклад, &time>=max (час) -1день, або відносно зараз, наприклад, &time>= now- 1 день) й Пам'ятайте, що запитувати не змінні дані є тим самим, як вказати всі зміни даних, тому зазвичай ви можете просто вказати новий час обмеження. Наприклад:
<defaultGraphQuery>&time>=max(time)-1day</defaultGraphQuery>
або
<defaultGraphQuery>&time>=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™ Спробуйте створити файл. Використання:
повний Ім'я файлу може звернутися до локального файлу (десь на файловій системі сервера) або URL віддаленого файлу. Якщо повний Ім'я файлу \="" або файл не знайдено, метадані ISO 19115 не буде. Отже, це також корисно, якщо ви хочете пригнічувати метадані ISO 19115 для конкретного набору даних. Або, ви можете покласти<JavaScript licenses API Веб-сайт Go1.13.8</iso19115Active> вconfig.xml, щоб розповісти ERDDAP™ не пропонувати метадані ISO 19115 для будь-якого набору даних.
<iso19115File>*fullFileName*</iso19115File>
<з 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, і the EDDGrid Система відеоспостереження Агрегація через Ім'я файлу , потім 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 для будь-якого EDDGrid Dataset означає, що параметр 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¶m2=value2
Ви повинні вказати<onChange> тег через (на одну лінію)
<onChange>https://www.company.com/webService?department=R%26D&param2=value2</onChange> - Пошта: --- Якщо акція стартує з "mailto:", ERDDAP™ надішлемо лист на наступну адресу електронної пошти, що вказує на те, що дані було оновлено/змінено. Наприклад:<Електронна пошта: info@john.smith@company.com<Українська Якщо у вас є хороша причина ERDDAP™ Для підтримки будь-якого іншого типу дії надсилайте нам електронну пошту, що вам потрібно.
- « » » » » » » » » » » » » » »http://"чи "https://"--- Якщо акція стартує з "http://"чи "https://"й ERDDAP™ відправить HTTP GET запит на вказану URL-адресу. Відповідь буде ігноруватися. Наприклад, URL-адреса може розповісти про інші веб-служби.
- Цей тег 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™ , перевантаження всіх даних обробляється двома однофункціональними нитками. Одна нитка ініціює незначне перевантаження, якщо вона знаходить файл прапора або велике перевантаження (які перевіряють всі дані, щоб побачити, чи потрібно перезавантажити) й Іншим ниткам є фактичне перевантаження даних одночасно. Ці нитки працюють у фоновому режимі, що гарантує, що всі дані зберігаються в сучасних умовах. Нитка, яка фактично робить перезавантаження, готує нову версію набору даних, потім закрутить її на місце (по суті, заміня старої версії атомічно) й Отже, можливо, що наступна послідовність подій відбувається (це гарна річ) :
- ERDDAP™ запускає перевантаження даних (створення нової версії) на фоні.
- Користувач «А» надає запит на отримання даних. ERDDAP™ використовує поточну версію Dataset для створення відповіді. (Це добре. Не було затримок для користувача, а поточна версія Dataset ніколи не повинна бути дуже простим.)
- ERDDAP™ Завершується створення нової версії даних, що перевантажується, і запускає нову версію у виробництво. Всі наступні нові запити обробляються новою версією Dataset. Для консистенції запит користувача A все ще заповнюється оригінальною версією.
- Користувач 'B' робить запит на дані ERDDAP™ використовує нову версію Dataset для створення відповіді.
- Закінчено запити користувачів 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 дозволяє на додаток до необмеженого розміру "класичної" .nc v3 файл, який буде виготовлений атомічно. <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З альбомуDapSequence OPeNDAP DRDS сервера, це повинно бути встановлено для true (За замовчуванням) й
- Для EDDTableЗ альбомуDapSequence Сервери Dapper, це повинно бути встановлено помилково.
- Приклад:
<sourceCanConstrainStringEQNE>true</sourceCanConstrainStringEQNE>
<джерелоCanConstrainStringGTLT>
- Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecanconstrainstringgtlt) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег, який визначає, якщо джерело може протипоказати змінні з<й<=, > та >= оператори.
- Для EDDTableЗ альбомуDapSequence, це стосується тільки початкової послідовності. Припустимо, що джерело не може обробляти будь-які обмеження на внутрішні зміни послідовності.
- Реальні цінності (За замовчуванням) і помилково.
- Цей тег OPTIONAL. За замовчуванням є вірним.
- Для EDDTableЗ альбомуDapSequence OPeNDAP DRDS сервера, це повинно бути встановлено для true (За замовчуванням) й
- Для EDDTableЗ альбомуDapSequence Сервери Dapper, це повинно бути встановлено помилково.
- Приклад:
<sourceCanConstrainStringGTLT>true</sourceCanConstrainStringGTLT>
<джерелоCanConstrainStringRegex>
- Про нас ** <JavaScript licenses API Веб-сайт Go1.13.8 ** до (#sourcecanconstrainstringregex) ОПЦІОНАЛЬНИЙ тег в EDDTable<датасет> тег, який визначає, якщо джерело може протипоказати змінні регулярні вирази, і якщо так, що оператор є.
- Дійсно значення "=
" (Про нас DAP стандарт) , "=" (помилково підтримується багатьма DAP сервери) або "" (вказує на те, що джерело не підтримує регулярні вирази) й - Цей тег OPTIONAL. За замовчуванням «».
- Для EDDTableЗ альбомуDapSequence OPeNDAP DRDS сервера, це повинно бути встановлене до "" (За замовчуванням) й
- Для 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.xml XML файл, ви MUST також кодування '&', '<', і '>' в URL як '&', '<", і '>'.
- Для більшості типів даних, ERDDAP™ додає оригінальний sourceUrl ("localSourceUrl" у вихідному коді) до глобальні атрибути (де стає «громадськийСурцеУрл» у вихідному коді) й Коли джерело даних є локальними файлами, ERDDAP™ Додати sourceUrl й (локальні файли) " світові атрибути як прекавенція безпеки. Коли джерело даних є базою даних, ERDDAP™ Додати sourceUrl й (база даних) " світові атрибути як прекавенція безпеки. Якщо ви використовуєте негромадські дані sourceUrl Р (як правило, тому що комп'ютер знаходиться в DMZ або на локальній LAN) Ви можете використовувати [<JavaScript licenses API Веб-сайт Go1.13.8 (#converttopublicsourceurl) Теги, щоб вказати, як перетворити локальний sourceUrl s для громадськості 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>
- Дійсні типи для однозначних значень (8-бітне ціле) , короткий (16-біт підписано ціле) , внутр (32-біт підписано ціле) , довгий (64-біт підписано ціле) , плавати (32-розрядна точка) , подвійний (64-розрядна точка плавлення) , char і String. Наприклад,
Переглянути ці ноти про тип даних 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\_data\_type (з АКДД Стандарт метаданих) є глобальним атрибутом, який вказує на Unidata Загальна модель даних тип даних для збору даних. Наприклад,
<att name="cdm\\_data\\_type">Point</att>
CDM все ще і може знову змінитися. ERDDAP™ детальніше Дискретні шамплінг геометереї (ДСГ) Український КМ 1.6 Конвенції метаданих (раніше назвали конвенції спостереження CF) й
- Ефір глобальних даних джерелоАтрибути або його глобальний< addAttributes Головна MUST включає в себе атрибут cdm\_data\_type. Кілька типів даних (як EDDTable ЗОбіс) автоматично встановить.
- Для EDDGrid datasets, 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 (має правильне поєднання атрибутів) , але все ж може бути неправильно налаштований, що призводить до неправильних результатів .nc CF і .nc Файли відповіді CFMA. (Програмне забезпечення є розумним в деяких випадках і безглуздим в інших.)
- Коли ви подивитеся на метадані Dataset в ERDDAP™ Список даних DSG ERDDAP '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 змінну та всі інші змінні з інформацією про станцію, яка майже завжди включає широтність та довгота (і висота або глибина, якщо присутні) й Список ніколи не буде включати час або будь-які зміни спостереження.
- Для деяких мотивованих буй, дані, які можуть мати два набори широтності і довготи змінних:
- Одна пара широти і довготи значень, які є постійними (i.e., фіксоване розташування обмотки) й У ERDDAP™ , дати ці змінні destinationName s широтності і довготи, і включають ці змінні в список cdm\_timeseries\_variables.
- Точні значення широти і довготи, пов'язані з кожним спостереженням. У 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 для визначення змінної, яка унікально визначає профілі.
(Заданий профіль\_ідентифікатор має бути унікальним для даної разової категорії\_id.) Якщо будь-яка інша змінна підходить, врахуйте за допомогою змінної часу.
<att name="cf\\_role">profile\\_id</att> - Ці дані 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™ :
- COARDS Конвенції є прекурсором до CF.
- Клімат і прогноз (Панчохи) Конвенції є джерелом багатьох рекомендованих і необхідних атрибутів ERDDAP й Поточна версія CF визначається як "CF-1.6".
- Про нас NetCDF Атрибутова конвенція для виявлення даних (АКДД) є джерелом багатьох рекомендованих і необхідних атрибутів ERDDAP й Оригінальна версія 1.0 ACDD (Яскравий шматочок роботи Етан Девіс) , був виявлений як Unidata English, Українська, Français... Поточний (від 2015) 1.3 версія АКД визначається як АКДД-1.3 й Якщо Ваші дані використовують Unidata Dataset Discovery v1.0 ми заохочуємо вас до Переключіть дані, щоб використовувати ACDD-1.3 й
Якщо ваш набір даних дивиться на деякі додаткові стандарти метаданих, будь ласка, додайте назву до списку 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 > Oceans > Ocean Circulation > 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.xml XML документ, символи та,<, і > в атрибуті як ключові слова (Наприклад, символи 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 як " Unidata English, Українська, 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
- ** processing\_level ** (з АКДД Стандарт метаданих) - РЕКОМЕНДОВАНИЙ КОМПЛЕКЦІЙНИЙ опис обробки (наприклад, Система обробки даних та інформаційних систем НАСА Наприклад, рівень 3) або рівень контролю якості (Наприклад, Якість науки) даних. Наприклад,
<att name="processing\\_level">3</att>
проект
- проект (з АКДД Стандарт метаданих) є атрибутом 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) destinationName s для визначення змін, які мають обмежену кількість значень (зазначений інший спосіб: змінні, для яких кожен з значень має багато дублікатів) й Наприклад,
<att name="subsetVariables">station\\_id, longitude, latitude</att>
Якщо даний атрибут присутній, то дані * datasetID * Веб-сайт .subset (і посилання на цей список даних) дозволяє користувачам швидко і легко вибрати різні підбори даних.
- Кожен раз навантажується датасет, ERDDAP вантажі і магазини на диску стіл з усіма відмінними () комбінацій субсету Значення змінної. ERDDAP™ може прочитати, що subsetVariables стіл і процес дуже швидко (особливо в порівнянні з читанням лотів файлів даних або отримання даних з бази даних або іншої зовнішньої служби) й
- Що дозволяє ERDDAP™ до 3 речей:
- Це дозволяє ERDDAP™ Щоб додати список можливих значень у списку спадок на сторінці доступу до даних, зробіть веб-сторінку графа та веб-сторінці .subset.
- Це дозволяє ERDDAP™ Щоб запропонувати веб-сторінку .subset для цього облікового запису. Ця сторінка цікава тому, що вона дозволяє легко знайти дійсні комбінації значень цих змінних, які для деяких даних і деяких змінних є дуже важко, дуже важко (практично неможливо) й Далі всі запити користувачів для відмінного () субтитри Змінні дані будуть дуже швидко.
- Якщо є запит користувача, який тільки відноситься до підмножини тих змінних, ERDDAP™ швидко читати subsetVariables Таблиця і відповідь на запит. Що може заощадити тонну часу і зусиль для ERDDAP й
- Порядок замовлення destinationName s ви визначаєте порядок сортування на * 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 чуйний випадок.
- destinationName s 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 може використовувати деякі спеціально зашифровані, псевдо sourceName s для визначення змінних даних, наприклад, для просування глобального атрибуту, який буде змінним. Про нас документація й
HDF Структура
Почати з ERDDAP™ в2.12, EDDGrid ВідNcFiles і EDDGrid ВідNcFiles Розпаковані дані можна дізнатися з "структур" в .nc 4 і .hdf 4 фото. Для визначення змінної, яка знаходиться з структури,< 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\_range addAttribute, який перенаправить очікувані значення призначенняMin і призначенняMax (що б інакше рівний фіксований Ціна) й
Script SourceNames/Derived мінливі
Почати з ERDDAP™ v2.10, в EDDTableЗ альбомуFiles й EDDTableЗ альбомуDatabase або EDDTableЗ альбомуFileNames датасет,< sourceName > може бути вираз (рівняння, яке оцінюється на одне значення) , використовуючи формат
<sourceName>=*expression*</sourceName>
або скрипт (серія виписок, що повертає одне значення) , використовуючи формат
<sourceName>=*script*</sourceName>
ERDDAP™ спирається на Статус на сервери Java Мова експресії (ДЖЕКСЛ) (ліцензія: Афіша ) оцінити вирази та запустити сценарії. Розрахунок заданої нової змінної здійснюється в межах одного ряду результатів, багаторазового для всіх рядків. Висловлення та скрипти використовують Java - і Java Script-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 ° змінна і destinationName JavaScript 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>35 || tc<-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 чуйний випадок.
- destinationName s 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З альбомуM WFS , 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З альбомуFileNames Dataset для тих файлів (це може бути особистим даними) й
файл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 набагато краще для цієї мети, ніж, наприклад, набагато більш дрібніший CF standard\_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 й Панчохи і АКДД стандарти метаданих) є змінним атрибутом RECOMMENDED ERDDAP й Наприклад,
<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\_value s і \_FillValues з'являються як "" (порожній рядок) коли час написано як String, так і як NaN, коли час написано як подвійний. Значення джерела для missing\_value і \_FillValue не з'явиться в метаданих змінної.
- Для String змінних, ERDDAP™ завжди конвертує будь-який missing\_value s або \_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 ** (з Панчохи Стандарт метаданих) є змінним атрибутом RECOMMENDED ERDDAP й CF зберігає список дозволених CF стандартних імен й Наприклад,
<att name="standard\\_name">eastward\\_sea\\_water\\_velocity</att>
- Якщо додати standard\_name до змінних атрибутів і додати standard\_name до списку< categoryAttributes Головна в ERDDAP Р Налаштування.xml Файл, користувачі можуть легко знайти дані з аналогічними даними через ERDDAP «Пошук даних за категоріями» на головній сторінці.
- Якщо ви вказали CF standard\_name для змінного, атрибути блоків для змінної не повинні бути ідентичними Canonical Units, зазначених для стандартного імені в таблиці імен CF Standard, але одиниці MUST перетворюються на Canonical Units. Наприклад, всі температури пов'язані CF standard\_name s мати "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 .
JavaScript licenses API Веб-сайт Go1.13.8
- JavaScript licenses API Веб-сайт Go1.13.8 Почати ERDDAP™ 2.29.0, часові змінні працюють трохи по-різному. У рідкісних випадках, швидше за все, при використанні
днів зі рік до 1582 (доднів з 0000-01-01абодні з 1-1-1 00:00:0.0) Вам потрібно вказати на налаштування до змінної дати. Причина цього ERDDAP™ Використовуйте бібліотеку для керування датами внутрішньо. Є деякі дані, які вимагають використання старої бібліотеки GregorianCalendar, щоб привернути правильні дати.
<axisVariable>
<sourceName>time</sourceName>
<destinationName>time</destinationName>
<!-- sourceAttributes>
... removed several lines ...
<att name="units">days since 1-1-1 00:00:0.0</att>
</sourceAttributes -->
<addAttributes>
... removed several lines ...
<att name="legacy_time_adjust">true</att>
</addAttributes>
</axisVariable>
блоки
<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 (Етикети) форматований рядок часу дати. Перетворювач поверне повідомлення про помилку, якщо рядок блоків не розпізнається.
Рядки часу
- Для атрибутів юнітів на час або часові зміни даних з даними String, Ви повинні вказати English, Українська, Français... Кошик (який сумісний з java.text. Про нас) який описує, як інтерпретувати рядки.
Для широко використовуваних форматів часу, які є варіаціями 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
- ** valid\_range ** або ** valid\_min ** і ** valid\_max ** --- Визначені атрибути OPTIONAL Панчохи Конвенції метаданих. Наприклад,
<att name="valid\_range" type="floatList"\>0.0 40.0</att>
або
<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 може значно уповільнити запити, хоча може знадобитися для деяких даних.