Работая сdatasets.xmlФайл
\[Эта страница будет представлять интерес только дляERDDAP™Администраторы.\]
После того, как вы последовали заERDDAP™ Инструкция по установкеВы должны редактироватьdatasets.xmlфайл в кот /content/erddap/ для описания наборов данных, которые выERDDAP™Установка будет служить.
Введение
Некоторая сборка требуется
Настройка набора данных вERDDAP™Это не просто вопрос указания на каталог или URL набора данных. Вы должны написать часть XML дляdatasets.xmlкоторый описывает набор данных.
- Для сетчатых наборов данных, чтобы сделать набор данных соответствующимERDDAPСтруктура данных для сетчатых данных должна идентифицировать подмножество переменных набора данных, которые имеют одинаковые размеры. (Почему? Как?)
- Текущие метаданные набора данных импортируются автоматически. Но если вы хотите изменить эти метаданные или добавить другие метаданные, вы должны указать их вdatasets.xml. ИERDDAP™нуждается в других метаданных, в том числеглобальные атрибуты (такие какinfoUrlинститут,sourceUrl, резюме и название) ипеременные атрибуты (такие какlong\_nameи единицы) . Так же, как метаданные, которые в настоящее время находятся в наборе данных, добавляют описательную информацию к набору данных, метаданные, запрошенныеERDDAP™Добавляет описательную информацию в набор данных. Дополнительные метаданные являются хорошим дополнением к вашему набору данных и помогают.ERDDAP™Сделайте лучшую работу по представлению ваших данных пользователям, которые не знакомы с ними.
- ERDDAP™Вы должны делать особые вещи сдолгота, широта, высота (или глубина) и временные переменные.
Если вы купитесь на эти идеи и израсходуете усилия на создание XMLdatasets.xmlВы получаете все преимуществаERDDAP™В том числе:
- Полный текстовый поиск наборов данных
- Поиск наборов данных по категориям
- Форма доступа к данным ( datasetID .html) Таким образом, вы можете запросить подмножество данных в различных форматах файлов.
- Формы для запроса графиков и карт ( datasetID граф)
- Сервис Web Map (WMS) для сетчатых наборов данных
- RESTfulдоступ к вашим данным
Сделатьdatasets.xmlЭто требует значительных усилий для первых нескольких наборов данных. становится легче . После первого набора данных вы часто можете повторно использовать большую часть своей работы для следующего набора данных. К счастью,ERDDAP™поставляется с двумяИнструментыЧтобы помочь вам создать XML для каждого набора данныхdatasets.xml. Если вы застряли, посмотрите нашРаздел о дополнительной поддержке.
Поставщик данных форма
Когда к вам приходит поставщик данных, надеясь добавить некоторые данные в ваш компьютер.ERDDAPЭто может быть трудным и трудоемким для сбора всех метаданных. (Информация о наборе данных) Необходимо добавить набор данных вERDDAP. Многие источники данных (Например, файлы .csv, Файлы Excel, базы данных) не имеют внутренних метаданных, поэтомуERDDAP™имеет форму поставщика данных, которая собирает метаданные от поставщика данных и дает поставщику данных некоторые другие рекомендации, включая обширные рекомендации дляДанные в базах данных. Представленная информация преобразуется вdatasets.xmlформат, а затем по электронной почтеERDDAP™администратор (ты) и письменный (прилагаемый) то BigParent Директория /logs/dataProviderForm.log. Таким образом, форма полуавтоматизирует процесс получения набора данных вERDDAPно этоERDDAP™Администратор должен завершитьdatasets.xmlОбработка и получение файла данных (s) от поставщика или подключения к базе данных.
Подача фактических файлов данных из внешних источников представляет собой огромный риск безопасности.ERDDAP™Не имеет дело с этим. Вы должны найти решение, которое работает для вас и поставщика данных, например, электронная почта. (для небольших файлов) Вытащить из облака (Например, DropBox или Google Drive.) Сайт 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>
В файле setup.xml.
Толчком к этому послужилNOAA2014 годПубличный доступ к результатам исследований (ПАРР) директивакоторая требует, чтобы всеNOAAЭкологические данные, финансируемые за счет средств налогоплательщиков, предоставляются через службу данных. (Не только файлы) В течение 12 месяцев после создания. Повышен интерес к использованиюERDDAP™Чтобы сделать наборы данных доступными через службу ASAP. Нам нужен был более эффективный способ работы с большим количеством поставщиков данных.
Обратная связь / Предложения? Эта форма новая, поэтому, пожалуйста, пишите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Он находится на вашем компьютере, затем отредактируйте ссылку java в файле .bat или .sh, который вы пытаетесь использовать.
- Если вы получаете файл банка не найден или класс не найден сообщение об ошибке, тоJavaВы не можете найти один из классов, перечисленных в файле .bat или .sh. Решение состоит в том, чтобы выяснить, где находится файл .jar, и отредактировать ссылку на него в файле .bat или .sh.
- Если вы используете версиюJavaЭто слишком старая программа, программа не запускается, и вы увидите сообщение об ошибке.
Исключение в потоке "основной" java.lang.UnsupportedClassVersionError:
некоторый/класс/имя Неподдерживаемая версия major.minor некоторое число
Решение заключается в обновлении до последней версииJavaУбедитесь, что файл .sh или .bat для программы использует его.
Инструменты печатают различные диагностические сообщения:
- Слово «ERROR» используется, когда что-то пошло не так, что процедура не была завершена. Хотя это раздражает, чтобы получить ошибку, ошибка заставляет вас иметь дело с проблемой.
- Слово «предупреждение» используется, когда что-то пошло не так, но процедуру удалось завершить. Они довольно редкие.
- Все остальное — лишь информативное сообщение. Вы можете добавить \-verbose кГене рировать наборы данныхXmlилиDasDdsкомандная строка для получения дополнительных информативных сообщений, что иногда помогает решить проблемы.
Эти два инструмента очень полезны, но вы все равно должны внимательно прочитать все эти инструкции на этой странице и самостоятельно принимать важные решения.
Генерировать наборы данныхXml
- Генерировать наборы данныхXml Программа командной строки, которая может генерировать черновой проект набора данных XML практически для любого типа набора данных.
Мы настоятельно рекомендуем использовать GenerateDatasets Xml вместо того, чтобы создавать кускиdatasets.xmlОт руки, потому что:
- Генерировать наборы данных Xml работает в считанные секунды. Делать это вручную — это как минимум час работы, даже если вы знаете, что делаете.
- Генерировать наборы данных Xml работает лучше. Делать это вручную требует обширных знаний о том, какERDDAP™Работает. Маловероятно, что вы с делаете лучшую работу вручную. (Боб Саймонс всегда использует наборы данных Xml для первого черновика, и он написалERDDAP.)
- Генерировать наборы данных Xml всегда генерирует действительный кусокdatasets.xml. Любой кусокdatasets.xmlВы, вероятно, будете иметь по крайней мере несколько ошибок, которые предотвратятERDDAP™от загрузки набора данных. Часто людям требуется несколько часов, чтобы диагностировать эти проблемы. Не трать свое время. Пусть генерируют Наборы данных Xml делает тяжелую работу. Тогда вы можете усовершенствовать .xml вручную, если хотите.
Когда вы используете наборы данных Программа XML:
- В Windows, когда вы впервые запускаете GenerateDatasetsXml, вам нужно редактировать файл GenerateDatasetsXml.bat с текстовым редактором, чтобы изменить путь к java. Файл exe, чтобы Windows могла найтиJava.
- Генерировать наборы данных Xml сначала просит указать EDDType (Набор данных Erd Dap Тип) из набора данных. Видишь?Список типов наборов данных (в этом документе) Чтобы выяснить, какой тип подходит для набора данных, над которым вы работаете. В дополнение к обычным EDDTypes, есть также несколькоСпециальные / псевдотипы наборов данных (Например, тот, который сканирует каталог THREDDS, чтобы создать кусокdatasets.xmlдля каждого из наборов данных в каталоге) .
- Генерировать наборы данных Затем Xml задает вам ряд вопросов, относящихся к EDDType. Вопросы собирают информацию, необходимую дляERDDAP™получить доступ к источнику данных. Чтобы понять, чтоERDDAP™запрашивает, см. документацию для EDDType, которую вы указали, нажав на тот же тип набора данныхСписок типов наборов данных.
Если вам нужно ввести строку со специальными символами (Например, символы белого пространства в начале или конце, не-ASCII символы) Войдите вСтруна в стиле JSON (с особыми персонажами, сбежавшими с персонажами) . Например, чтобы ввести только символ вкладки, введите «\t» (с окружающими двойными цитатами, которые говорят:ERDDAP™Это струна в стиле JSON.
- Часто одним из ваших ответов будет не то, что нужно GenerateDatasetsXml. Затем вы можете попробовать снова, с пересмотренными ответами на вопросы, до генерации наборов данных. Xml может найти и понять исходные данные.
- Если вы правил ьно отвечаете на вопросы (или достаточно правильно) Генерировать наборы данных Xml подключится к источнику данных и соберет основную информацию (Например, имена переменных и метаданные) . Для наборов данных, которые являются локальнымиNetCDF .ncи связанные файлы, генерировать наборы данных Xml часто печатает ncdump-подобную структуру файла после его первого чтения. Это может дать вам информацию, чтобы лучше ответить на вопросы в последующем цикле через GenerateDatasetsXml.
- Генерировать наборы данных Затем Xml сгенерирует черновой проект набора данных XML для этого набора данных.
- Диагностическая информация и черновой проект набора данных XML будут записаны на BigParent Директория /logs/GenerateDatasetsXml.log.
- Грубый проект набора данных XML будет написан на BigParent Директория /logs/GenerateDatasetsXml.out.
"0 файлов" сообщение об ошибке
Если вы используете GenerateDatasets Xml илиDasDdsЕсли вы пытаетесь загрузитьEDDGridИз... материалов или из... Файлы Dataset inERDDAP™, и вы получаете сообщение об ошибке «0 файлов», указывающее, чтоERDDAP™найдено 0 совпадающих файлов в каталоге (Когда вы думаете, что в этом каталоге есть соответствующие файлы) :
-
Убедитесь, что вы указали полное имя каталога. И если вы указали имя файла образца, убедитесь, что вы указали полное имя файла, включая полное имя каталога.
-
Убедитесь, что файлы действительно находятся в этом каталоге.
-
Проверьте написание названия каталога.
-
Проверьте файл NameRegex. Очень, очень легко делать ошибки с регексами. Для целей тестирования попробуйте regex .\*, который должен соответствовать всем именам файлов. (Посмотри.нормативная документацияиучебник по регексу.)
-
Убедитесь, что пользователь, который запускает программу (Пользователь=tomcat (?) Для Tomcat/ERDDAP) У вас есть разрешение «читать» эти файлы.
-
В некоторых операционных системах (Например, SELinux) В зависимости от системных настроек пользователь, который запустил программу, должен иметь разрешение «читать» для всей цепочки каталогов, ведущих в каталог, в котором есть файлы.
-
Если у вас есть проблемы, которые вы не можете решить,запросить поддержкукак можно больше информации. Аналогичным образом, если кажется, что соответствующий EDDType для данного набора данных не работает с этим набором данных, или если нет соответствующего EDDType, пожалуйста, подавайте заявку на регистрацию.Обсуждение GitHubс подробностями (и образец файла, если это необходимо) .
Вам нужно отредактировать выход из GenerateDatasets Xml, чтобы сделать его лучше.
-
Дисклеймер: Курицаdatasets.xmlСделано, чтобы генерировать наборы данных Xml не идеален. Вы должны прочитать и отредактироват ь XML, прежде чем использовать его в публичной форме.ERDDAP. Генерировать наборы данных Xml полагается на множество правил, которые не всегда верны. Вы обязаны поддерживать правильность XML, к которому вы присоединились.ERDDAP'S'datasets.xmlФайл.
(Интересный факт: я не кричу. По историческим юридическим причинам отказ от ответственности должен быть написан во всех колпаках.)
Выход GenerateDatasetsXml является черновым проектом. Вам почти всегда придется его редактировать. Мы приложили и продолжаем прилагать огромные усилия, чтобы сделать выход как можно более готовым, но есть пределы. Часто необходимая информация просто недоступна из исходных метаданных.
Основная проблема заключается в том, что мы запрашиваем компьютерную программу. (Генерировать наборы данныхXml) Если бы вы дали такую же задачу 100 людям, вы бы получили 100 различных результатов. Нет единого «правильного» ответа. Очевидно, программа ближе всего подходит к чтению мыслей Боба. (Не твой) Но даже в этом случае это не всепонимающая программа ИИ, просто куча эвристиков, собранных вместе, чтобы выполнить задачу, похожую на ИИ. (Этот день всепонимаю щей программы ИИ может наступить, но он еще не наступил. Если это произойдет, у людей могут быть большие проблемы. Будьте осторожны с тем, что вы хотите.)
-
В информационных целях на выходе показаны глобальный источник Атрибуты и переменный источник Атрибуты в виде комментариев.ERDDAP™комбинирует атрибуты иaddAttributes (которые имеют приоритет) Чтобы сделать комбинированный Атрибуты, которые показываются пользователю. (И другие атрибуты автоматически добавляются к долготе, широте, высоте, глубине и временным переменным, когдаERDDAP™Фактически делает набор данных) .
-
Если вам не нравится исходный атрибут, перезапишите его, добавив дополнительный атрибут с тем же именем, но с другим значением. (или нет, если вы хотите удалить) .
-
Все этоaddAttributesЭто компьютерные предложения. Редактируйте их! Если вам не нравится дополнительный атрибут, измените его.
-
Если вы хотите добавить другиеaddAttributesДобавьте их.
-
Если вы хотите изменить аdestinationNameИзмени это. Но не меняйся.sourceNameС.
-
Вы можете изменить порядокdataVariableили удалить любой из них.
- Затем вы можете использ оватьDasDds (см. ниже) многократно тестировать XML для этого набора данных, чтобы убедиться, что полученный набор данных отображается так, как вы хотите.ERDDAP.
- Не стесняйтесь вносить небольшие изменения вdatasets.xmlЧасти, которые были созданы, например, обеспечивают лучшуюinfoUrl, резюме или название.
Не добавляйте стандартные имена
Если вы включаете \-doNotAddStandardNames в качестве параметра командной строки при генерации Наборы данных Xml, генерировать Наборы данных Xml не будет добавлятьstandard\_nameкaddAttributesдля любых переменных, кроме переменных широты, долготы, высоты, глубины или времени (которые очевидныstandard\_names) . Это может быть полезно, если вы используете выход из генерации. Наборы данных Xml непосредственно вERDDAP™Не редактируя выход, потому что генерировать Наборы данных Xml часто угадываетstandard\_nameнеправильно. (Обратите внимание, что мы всегда рекомендуем вам редактировать вывод перед его использованием.ERDDAP.) Использование этого параметра будет иметь другие незначительные связанные эффекты, потому чтоstandard\_nameчасто используется для других целей, например, для создания новогоlong\_name, а также для создания цветовых баров.
Сценарий
В качестве альтернативы интерактивному ответу на вопросы на клавиатуре и циклированию для создания дополнительных наборов данных вы можете предоставить аргументы командной строки для ответа на все вопросы для создания одного набора данных. Генерировать наборы данных Xml обрабатывает эти параметры, записывает вывод в файл вывода и выходит из программы.
Чтобы настроить это, сначала используйте программу в интерактивном режиме и запишите свои ответы. Вот частичный пример: Допустим, вы запускаете сценарий: ./GenerateDatasetsXml.sh Далее введите: EDDTableFromAsciiFiles Введите: /u00/data/ Затем введите: .*\.asc Далее введите: /u00/data/sampleFile.asc Далее введите: ISO-8859-1
Чтобы запустить это неинтерактивным способом, используйте эту командную строку: ./GenerateDatasetsXml.sh EDDTableFromAsciiFiles/u00/data/.\*\.asc/u00/data/sampleFile.asc ISO-8859-1 Таким образом, вы просто перечислите все ответы в командной строке. Это должно быть полезно для наборов данных, которые часто меняются таким образом, что требует повторного запуска наборов данны х. Xml (особенноEDDGridИз ThreddsCatalog) .
Подробности:
- Если параметр содержит пространство или какой-то специальный символ, то закодируйте параметр какСтруна в стиле JSONНапример, "мой параметр с пробелами и двумя\nлинии".
- Если вы хотите указать пустую строку в качестве параметра, используйте: ничего
- Если вы хотите указать значение параметра по умолчанию, используйте:
- Генерировать наборы данных Xml поддерживает -i наборы данных XmlName # имя параметр командной строки, который вставляет выход в указанныйdatasets.xmlфайл (Дефолт является кот /content/erddap/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», он будет печатать больше диагностических сообщений, чем обычно.
Специальные / псевдотипы наборов данных
Варианты EDDType в GenerateDatasets Xml соответствие типов EDD, описанных в этом документе (Видишь?Список типов наборов данных) и создать одинdatasets.xmlфрагмент для создания одного набора данных из одного конкретного источника данных. Есть несколько исключений и особых случаев:
EDDGridИз Эрддапа
EDDType генерирует всеdatasets.xmlКуски, которые нужно сделатьEDDGridИз Эрддапанаборы данных от всехEDDGridНаборы данных в удаленномERDDAP. У вас будет возможность сохранить оригинал.datasetIDs (которые могут дублировать некоторыеdatasetIDуже в вашейERDDAP) или создавать новые имена, которые будут уникальными; (Но, как правило, не так читабельны) .
EDDTable FromErddap
EDDType генерирует всеdatasets.xmlКуски, которые нужно сделатьEDDTable FromErddapнаборы данных из всех наборов данных EDDTable в удаленн омERDDAP. У вас будет возможность сохранить оригинал.datasetIDs (которые могут дублировать некоторыеdatasetIDуже в вашейERDDAP) или создавать новые имена, которые будут уникальными; (Но, как правило, не так читабельны) .
EDDGridИз ThreddsCatalog
EDDType генерирует всеdatasets.xmlКуски, необходимые для всехEDDGridИз папынаборы данных, которые он может найти, сканируя рекурсивно через THREDDS (субподряд) каталог. Существует множество форм каталога THREDDS URL. Эта опция требует URL .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Из ThreddsCatalog.
Если у вас есть проблемы сEDDGridИз Тредд Кат алог:
- Убедитесь, что URL, который вы используете, действителен, включает /catalog / и заканчивается /catalog.xml.
- Если возможно, используйте публичный IP-адрес. (Например, https://oceanwatch.pfeg.noaa.gov ) URL, а не локальный цифровой IP-адрес (Например, https://12.34.56.78 ) . Если THREDDS доступен только через локальный цифровой IP-адрес, вы можете использовать<конвертироватьToPublicSourceUrl> (#конвертный публичный ресурс) такERDDAP™Пользователи видят публичный адрес, даже еслиERDDAP™Получает данные с локального числового адреса.
- Если у вас есть проблемы, которые вы не можете решить,Проверьте советы по устранению неполадок.
- Низкоуровневый код для этого теперь используетUnidatanetcdf-java каталог crawler code (Толстяки. Каталожные классы) Чтобы он мог обрабатывать все каталоги THREDDS (которые могут быть удивительно сложными) БлагодаряUnidataдля этого кода.
EDDGridLonPM180FromErddapКаталог
Данный тип генерируетdatasets.xmlделатьEDDGridLonPM180наборы данных от всехEDDGridнаборы данных в одномERDDAPкоторые имеют значения долготы более 180.
- Если возможно, используйте публичный IP-адрес. (Например, https://oceanwatch.pfeg.noaa.gov ) URL, а не локальный цифровой IP-адрес (Например, https://12.34.56.78 ) . ЕслиERDDAP™Доступен только через локальный цифровой IP-адрес, который вы можете использовать.<конвертироватьToPublicSourceUrl> (#конвертный публичный ресурс) такERDDAP™Пользователи видят публичный адрес, даже еслиERDDAP™Получает данные с локального числового адреса.
EDDGridLon0360FromErddapКаталог
Данный тип генерируетdatasets.xmlделатьEDDGridLon0360наборы данных от всехEDDGridнаборы данных в одномERDDAPкоторые имеют значения долготы менее 0.
- Если возможно, используйте публичный IP-адрес. (Например, https://oceanwatch.pfeg.noaa.gov ) URL, а не локальный цифровой IP-адрес (Например, https://12.34.56.78 ) . ЕслиERDDAP™Доступен только через локальный цифровой IP-адрес, который вы можете использовать.<конвертироватьToPublicSourceUrl> (#конвертный публичный ресурс) такERDDAP™Пользователи видят публичный адрес, даже еслиERDDAP™Получает данные с локального числового адреса.
EDDs From Files
Учитывая начальный каталог, он пересекает каталог и все подкаталоги и пытается создать набор данных для каждой группы файлов данных, которые он находит.
- Это предполагает, что когда набор данных найден, набор данных включает все подкаталоги.
- Если набор данных найден, аналогичные каталоги братьев и сестер будут рассматриваться как отдельные наборы данных. (Например, каталоги 1990-х, 2000-х, 2010-х годов будут генерировать отдельные наборы данных.) . Их легко комбинировать вручную — просто измените первый набор данных.<fileDir> в родительский каталог и удалить все последующие наборы данн ых.
- Это позволит создать лишь частьdatasets.xmlнаиболее распространенный тип расширения файла в каталоге (Не считая .md5, который игнорируется) . Итак, дается каталог с 10.ncфайлы и файлы 5.txt, набор данных будет генерироваться для.ncТолько файлы.
- Это предполагает, что все файлы в каталоге с одинаковым расширением принадлежат к одному и тому же набору данных. Если в каталоге есть.ncФайлы с данными SST и некоторые.ncФайлы с данными хлорофилла, только один образец.ncФайл будет читаться (ССТ? Хлорофилл?) Для этого типа файла будет создан только один набор данных. Этот набор данных, вероятно, не будет загружаться из-за сложностей с загрузкой двух типов файлов в один и тот же набор данных.
- Если в каталоге меньше 4 файлов с наиболее распространенным расширением, это предполагает, что они не являются файлами данных и просто пропускают каталог.
- Если в каталоге есть 4 или более файлов, но это не может успешно генерировать частьdatasets.xmlдля файлов (Например, неподдерживаемый тип файла) Это будет генерироватьEDDTable FromFileNamesНабор данных для файлов.
- В конце диагностики, что это записывает в файл журнала, непосредственно передdatasets.xmlКуски, это напечатает таблицу с резюме информации, собранной путем пересечения всех подкаталогов. В таблице будут перечислены все подкаталоги и указан наиболее распространенный тип расширения файла, общее количество файлов и какой тип набора данных был создан для этих файлов. (если есть) . Если вы столкнулись со сложной, глубоко вложенной файловой структурой, рассмотрите возможность запуска GenerateDatasets. Xml с EDDType=EDDsFromFiles только для генерации этой информации,
- Этот вариант может не очень хорошо угадать лучший EDDType для данной группы файлов данных, но это быстро, легко и стоит попробовать. Если исходные файлы подходят, они хорошо работают и являются хорошим первым шагом в создании исходных файлов.datasets.xmlдля файловой системы с большим количеством подкаталогов, каждый с файлами данных из разных наборов данных.
EDDTable FromEML и EDDTable FromEMLBatch
Специальный EDDType генерируетdatasets.xmlчтобы сделатьEDDTableFromAsciiFilesнабор данных из каждой таблицы, описанной вЭкологический язык метаданныхXML файл. Вариант «Бэтч» работает со всеми файлами EML в локальном или удаленном каталоге. Пожалуйста, смотрите отдельноДокументация для EDDTableFromEML.
EDDTable FromInPort
Этот специальный EDDType генерируетdatasets.xmlчтобы сделатьEDDTableFromAsciiFilesнабор данных из информации винпорт-хмлФайл. Если вы можете получить доступ к исходному файлу данных (файл inport-xml должен иметь подсказки, где его найти) Вы можете создать рабочий набор данных вERDDAP.
Следующие шаги описывают, как использовать наборы данных Xml с файлом inport-xml, чтобы получить рабочий набор данныхERDDAP.
- Если у вас есть доступ к файлу inport-xml (URL или локальный файл) Скачать GenerateDatasets Xml, укажите EDDType=EDDTableFromInPort, укажите URL-адрес inport-xml или полное имя файла, укажите, какой ребенок=0, и укажите другую запрашиваемую информацию (если известно) . (На данный момент вам не нужно иметь файл исходных данных или указывать его имя.) Настройка whatChild=0 сообщает наборы данных Xml записывает информацию для все из<информация о сущности-атрибуте><в файле inport-xml (Если есть какие-либо) . Он также распечатывает сводку справочной информации, включая все скачиваемые URL-адреса, перечисленные в файле inport-xml.
- Просмотрите всю эту информацию (Справочная информация, которая генерирует наборы данных Принты Xml) Посетить download-url (s) Чтобы попытаться найти исходный файл данных (s) . Если вы можете найти его (их) скачать (их) в каталог, доступный дляERDDAP. (Если вы не можете найти какие-либо исходные файлы данных, нет смысла продолжать.)
- Run Generate скачать Наборы данных Снова XML. Если исходный файл данных соответствует одному из файлов inport-xml<информация о сущности-атрибуте><Сущность>, указать, какой ребенок= Число этой организации (Например, 1, 2, 3, ...) .ERDDAP™будет пытаться сопоставить имена столбцов в файле исходных данных с именами в информации об объекте и предложит принять/отклонить/исправить любые расхождения. Или, если файл inport-xml не имеет<информация о сущности-атрибуте><Сущность>, указать, какой ребенок = 0.
- В кускеdatasets.xmlПроизводитель: GenerateDatasets Xml, revise [глобальный]<addAttributes> (#глобальные атрибуты) по мере необходимости/желания.
- В кускеdatasets.xmlЭто сделано GenerateDatasetsXml, добавьте/пересмотрите [<dataVariable> (#datavariable) информацию по мере необходимости/желания для описания каждой из переменных. Убедитесь, что вы правильно определили каждую переменную. [править]<sourceName> (#sourcename) (Как видно из источника) , [править]<destinationName> (#назначение) (которые имеют больше ограничений, чем разрешенные персонажи.sourceName) , [править]<единицы> (#единицы) (Особенно если это апеременная времени или метки временигде необходимо указать формат) и [править]<missing\_value> (#missing_value) ,
- Когда вы близки к завершению, неоднократно используйтеDasDdsинструмент для быстрого определения того, является ли описание набора данных действительным и появится ли набор данных вERDDAP™Как ты хочешь.
Было бы здорово, если бы группы, использующие InPort для документирования своих наборов данных, также использовали быERDDAP™Чтобы сделать реальные данные доступными:
- ERDDAP™Это решение, которое можно использовать прямо сейчас, чтобы вы могли выполнить его.NOAA?Публичный доступ к результатам исследований (ПАРР) требованияПрямо сейчас, а не в какое-то неопределенное время в будущем.
- ERDDAP™Это делает данные доступными для пользователей, а не только метаданные. (Что такое метаданные без данных?)
- ERDDAP™Поддерживает метаданные (В частности, единицы переменных) В отличие от некоторых других рассматриваемых серверов данных. (Чем хороши данные без метаданных?) Использовать программное обеспечение, которое не поддерживает метаданные, означает приглашать данные к неправильному пониманию и неправильному использованию.
- ERDDAP™Это бесплатное программное обеспечение с открытым исходным кодом, в отличие от некоторых других рассматриваемых программ. Постоянное развитиеERDDAP™Уже оплачено. ПоддержкаERDDAP™Пользователи свободны.
- ERDDAPВнешний вид может быть легко настроен, чтобы отразить и выделить вашу группу. (не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™Группа Google.
AddFillValueАтрибуты
Этот специальный вариант EDDType не является типом набора данных. Это инструмент, который может добавлять атрибуты \_FillValue к некоторым переменным в некоторых наборах данных. Видишь?AddFillValueАтрибуты.
Найти дубликаты Время
Этот специальный вариант EDDType не является типом набора данных. Вместо этого он сообщает наборы данных Xml для поиска по коллекции сетчатых.nc (связанный) Файлы для поиска и распечатки списка файлов с дублирующими значениями времени. Когда он смотрит на временные значения, он преобразует их из исходных единиц в"seconds since 1970-01-01"В случае, если разные файлы используют разные строки блоков. Вы должны предоставить стартовый каталог (с или без клещей) , имя файла регулярное выражение (Например, .\*\.nc ) и имя переменной времени в файлах.
слияние
Этот специальный вариант EDDType не является типом набора данных. Вместо этого он сообщает наборы данных Xml для печатислияниеподобная распечатка одной.nc,.ncмл, или.hdfФайл. Он использует netcdf-java.NCdumpЭто более ограниченный инструмент, чем C-версия NCdump. Если вы используете эту опцию, GenerateDatasetsXml попросит вас использовать один из вариантов: «-h» (заголовок) "-с" (координаты vars) "Вальс" (по умолчанию) , "-v var1;var2", "-v var1" (0,0:10,0:20) ". Это полезно, потому что без ncdump трудно понять, что находится в одном месте..nc,.ncмл, или.hdfфайл и, таким образом, какой EDDType вы должны указать для GenerateDatasets Хмл. Для одного.ncфайл мл, это напечатает вывод ncdump для результата.ncИзменения файла мл, применяемые к базовому.ncили.hdfФайл.
DasDds
- DasDds Программа командной строки, которую вы можете использовать после того, как вы создали первую попытку 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 остановится и покажет вам сообщение об ошибке для первой обнаруженной ошибки.
Не пытайтесь угадать, в чем может быть проблема. Внимательно прочитайте сообщение.
При необходимости прочитайте предыдущие диагностические сообщения, чтобы найти больше подсказок и информации. - Измените набор данных XML, чтобы попытаться решить эту проблему.
И пусть DasDds снова попытаются создать набор данных. - Если вы неоднократно решаете каждую проблему, вы в конечном итоге решите все проблемы.
и набор данных будет загружаться.
- Все выходы DasDds (диагностика и результаты) написаны на экране и BigParent Директория /logs/DasDds.log.
- Если DasDds может создать набор данных, то DasDds покажет вам.das (Структура атрибутов набора данных) ,.dds (Описатель набора данных Структура) иПробелы во времени (временные промежутки) информацию для набора данных на вашем экране и запишите их на BigParent Директория /logs/DasDds.out.
- Часто вам нужно внести небольшие изменения в XML набора данных, чтобы очистить метаданные набора данных и перезапустить DasDds.
Бонус Инструмент третьей стороны:ERDDAP- кремень
ERDDAP-lint - это программа от Роба Фуллера и Адама Лидбеттера из Ирландского института морской пехоты, которую вы можете использовать для улучшения метаданных.ERDDAP™наборы данных.ERDDAP-lint "содержит правила и простое статическое веб-приложение для проведения некоторых тестов проверки против вашегоERDDAP™Сервер. Все тесты проводятся в веб-браузере". Как будто[Инструмент Unix/Linux](https://en.wikipedia.org/wiki/Lint_(software)Вы можете изменить существующие правила или добавить новые. Видишь?ERDDAP- кременьЗа дополнительной информацией.
Этот инструмент особенно полезен для наборов данных, которые вы создали некоторое время назад и теперь хотите обновить свои текущие настройки метаданных. Ранние версии GenerateDatasets Xml не приложила никаких усилий для создания глобальной сети.creator\_name,creator\_emailСоздатель_тип, илиcreator\_urlметаданные. Вы можете использоватьERDDAP- идентифицировать наборы данных, в которых отсутствуют эти атрибуты метаданных.
Спасибо Робу и Адаму за то, что создали этот инструмент и сделали его доступным для всех.ERDDAP™сообщество.
Основная структура этогоdatasets.xmlФайл
Необходимые и необязательные теги, разрешенные вdatasets.xmlфайл (Сколько раз они могут появляться) показаны ниже. На практике вашdatasets.xmlУ них будет много<теги dataset> и используйте только другие теги внутри<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.
XInclude
Новая версия 2.25 поддерживает XInclude. Для этого необходимо использовать SAX-парсер.<Использование SaxParser>Правда</useSaxParser> в setup.xml. Это позволяет записывать каждый набор данных в свой файл, а затем включать их все в основной файл.datasets.xmlповторно использовать части определений набора данных или и то, и другое. Если вы хотите увидеть пример,EDDTestDataset.javaXInclude для повторного использования переменных определений.
Заметки
Работая сdatasets.xmlФайл является нетривиальным проектом. Пожалуйста, внимательно прочитайте все эти заметки. После того, как вы выберететип набора данныхПожалуйста, внимательно прочитайте подробное описание.
Выбор типа набора данных
В большинс тве случаев есть только одинERDDAP™Тип набора данных, который подходит для данного источника данных. В некоторых случаях (например,.ncфайлы) Есть несколько вариантов, но обычно один из них определенно лучше. Первое и самое важное решение, которое вы должны принять: целесообразно ли рассматривать набор данных как группу многомерных массивов. (Если так, то посмотритеEDDGridТипы наборов данных) или в виде таблицы данных, подобной базе данных (Если так, то посмотритеТипы наборов данных EDDTable) .
Обслуживание данных как есть
Обычно нет необходимости изменять источник данных. (Например, конвертировать файлы в другие типы файлов) так чтоERDDAP™Может служить. Одно из предположений оERDDAP™Источник данных будет использоваться как есть. Обычно это работает хорошо. Некоторые исключения:
- Реляционные базы данных и Кассандра -ERDDAP™Он может обслуживать данные непосредственно из реляционных баз данных и Cassandra. Но из-за проблем с безопасностью, балансировкой нагрузки и производительностью вы можете настроить другую базу данных с теми же данными или сохранить эти данные.NetCDFv3.ncФайлы и иметьERDDAP™обслуживать данные из нового источника данных. Видишь?EDDTable FromDatabaseиEDDTable From Кассандра.
- Не поддерживаемые источники данных -ERDDAP™Может поддерживать большое количество типов источников данных, но мир заполнен 1000-ми годами. (миллионов?) Различные источники данных (В частности, структуры файлов данных) . ЕслиERDDAP™Не поддерживает источник данных:
- Если источником данных являетсяNetCDF .ncФайлы, которые вы можете использоватьNcMLизменять файлы данных на лету или использоватьNCOпостоянно изменять файлы данных.
- Вы можете записать данные в тип источника данных, которыйERDDAP™Поддержка.NetCDF-3.ncФайлы являются хорошей общей рекомендацией, потому что они являются двоичными файлами.ERDDAP™Можно читать очень быстро. Для табличных данных рассмотрите возможность хранения данных в коллекции.ncФайлы, которые используютCF Дискретная геометрия выборки (DSG) Структуры данных Ragged Array и так могут обрабатыватьсяERDDAP?EDDTable FromNcCFFiles). Если они логически организованы (Каждый с данными для куска пространства и времени) ,ERDDAP™Они могут быстро извлекать из них данные.
- Вы можете запросить поддержку этого источника данных.ERDDAP™По электронной почте Крис. Джон на noaa.gov.
- Вы можете добавить поддержку этого источника данных, написав код для его обработки самостоятельно. Видишь?тотERDDAP™Руководство программиста
- Скорость.ERDDAP™Они могут считывать данные из одних источников гораздо быстрее, чем из других. Например, чтениеNetCDFv3.ncСчитывание файлов ASCII происходит медленнее. Если есть большой (1000) или огромный (10 000) количество исходных файлов данных,ERDDAP™Они будут реагировать на запросы данных медленно. Обычно разница не заметна для людей. Однако, если вы думаетеERDDAP™медленный для данного набора данных, вы можете решить проблему, написав данные для более эффективной настройки (обычно: несколько, хорошо структурированных,NetCDFv3.ncфайлы) . Для табличных данных см.Этот совет.
подсказка
Часто проще создать XML для набора данных, сделав копию рабочего описания набора данных в dataset.xml, а затем изменив его.
Кодирование специальных символов
С тех порdatasets.xmlXML-файл, который вы должныи кодировать"&",<", и ">" в любом содержании как "&",<", и ">". Неправильно:<Название Время и приливы</название> Правильно:<Название Time & - Приливы</название>
XML не терпит синтаксических ошибок
После редактирования файла dataset.xml рекомендуется проверить, что результатХорошо сформированный XMLпутем вставки текста XML в XML-проверку какxmlvalidation.
Устранение неполадок Советы
- Другие способы диагностики проблем с наборами данных
Помимо двух основныхИнструменты, - log.txtЭто лог-файл со всемиERDDAPДиагностические сообщения.
- TheЕжедневный отчетимеет больше информации, чем страница статуса, включая список наборов данных, которые не загружались, и исключения (ошибки) Они генерируются.
- TheСтраница статусаЭто быстрый способ проверитьERDDAPстатус от любого веб-браузера. Он включает в себя список наборов данных, которые не загружались. (Хотя и не соответствующие исключения) Задачи и задачиСтатистика (показать прогрессEDDGridКопияиEDDTableCopyнаборы данных и любыеEDDGridИз материаловилиEDDTable Из материаловнаборы данных, которые используюткэш FromUrl (Но не кэш SizeGB) ) .
- Если вы застряли, посмотрите нашРаздел о дополнительной поддержке.
Специальные переменные
- Долгота, широта, высота (или глубина) и время (LLAT) переменный destinationNameОни особенные.
- В целом:
- Переменные LLAT известныERDDAP™Если переменная оси (дляEDDGridнаборы данных) переменная данных (Для наборов данных EDDTable) destinationNameэто «долгота», «широта», «высота», «глубина», или"time".
- Мы настоятельно рекомендуем вам использовать эти стандартные имена для этих переменных, когда это возможно. Ни один из них не требуется. Если вы не используете эти переменные имена,ERDDAP™Они не признают их значения. Например, переменные LLAT обрабатываются специально с помощью Make A Graph. ( datasetID граф) Если переменная оси X является «долготой», а переменная оси Y — «широтой», вы получите карту. (использование стандартной проекции, а также маски, политических границ и т.д.) Вместо графа.
- ERDDAP™автоматически добавит много метаданных в переменные LLAT; (Например, "ioos\_category","единицы", а также несколько связанных со стандартами атрибутов, таких как "\_CoordinateAxisType") .
- ERDDAP™автоматически будет добавлять множество глобальных метаданных, связанных со значениями LLAT выбранного подмножества данных; (Например, "геопространственный_lon_min") .
- Клиенты, которые поддерживают эти стандарты метаданных, смогут использовать добавленные метаданные для размещения данных во времени и пространстве.
- Клиентам будет проще генерировать запросы, которые включают переменные LLAT, потому что имена переменных одинаковы во всех соответствующих наборах данных.
- Для переменной «долгота» и переменной «широта»:
- ИспользуйтеdestinationNames «долгота» и «широта», только еслиединицыЭто градусы востока и севера соответственно. Если ваши данные не соответствуют этим требованиям, используйте разные имена переменных. (Например, x, y, lonRadians, latRadians) .
- Если у вас есть данные о долготе и широте, выраженные в разных единицах и, следовательно, с разными значениями.destinationNames, например, lonRadians и latRadians, Make a Graph ( datasetID граф) Сделаем графики (Например, временные ряды) Вместо карт.
- Для переменной «высота» и переменной «глубина»:
- ИспользуйтеdestinationName«Высота» для определения расстояния данных над уровнем моря (Положительные = «высшие» значения) . Вы можете использовать «высоту» для расстояний ниже уровня моря, если значения отрицательны ниже уровня моря (или если вы используете, например, [править]<Att name=""scale\_factor"тип="int">- 1 1</att> (#scale-фактор) Преобразование значений глубины в значения высоты.
- ИспользуйтеdestinationName"глубина" для определения расстояния данных ниже уровня моря (Положительные = "низовые" значения) .
- Набор данных может не иметь переменных «высота» и «глубина».
- Для этих переменных именединицыдолжны быть «м», «метр» или «метры». Если единицы отличаются (Например, фетомы) Вы можете использовать [править]<Att name=""scale\_factor" некоторые ценность </att> (#scale-фактор) и<Att name="units">meters</att> (#единицы) Преобразовать единицы в метры.
- Если ваши данные не соответствуют этим требованиям, используйте другойdestinationName (Например, над землей, расстояние Внизу) .
- Если вы знаете вертикальный CRS, пожалуйста, укажите его в метаданных, например, "EPSG:5829" (мгновенная высота над уровнем моря) "EPSG:5831" (мгновенная глубина ниже уровня моря) Или "EPSG:5703" (высота NAVD88) .
- Для"time"переменная:
- ИспользуйтеdestinationName "time"только для переменных, которые включают всю дату + время (Дата, если это все, что есть) . Если, например, существуют отдельные столбцы для даты и времени OfDay, не используйте имя переменной."time".
- Видишь?единицыдля получения дополнительной информации об атрибутах единиц времени и переменных времени.
- Временная переменная и связанные с нейвремя Шта мповые переменныеОни уникальны тем, что всегда преобразуют значения данных из временного формата источника. (Что бы это ни было) в численное значение (секунды с 1970-01-01T00:00:00Z) или струнное значение (ISO 8601:2004 (Е) формат) В зависимости от ситуации.
- Когда пользователь запрашивает данные времени, он может запросить их, указав время в качестве числового значения. (секунды с 1970-01-01T00:00:00Z) или струнное значение (ISO 8601:2004 (Е) формат) .
- ERDDAP™имеет полезность дляПреобразовать числовой Время в/из струнного времени.
- Видишь?КакERDDAPСделки со временем.
Почему только две основные структуры данных?
- Поскольку клиентам-людям и компьютерным клиентам трудно иметь дело со сложным набором возможных структур набора данных,ERDDAP™использует только две основ ные структуры данных:
- асетчатая структура данных (Например, для спутниковых данных и данных моделей) и
- аСтруктура табличных данных (Например, для буя in-situ, станции и данных траектории) .
- Конечно, не все данные могут быть выражены в этих структурах. Таблицы, в частности, являются очень гибкими структурами данных. (Посмотрите на успех программ реляционных баз данных) .
- Это облегчает создание запросов данных.
- Это делает ответы на данные простой структурой, что облегчает обслуживание данных в более широком спектре типов стандартных файлов. (Часто они поддерживают простые структуры данных.) . Это главная причина, по которой мы создалиERDDAP™сюда.
- Это, в свою очередь, облегчает нам (или кто-либо) Написать клиентское программное обеспечение, которое работает со всемиERDDAP™наборы данных.
- Это облегчает сравнение данных из разных источников.
- Мы знаем, что если вы привыкли работать с данными в других структурах данных, вы може те изначально подумать, что этот подход является упрощенным или недостаточным. Но все структуры данных имеют компромиссы. Никто не идеален. Даже структуры do-it-all имеют свои недостатки: работа с ними сложна, и файлы могут быть написаны или прочитаны только с помощью специальных библиотек программного обеспечения. Если вы принимаетеERDDAPПодход достаточно, чтобы попытаться работать с ним, вы можете обнаружить, что он имеет свои преимущества. (Поддержка нескольких типов файлов, которые могут содержать ответы данных) . TheERDDAP™слайд-шоу (В частности,Структуры данных сливаются) Много говорят по этим вопросам.
- И даже если этот подход кажется вам странным, большинствоERDDAP™Клиенты никогда не заметят — они просто увидят, что все наборы данных имеют хорошую простую структуру, и они будут благодарны за то, что они могут получать данные из самых разных источников, возвращаемых в самых разных форматах файлов.
Размеры
- Что, если переменные сетки в исходном наборе данных не имеют одинаковых переменных оси?
вEDDGridВсе переменные данных должны использоваться (доля) Все переменные оси. Таким образом, если исходный набор данных имеет некоторые переменные с одним набором измерений и другие переменные с другим набором измерений, вам придется сделать два набора данных.ERDDAP. Например, вы можете сделать одинERDDAP™Оригинальное название: Some Title (на поверхности) "для удержания переменных, которые просто используют\[время\]\[широта\]\[долгота\]Размеры и сделать другойERDDAP™Оригинальное название: Some Title (на глубинах) "для удержания переменных, которые используют\[время\]\[высота\]\[широта\]\[долгота\]. Или, возможно, вы можете изменить источник данных, чтобы добавить измерение с одним значением. (Например, высота = 0) Чтобы переменные были последовательными.
ERDDAP™не обрабатывает более сложные наборы данных (Например, модели, которые используют сетку треугольников.) Хорошо. Вы можете использовать эти наборы данных вERDDAP™путем создания двух или более наборов данных вERDDAP™ (чтобы все переменные данных в каждом новом наборе данных имели одинаковый набор переменных оси) Но это не то, чего хотят пользователи. Для некоторых наборов данных вы можете рассмотреть возможность создания обычной сетчатой версии набора данных и предложить ее в дополнение к исходным данным. Некоторые клиентские программы могут работать только с обычной сетью, поэтому, делая это, вы получаете дополнительных клиентов.
Проектируемые сетчатые данные
Некоторые сетевые данные имеют сложную структуру. Спутниковый уровень 2 ("Вдоль трассы") Данные не используют простой прогноз. Модели (и другие) Часто работает с сетчатыми данными по различным нецилиндрическим проекциям. (Например, конический, полярный стереографический, треугольный) или в неструктурированных сетях (Более сложная структура данных) . Некоторые конечные пользователи хотят, чтобы эти данные были такими, как есть, поэтому нет потери информации. Для таких клиентов,ERDDAP™Данные могут служить, как есть, только еслиERDDAP™Администратор разбивает исходный набор данных на несколько наборов данных, причем каждая часть включает переменные, которые разделяют одни и те же переменные оси. Да, это кажется странным для вовлеченных людей, и это отличается от большинства других.OPeNDAPСерверы. НоERDDAP™Особое внимание уделяется обеспечению доступности данных во многих форматах. Это возможно потому, чтоERDDAP™требует более однородной структуры данных. Хотя это немного неловко (т.е. отличается от ожидаемого) ,ERDDAP™Может распространять прогнозируемые данные.
\[Да,ERDDAP™Они могут иметь более свободные требования к структуре данных, но сохраняют требования к выходным форматам. Но это приведет к путанице среди многих пользователей, особенно новичков, поскольку многие, казалось бы, действительные запросы на данные с различными структурами будут недействительными, потому что данные не будут вписываться в тип файла. Мы продолжаем возвращаться к дизайну системы.\]
Некоторым конечным пользователям нужны данные в lat lon цилиндрической проекции, такой как Equirectangular / plate carrée или Mercator, для удобства использования в различных ситуациях. В таких случаях мы поощряемERDDAP™Администратор использует другое программное обеспечение (NCO?Matlab? Р? IDV? ...?) Перепроецировать данные на географическую (Трехугольная проекция / пластина carrée) или другой цилиндрической проекции и служат этой форме данных вERDDAP™как другой набор данных. Это похоже на то, что делают люди, когда преобразуют данные спутникового уровня 2 в данные уровня 3. Одним из таких инструментов являетсяNCOкоторый предлагает варианты расширения для регидирования да нных.
ГИС и перепроектирование данных
Поскольку ГИС-мир часто ориентирован на карты, ГИС-программы обычно предлагают поддержку перепроектирования данных, т.е. построения данных на карте с другой проекцией.
В настоящее времяERDDAP™Не имеет инструментов для репроектирования данных. Вместо этого мы рекомендуем использовать внешний инструмент для создания варианта набора данных, где данные были перепроецированы из первоначальной формы на прямоугольную форму. (широта долготы) подходящий дляERDDAP.
По нашему мнению, CF/DAPМир немного отличается от мира ГИС и работает на несколько более низком уровне.ERDDAP™Это отражается. В общем,ERDDAP™Предназначен для работы в основном с данными (Не карты) И не хочет меняться (Например, репроект) Эти данные. ДляERDDAP™, сетчатые данные часто/обычно/предпочтительно связаны со значениями lat lon и цилиндрической проекцией, а не с значениями x,y некоторой проекции. В любом случае,ERDDAP™Он ничего не делает с проекцией данных; он просто передает данные через, как и его текущая проекция, на теорию, что репроекция является значительным изменением данных.ERDDAP™Они не хотят быть вовлеченными в значительные изменения. Кроме того, последующие пользователи могут наивно перепроектировать данные снова, что будет не так хорошо, как просто сделать одну репроекцию. (Так что, еслиERDDAP™Администратор хочет предложить данные в другом прогнозе, отлично; просто перепроектируйте данные в автономном режиме и предложите их в виде другого набора данных.ERDDAP. Множество спутниковых наборов данных предлагаются в качестве так называемого уровня 2. (полоса) и как уровень 3 (Двухугольная проекция) версии.) КогдаERDDAP™Делает карты (напрямую или черезWMSили KML) ,ERDDAP™В настоящее время предлагается делать карты только с проекцией Equirectangular / plate carrée, которая, к счастью, принята большинством картографических программ.
Мы поощряемERDDAP™администраторы используют другое программное обеспечение (NCO?Matlab? Р? IDV? ...?) Перепроецировать данные на географическую (Трехугольная проекция / пластина carrée) или другой цилиндрической проекции и служат этой форме данных вERDDAP™как другой набор данных. Это похоже на то, что делают люди, когда преобразуют данные спутникового уровня 2 в данные уровня 3. Одним из таких инструментов являетсяNCOкоторый предлагает варианты расширения для регидирования данных.
Мы надеемся, чтоERDDAP™В будущем будут созданы встроенные инструменты для создания карт с другими проекциями. Мы также надеемся на улучшение связей с ГИС в будущем. (кроме текущегоWMSобслуживание) . Страшно, что в этом "современном" мире связи между КФ/DAPМир и ГИС все еще очень слабы. Обе эти вещи находятся в списке дел. (Если вы хотите помочь, особенно с подключениемERDDAP™MapServer, пожалуйста, напишите Крису. Джон на noaa.gov.)
Типы данных
ERDDAP™Поддержива ет следующие типы данных (имена являются деликатными;'u'Префикс означает «неподписанный»; число многих имен в других системах — это число битов.) :
байт
- байт подписанные целочисленные значения с диапазоном от -128 до 127. В других системах это иногда называют int8. Это называется «tinyint» от SQL и Cassandra. ERDDAP™конвертироватьбулевыйиз некоторых источников (Например, SQL и Cassandra) в байтах вERDDAP™с значением 0 = ложное, 1 = истинное и 127 =missing\_value.
убайт
- убайт имеет неподписанные целые значения с диапазоном от 0 до 255. В других системах это иногда называют uint8.
короткий
- короткий имеет целочисленные значения с диапазоном от -32768 до 32767. В других системах это иногда называют int16. Это называется «smallint» от SQL и Cassandra.
низкорослый
- низкорослый имеет неподписанные целые значения с диапазоном от 0 до 65535. В других системах это иногда называют uint16.
инт
- инт подписанные целочисленные значения с диапазоном от -2147483648 до 2147483647. В других системах это иногда называют int32. Это называется "целое число"|числовой (?) "по SQL" и "внутри" по Кассандре.
uint
- uint имеет неподписанные значения целого числа с диапазоном от 0 до 4294967295. В других системах это иногда называют uint32.
длинный
- длинный имеет подписанные целочисленные значения с диапазоном -9223372036854775808 до 9223372036854775807. В других системах это иногда называют int64. Это называется "бигинта"|числовой (?) "по SQL и "бигинту" Кассандры". Поскольку многие типы файлов не поддерживают длинные данные, их использование не рекомендуется. По возможности используйте двойной (см. ниже) .
улун
- улун имеет неподписанные целые числа с диапазоном от 0 до 18446744073709551615 В других системах это иногда называют uint64. Поскольку многие типы файлов не поддерживают данные, их использование не рекомендуется. По возможности используйте двойной (см. ниже) .
плавать
- плавать IEEE 754 плавает с диапазоном приблизительно +/- 3.402823466e+38. В других системах это иногда называют float32. Это называется "реальным".|плавать (?) |десятичный (?) |числовой (?) «SQL» и «Float» Кассандра. Особое значение NaN означает Не-число. ERDDAP™Преобразует положительные и отрицательные значения бесконечности в NaN.
дво йной
- двойной IEEE 754 двойной с диапазоном приблизительно +/- 1,7976931348623157E+308. В других системах это иногда называют float64. Это называется «двойной точностью».|плавать (?) |десятичный (?) |числовой (?) "по SQL и "двойной" по Кассандре". Особое значение NaN означает Не-число. ERDDAP™Преобразует положительные и отрицательные значения бесконечности в NaN.
шар
- шар Одиночный, 2 байт (16-битный) Уникальный код UCS-2варьировать от\u0000 (#0) через\uffff (#65535) . \uffffОпределение не-характерно, аналогично двойному значению NaN. Использование char не рекомендуется, потому что многие типы файлов либо не поддерживают чары, либо поддерживают только 1-байтовые чары. (см. ниже) . Подумайте об использовании струн вместо этого. Пользователи могут использовать переменные char для создания графиков.ERDDAP™преобразует символы в их кодовый номер Unicode, который может использоваться в качестве числовых данных.
Струна
- Струна представляет собой последовательность 0 или более, 2 байта (16-битный) Unicode UCS-2 символы. ERDDAP™использует/интерпретирует 0-длинную строку как недостающее значение.ERDDAP™Он не поддерживает настоящую нулевую строку. Теоретическая максимальная длина струн составляет 2147483647 символов, но, вероятно, в разных местах существуют различные проблемы даже с несколько более короткими струнами. ИспользоватьERDDAPString for SQL's character, varchar, character varying, binary, varbinary, interval, array, multiset, xml, and any other database data type that doesn't fit cleanly with any otherERDDAP™Тип данных. ИспользоватьERDDAPСтруна для "текста" Кассандры и любого другого типа данных Кассандры, который не соответствует чисто ни одному другомуERDDAP™Тип данных.
ПередERDDAP™v2.10,ERDDAP™Он не поддерживал неподписанные целочисленные типы внутри и предлагал ограниченную поддержку в своих считывателях данных и авторах.
Ограничения типа данных
Вы можете думать оERDDAP™как система, которая имеет виртуальные наборы данных и которая работает путем считывания данных из источника набора данных во внутреннюю модель данных и записи данных в различные службы (например,(OPeN)DAP,WMS) и типы файлов в ответ на запросы пользователей.
- Каждый считыватель ввода поддерживает подмножество типов данных, которыеERDDAP™Поддержка. Читать данные вERDDAPВнутренние структуры данных не являются проблемой.
- Каждый автор вывода также поддерживает подмножество типов данных. Это проблема, потому чтоERDDAPНапример, нужно втиснуть длинные данные в типы файлов, которые не поддерживают длинные данные.
Ниже приведены объяснения ограничений (или нет) различных авторов и какERDDAP™занимается решением проблем. Такие осложнения являются неотъемлемой частьюERDDAPЦель - сделать разрозненные системы совместимыми.
АССИИ
- АССИИ (.csv,.tsvи т.д.) текстовые файлы -
-
Все числовые данные записываются через представление струн. (с отсутствующими значениями данных, появляющимися в виде строк 0-длины) .
-
ХотяERDDAP™правильно записывает длинные и длинные значения в текстовые файлы ASCII, многие читатели (Например, программы электронных таблиц) Они не могут правильно обращаться с длинными и длинными значениями и вместо этого преобразовывать их в двойные значения. (потеря точности в некоторых случаях) .
-
Данные Char и String записываются через JSON Strings, которые обрабатывают все символы Unicode. (Примечательно, что «необычные» персонажи за пределами ASCII #127, например, евро-персонаж появляется как «\u20ac».) .
-
Джон
- Джон (.json,.jsonlCSVи т.д.) текстовые файлы -
- Все числовые данные записываются через его струнное представление.
- Данные Char и String записываются как JSON Strings, которые обрабатывают все символы Unicode. (Примечательно, что «необычные» персонажи за пределами ASCII #127, например, евро-персонаж появляется как «\u20ac».) .
- Недостающие значения для всех типов числовых данных выглядят как нуль.
.nc3 Файлы
- .nc3 файла изначально не поддерживают неподписанные целочисленные типы данных. До CF v1.9 CF не поддерживал неподписанные целые типы. Чтобы справиться с этим,ERDDAP™2.10+ следует стандарту NUG и всегда добавляет атрибут «\_Unsigned» со значением «истинно» или «ложно», чтобы указать, являются ли данные из неподписанной или подписанной переменной. Все целочисленные атрибуты пишутся как подписанные атрибуты. (например, байт) с подписанными значениями (например, убайт)actual\_rangeАтрибут со значениями от 0 до 255, появляется как байтовый атрибут со значениями от 0 до -1 (обратное значение комплемента двух значений вне диапазона). Нет простого способа узнать, какие целочисленные атрибуты следует читать как неподписанные атрибуты.ERDDAP™Поддерживает атрибут «\_Unsigned» при чтении.nc3 файла.
- .nc3 файла не поддерживают длинные или длинные типы данных.ERDDAP™Это происходит путем временного преобразования их в двойные переменные. Двойники могут точно представлять все значения до +/- 9 007 199 254 740 992 Что составляет 253. Это несовершенное решение.UnidataОтказывается от незначительного обновления до.nc3 для решения этой и связанных с ней проблем, ссылаясь.nc4.4 (серьезное изменение) как решение.
- Спецификация CF (до v1.9) Он сказал, что поддерживает тип данных char, но неясно, предназначен ли char только в качестве строительных блоков char-массивов, которые фактически являются струнами. Вопросы к их списку рассылки давали только запутанные ответы. Из-за этих осложнений лучше всего избегать переменных шара.ERDDAP™Используйте струнные переменные, когда это возможно.
- Традиционно,.nc3 файла поддерживают только строки с кодировкой ASCII (7-битный, #0 - #127) персонажей. Нюг (иERDDAP) расширить (Начало 2017) путем включения атрибута "\_Encoding" со значением "ISO-8859-1" (Расширение ASCII, которое определяет все 256 значений каждого 8-битного символа.) или «UTF-8», чтобы указать, как кодируются данные строки. Другие кодировки могут быть законными, но не рекомендуется.
.nc4 Файлы
- .nc4 файла поддерживают всеERDDAPТипы данных.
Файлы NCCSV
Файлы NCCSV 1.0 не поддерживают неподписанные целые типы данных. NCCSV 1.1+ файлыПоддержка всех неподписанных целочисленных типов данных.
DAP
- (OPeN)DAP (.das, .dds, .asc ASCII файлы и .dods двоичные файлы) -
- (OPeN)DAPПравильно обрабатывает короткие, короткие, int, uint, плавающие и двойные значения.
- (OPeN)DAPимеет «байтовый» тип данных, который он определяет как неподписанный, в то время как исторически THREDDSERDDAP™Обработали «байт» как подписанный в их(OPeN)DAPуслуг. Чтобы справиться с этим лучше,ERDDAP™2.10+ следует стандарту NUG и всегда добавляет атрибут «\_Unsigned» со значением «истинно» или «ложно», чтобы указать, являются ли данные тем, чтоERDDAP™Звонок байт или убайт. Все байтовые и убайтовые атрибуты записываются как «байтовые» атрибуты с подписанными значениями (например, убайт).actual\_rangeАтрибут со значениями от 0 до 255, появляется как байтовый атрибут со значениями от 0 до -1 (обратное значение комплемента двух значений вне диапазона). Не существует простого способа узнать, какие «байтовые» атрибуты следует читать как атрибуты убайт.
- (OPeN)DAPне поддерживает подписанные или неподписанные долги.ERDDAP™Это происходит путем временного преобразования их в двойные переменные и атрибуты. Двойники могут точно представлять все значения до 9 007 199 254 740 992. Что составляет 253. Это несовершенное решение.OPeNDAP (организация) Отказывается от незначительного обновления доDAP2.0 для решения этой и связанных с ней проблем, ссылаясь наDAP4.4 (серьезное изменение) как решение.
- Потому что(OPeN)DAPне имеет отдельного типа данных и технически поддерживает только 1-байтовые символы ASCII; (#0 - #127) В строках переменные данных шара будут отображаться как строки длиной 1 символ в(OPeN)DAP.das, .dds и .dods ответы.
- Технически, это(OPeN)DAPСпецификация поддерживает только строки с символами, кодируемыми ASCII (#0 - #127) . Нюг (иERDDAP) расширить (Начало 2017) путем включения атрибута "\_Encoding" со значением "ISO-8859-1" (Расширение ASCII, которое определяет все 256 значений каждого 8-битного символа.) или «UTF-8», чтобы указать, как кодируются данные строки. Другие кодировки могут быть законными, но не рекомендуется.
Комментарии типа данных
- Из-за плохой поддержки длинных, ulong и char данных во многих типах файлов, мы не рекомендуем использовать эти типы данных в других форматах.ERDDAP. Когда это возможно, используйте двойной вместо длинного и длинного, и используйте струну вместо чар.
- Метаданные - потому что(OPeN)DAPРеакции .das и .dds не поддерживают длинные или длинные атрибуты или типы данных. (Вместо этого покажите их как двойники.) Вместо этого вы можете использоватьERDDAPтабличное представление метаданных, как видно изhttp.../erdap/ информация / 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Метаданные доступны только для табличных наборов данных) которые поддерживают все типы данных (В частности, длинный, улун и чар) .
Медиафайлы
Не все данные представляют собой массивы цифр или текстов. Некоторые наборы данных состоят из или включают медиафайлы, такие как изображения, аудио и видео файлы.ERDDAP™Он имеет некоторые специальные функции, которые облегчают пользователям доступ к медиафайлам. Это двухэтапный процесс:
- Сделайте каждый файл доступным через собственный URL-адрес, через систему, которая поддерживает запросы диапазона байтов. Самый простой способ сделать это - поместить файлы в каталог, которыйERDDAP™Имеет доступ. (Если они находятся в контейнере, как.zipфайл, разблокируйте их, хотя вы можете предложить.zipФайлы для пользователей тоже.) Затем сделайтеEDDTable FromFileNamesНабор данных, чтобы сделать эти файлы доступными черезERDDAP™В частности, черезERDDAP?"files"система.
Все файлы доступны через EDDTableFromFileNames иERDDAP?"files"Под держка системыЗапросы на диапазон байтов. Обычно, когда клиент (Например, браузер) Делает запрос на URL, получает весь файл в качестве ответа. Но при запросе диапазона байтов запрос указывает диапазон байтов из файла, и сервер возвращает только эти байты. Это актуально здесь, потому что аудио- и видеоплееры в браузерах работают только в том случае, если доступ к файлу осуществляется через байтовые запросы.
Необязательно: Если у вас есть более одного набора данных с соответствующими медиафайлами, вы можете сделать только один EDDTableFromFileNames, который имеет подпапку для каждой группы файлов. Преимущество заключается в том, что когда вы хотите добавить новые медиафайлы для нового набора данных, все, что вам нужно сделать, это создать новую папку и поместить файлы в эту папку. Папка и файлы будут автоматически добавлены в набор данных EDDTableFromFileNames.
- Необязательно: Если у вас есть набор данных, который включает ссылки на мультимедийные файлы, добавьте его вERDDAP. Например, у вас может быть файл .csv с строкой для каждого раза, когда кто-то видел кита, и столбец, который включает имя файла изображения, связанного с этим наблюдением. Если имя файла изображения является только именем файла, например, Img20141024T192403Z, а не полным URL-адресом, то вам нужно добавить:FileAccessBase Url и/или fileAccessSuffixатрибуты метаданных для этогоdataVariableкоторый определяет базовый URL и суффикс для этих имен файлов. Если вы сделали файлы доступными через EDDTableFromFileNames, URL будет в форме. основание /erddap/файлы datasetID / Например,
<att name="fileAccessBaseUrl">*someBaseURL*</a>
<att name="fileAccessSuffix">.png</a>
Если есть а.zipили другой файл контейнера со всеми медиафайлами, связанными с переменной данных, мы рекомендуем вам также сделать этот файл доступным для пользователей. (См. шаг 1 выше) Затем отождествляем его сFileAccessArchive Урлатрибут.
\[Начинать сERDDAP™v1.82\]Если вы сделаете первый шаг выше (или оба шага) Когда пользователь видитERDDAP™ "files"Система для этого набора данных (или просит видеть подмножество набора данных через.htmlTableЕсли вы сделали второй шаг) ,ERDDAP™Отобразится значок «?» слева от имени файла. Если пользователь парит над этим значком, он увидит всплывающее окно, показывающее изображение, или аудиоплеер, или видеоплеер. Браузеры поддерживают ограниченное количество типов
- изображение (обычно .gif, .jpg и .png) ,
- звук (обычно .mp3, .ogg и .wav) и
- видеофайлы (Обычно это .mp4, .ogv и . веб) .
Поддержка варьируется в зависимости от различных версий различных браузеров на разных операционных системах. Поэтому, если у вас есть выбор, какой тип файла предложить, имеет смысл предложить эти типы.
Или, если пользователь нажимает на и мя файла, отображаемое наERDDAP™Веб-страница, их браузер покажет изображение, аудио или видео файл в качестве отдельной веб-страницы. Это в основном полезно для просмотра очень большого изображения или видео, масштабированного до полного экрана, вместо всплывающего окна.
Работа с файлами AWS S3
Веб-служба Amazon (AWS) является продавцомоблачный сервисуслуг.S3Это система хранения объектов, предлагаемая AWS. Вместо иерархической системы каталогов и файлов традиционной файловой системы (Как жесткий диск в вашем ПК) , S3 предлагает только «ведра», которые содержат «объекты». (Мы позвоним им."files") .
Для файлов ASCII (Например, .csv) ,ERDDAP™Может работать с файлами в ведрах напрямую. Единственное, что вам нужно сделать, это указать<fileDir> для набора данных с использованием определенного формата для ведра AWS, нап ример, https://bucketName.s3.aws-region.amazonaws.com/subdirectory/ . Вы не должны использовать<cacheFromUrl>. Смотрите ниже для деталей.
Но для бинарных файлов (например,.nc.grib, .bufr, и.hdfфайлы) Вы должны использовать<cacheFromUrl> система, описанная ниже.ERDDAPNetcdf-java (которыйERDDAP™Использование для чтения данных из этих файлов) и другое программное обеспечение для научных данных предназначено для работы с файлами в традиционной файловой системе, которая предлагаетуровень блоковДоступ к файлам (который позволяет читать фрагменты файла) S3 предлагает толькофайловый уровень (объект) Доступ к файлам (Что позволяет читать весь файл) . AWS предлагает альтернативу S3Упругий Block Store (ЭБС) ), которая поддерживает доступ к файлам на уровне блоков, но стоит дороже, чем S3, поэтому редко используется для массового хранения больших объемов файлов данных. (Когда люди говорят, что хранят данные в облаке (S3) Это дешево, обычно это сравнение яблок с апельсинами.)
Ведра S3
Содержимое ведра. Ключи. Объекты, ограничители.
Технически, ведра S3 не организованы в иерархическую файловую структуру, как файловая система на компьютере. Ведра содержат только «объекты». (файлы) Каждый из них имеет «ключ». (имя) . Примером ключа в этом ведре Noaa-goes17 является
ABI-L1b-RadC/2019/235/22/OR\\_ABI-L1b-RadC-M6C01\\_G17\\_s20192352201196\\_e20192352203569\\_c20192352204013.nc
URl для этого объекта является
AWS поддерживает небольшие изменения в построении этого URL-адреса.ERDDAP™Для этого нужен конкретный формат:
https://bucketName.s3.region.amazonaws.com/key
Обычно, как и в этом примере, ключевые имена выглядят как иерархический путь плюс имя файла, но технически это не так. Поскольку он является общим и полезным,ERDDAP™Рассматривает ключи с /'s, как если бы они были иерархическим путем плюс имя файла, и эта документация будет относиться к ним как таковым. Если ключи ведра не используются / (например, ключ, похожий на ключ)
ABI-Lib.2018.052.22.OR\_ABI-L1b-RadM2-M3C10\_G16\_20180522247575), далееERDDAP™Мы будем рассматривать весь ключ как длинное имя файла.
Частные vs Публичные ведра - Администратор ведра S3 может сделать ведро и его содержимое публичным или частным. Если публичный, любой файл в корзине может быть загружен любым, кто использует URL для файла. У Amazon естьОткрытые данныеПрограмма, в которой размещены общедоступные наборы данных (включая данные изNOAANASA и USGS) бесплатно и не взимает плату за скачивание файлов из этих ведер. Если ведро является частным, файлы в ведре доступны только авторизованным пользователям, и AWS взимает плату. (Обычно платит владелец ведра.) Загрузка файлов на не-AWS S3 компьютер.ERDDAP™Может работать с данными в государственных и частных ведрах.
Сертификаты AWS
Чтобы сделать так, чтобыERDDAP™Вы можете читать содержимое частных ведер, вам нужны учетные данные AWS, и вам нужно хранить файл учетных данных в стандартном месте.ERDDAP™Вы можете найти информацию. Посмотреть AWS SDKJava2.x документация:Установите учетные данные по умолчанию. (Возможность хранить значения какJavaПараметры командной строки в\[кот\]/bin/setenv.sh может быть хорошим вариантом.)
AWS /файлы
- /files/ Системы TheERDDAP™ /файлы / системапозволяет пользователям загружать исходные файлы для набора данных. Мы рекомендуем включить его для всех наборов данных с исходными файлами, потому что многие пользователи хотят загрузить исходные файлы.
- Если файлы находятся в частном ведре S3, запрос пользователя на загрузку файла будет обработанERDDAP™, который будет считывать данные из файла, а затем передавать их пользователю, тем самым увеличивая нагрузку на ваш файл.ERDDAP™, используя входящую и исходящую полосу пропускания и делая вас (тотERDDAP™администратор) Оплатить сбор за передачу данных в AWS.
- Если файлы находятся в открытом ведре S3, запрос пользователя на загрузку файла будет перенаправлен на URL-адрес AWS S3 для этого файла, поэтому данные не будут проходить через него.ERDDAP™Таким образом, уменьшая нагрузку наERDDAP. Если файлы находятся в открытых данных Amazon (свободный) Общественное ведро, затем вы (тотERDDAP™администратор) Вам не придется платить комиссию за выход данных в AWS. Таким образом, существует большое преимущество, обслуживающее данные от общественности. (не частный) S3 ведра и огромное преимущество в обслуживании данных от Amazon Open Data (свободный) Ведра.
ERDDAP™AWS S3 Buckets
ERDDAP™AWS S3 Buckets
К счастью, после долгих усилийERDDAP™Он имеет ряд функций, которые позволяют ему решать внутренние проблемы, связанные с доступом к файлам на уровне блоков S3:
- \[Отказ от ответственности: Работа с ведрами AWS S3 требует много дополнительной работы. AWS — это огромная экосистема сервисов и функций. Есть чему поучиться. Это требует времени и усилий, но это возможно. Будьте терпеливы, и у вас все получится. Посмотреть/просить о помощи
()Документация AWSСайты вродеСкачать Overflowи регулярной
ERDDAP™Варианты поддержки) если/когда вы застряли.\]
- Трудно даже узнать структуру каталога и имена файлов в ведре S3.ERDDAP™Есть решение этой проблемы: EDDTableFromFileNames имеет специальное приложение.\\(перенаправлено с «OnTheFly»)опция, которая позволяет вам создать набор данных EDDTableFromFileNames, который позволяет пользователям просматривать содержимое ведра S3 (скачать файлы) через набор данных"files"вариант. Есть одинПример этого ниже.
- ERDDAP™Может считывать данные извнешне сжатые файлы данных, так что это нормально, если файлы на S3 хранятся как.gz,.gzip,.bz2, .Z или другие типы файлов данных, сжатых извне, которые могут значительно (2 - 20X) сократить расходы на хранение файлов. Часто нет штрафа за использование сжатых извне файлов, поскольку время сохраняется за счет переноса меньшего файла из S3 в другой файл.ERDDAPпримерно уравновешивает дополнительное время, необходимое дляERDDAP™Декомпрессия файла. Чтобы использовать эту функцию, вам просто нужно убедиться, что набор данных<ФайлNameRegex позволяет использовать тип сжатого файла (Например, путем добавления (|.gz) В конце Регекса) .
- Наиболее распространенный случай, когда у вас естьERDDAP™установленный на вашем компьютере для тестирования / разработки и где набор данных имеет двоичные файлы данных, которые хранятся к ак объекты в корзине S3, один из подходов к получению набора данныхERDDAP™Это:
-
Создайте каталог на вашем компьютере, чтобы хранить несколько тестовых файлов данных.
-
Загрузите два файла данных из источника в созданный вами каталог.
-
ИспользоватьГенерировать наборы данныхXmlЧтобы создать кусокdatasets.xmlдля набора данных на основе двух локальных файлов данных.
-
Убедитесь, что набор данных работает по желаниюDasDdsи/или ваш местныйERDDAP.
Следующие шаги делают копию этого набора данных (кто получит данные из ковша S3) На публикеERDDAP.
-
Копировать кусокdatasets.xmlДля набора данных вdatasets.xmlдля общественностиERDDAP™Это будет служить данным.
-
Создать каталог на публикеERDDAPлокальный жесткий диск для хранения кэша временных файлов. Каталог не будет использовать много дискового пространства (CacheSizeGB ниже) .
-
Изменить значение набора данных<тег fileDir>, чтобы он указывал на каталог, который вы только что создали (Даже если каталог пуст) .
-
Добавитькэш FromUrlтег, который определяет имя ковша набора данных и дополнительный префикс (т.е. директория) В конкретномS3 URL формат, которыйERDDAP™требует.
-
Добавить [<cacheSizeGB> (#cachefromurl) Тег к набору данных xml (Например, 10 является хорошим значением для большинства наборов данных.) рассказыватьERDDAP™Ограничить размер локального кэша (То есть, не пытайтесь кэшировать все удаленные файлы.) .
-
Посмотрите, работает ли это в обществе.ERDDAP. Отметим, что в первый разERDDAP™Загружает набор данных, на загрузку потребуется длительное время, посколькуERDDAP™Необходимо скачать и прочитать все файлы данных.
-
Если набор данных представляет собой огромную коллекцию огромных сетчатых файлов данных, это займет очень много времени и будет непрактичным. В некоторых случаях для сетчатых файлов данных,ERDDAP™Можно извлечь необходимую информацию (Например, точка времени для данных в сетчатом файле данных) От имени файла и избежать этой проблемы. Видишь?Агрегация через Файловые имена.
- необязательно (Но особенно для наборов данных EDDTable FromFiles) Вы можете добавитьnПотокиTag to the dataset чтобы сообщитьERDDAPиспользовать более 1 потока при ответе на запрос пользователя о данных. Это минимизирует последствия задержки, которая возникает, когдаERDDAP™читать файлы данных из (удаленный) AWS S3 вставляется в локальный кэш и (возможно) Декомпрессия их.
AWS 3 Открытые данные
Как частьNOAA?Программа Big Data,NOAAМы сотрудничаем с пятью организациями, включая AWS, чтобы изучить потенциальные преимущества хранения копий ключевых наблюдений и результатов моделей в облаке, чтобы позволить вычислять непосредственно данные без необходимости дальнейшего распространения. AWS включает наборы данных, которые он получаетNOAAв рамках своей программы по предоставлению публичного доступа к большой коллекцииОткрытые данные для AWS S3с любого компьютера, будь то Amazon (арендованный компьютер) Сеть AWS или собственный компьютер в любой сети. Приведенный ниже пример предполагает, что вы работаете с общедоступным набором данных.
Доступ к файлам в AWS S3 Bucket
Для частного ведра данных S3 владелец ведра должен предоставить вам доступ к ветру. (Смотрите документацию AWS.)
Во всех случаях вам понадобится учетная запись AWS, потому что AWS SDK предназначен для работы с клиентами.Java (которыйERDDAP™использует для извлечения информации о содержимом ведра) Требуются учетные данные AWS. (Подробнее об этом ниже)
ERDDAP™Доступ к ведрам AWS S3 возможен только в том случае, если вы указали [<cacheFromUrl> (#cachefromurl) (или)<fileDir>) в определенном формате:
https://bucketName.s3.aws-region.amazonaws.com/prefix/
где
- Имя ведра - это краткая форма названия ведра, например, noaa-goes17.
- Aws-область, например, us-east-1, из колонки «Регион» в одной из таблицКонечные точки обслуживания AWSгде ведро действительно находится.
- Префикс является необязательным. Если оно присутствует, оно должно'/'.
Например, https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
Этот формат URL является одной из рекомендаций AWS S3:Доступ к ведруиЭто описание префиксов.ERDDAP™требует, чтобы вы объединили URL-адрес корзины и дополнительный префикс в один URL-адрес, чтобы указать<CacheFromUrl> (или<fileDir>), где находятся файлы.
Тестирование публичных ковшечек AWS S3
Для общедоступных ведер вы можете и должны протестировать URL-адрес ведра каталога AWS S3 в своем браузере, например, https://noaa-goes17.s3.us-east-1.amazonaws.com Если URL ведра правильный и подходящий дляERDDAPОн возвращает XML-документ, который (частичный) Список содержимого этого ведра. К сожалению, полный URL (То есть, ведро URL плюс префикс) этоERDDAP™Желания для данного набора данных не работают в браузере. AWS не предлагает систему для легкого просмотра иерархии ведра в вашем браузере. (Если это неправильно, пожалуйста, напишите Крису. Джон на noaa.gov. В противном случае, Amazon, пожалуйста, добавьте поддержку!)
Просмотр содержимого ведра
Ведра S3 часто содержат несколько категорий файлов в нескольких псевдоподкаталогах, которые могут стать парой файлов.ERDDAP™наборы данных. Чтобы сделатьERDDAP™Наборы данных, вам нужно знать начальный каталог для<CacheFromUrl> (или<fileDir>) и формат имен файлов, которые идентифицируют это подмножество файлов. Если вы попытаетесь просмотреть все содержимое ведра в браузере, S3 просто покажет вам первые 1000 файлов. В настоящее время лучший способ для вас, чтобы просмотреть все содержимое ведра, чтобы сделатьEDDTable FromFileNamesнабор данных (на вашем ПКERDDAP™и/или в вашей публичнойERDDAP) , что также дает вам простой способ пр осматривать структуру каталога и загружать файлы. The<FileDir> для этого будет URL, который вы сделали выше, например, https://noaa-goes17.s3.us-east-1.amazonaws.com .\[Почему AWS S3 не предлагает быстрый и простой способ сделать это без учетной записи AWS?\]Обратите внимание, что когда я делаю это на своем ПК в сети, отличной от Amazon, похоже, что Amazon замедляет реакцию на струйку. (около 100 (?) Файлы на куски) После первых нескольких кусков (1000 файлов на куски) Скачиваются. Так как ведра могут иметь огромное количество файлов (Noaa-goes17 — 26 миллионов) Получение всего содержимого ведра может занять несколько часов EDDTableFromFileNames. (Например, 12!) до конца.\[Amazon, это правда?\]
Как сделать EDDTable Набор данных FromFileNames с ведром AWS S3
Если у вас есть имя ведра, но у вас еще нет списка файлов в ведре S3 или префикса, который идентифицирует местоположе ние соответствующих файлов в ведре, используйте приведенные ниже инструкции для создания набора данных EDDTableFromFileNames, чтобы вы могли просматривать иерархию каталогов ведра S3 черезERDDAP?"files"система.
- Откройте счет AWS ERDDAP™используетAWS SDK дляJavaЧтобы получить информацию из AWS, вам нужноСоздать и активировать учетную запись AWS. Это довольно большая работа, с большим количеством вещей, чтобы учиться.
- Поместите свои учетные данные AWS туда, гдеERDDAP™Их можно найти. Следуйте инструкциям вНастройка учетных данных AWS и региона для развитиятакERDDAP™ (В частности, AWS SDK дляJava) Вы сможете найти и использовать свои учетные данные AWS. ЕслиERDDAP™Не можете найти учетные данные, вы увидите java.lang. Исключение: файл профиля не может быть нулевой ошибкойERDDAPфайл log.txt.
Подсказка для Linux и Mac OS: файл учетных данных должен быть в домашнем каталоге пользователя, на котором работает Tomcat (иERDDAP) (Для этого пункта мы предположим, что пользователь=tomcat) в файле под названием ~/.aws/credentials. Не думайте, что ~ is /home/tomcat — на самом деле используйте cd ~, чтобы узнать, где операционная система думает ~ для пользователя =tomcat. Создайте каталог, если он не существует. Кроме того, после того, как вы поместите файл учетных данных на место, убедитесь, что пользователь и группа для файла являются томкатом, а затем используйте 400 учетных данных chmod, чтобы убедиться, что файл читается только для пользователя = томкат.
- Создайте ведро URL вформатировать,ERDDAP™требуетНапример, https://noaa-goes17.s3.us-east-1.amazonaws.com и (для общественных ведер) Проверьте его в браузере, чтобы убедиться, что он возвращает документ XML, который имеет частичный список содержимого этого ведра.
- ИспользоватьГенерировать наборы данныхXmlЧтобы создатьEDDTable FromFileNamesнабор данных:
-
Для начального каталога используйте этот синтаксис: \\\ Скриншоты OnTheFly, YourBucketUrl Например, \\(перенаправлено с «OnTheFly») https://noaa-goes17.s3.us-east-1.amazonaws.com/
-
Имя файла regex? *
-
Рекурсивный? истинный
-
перезаряжать Каждые минуты? 10080
-
институт?NOAA
-
резюме? ничего (ERDDAP™Он автоматически создаст достойное резюме.)
-
Название? ничего (ERDDAP™Это позволит создать достойный заголовок автоматически.) Как обычно, вы должны отредактировать полученный XML для проверки правильности и внесения улучшений до того, как часть наборов данных будет использовать его в своей работе.datasets.xml.
-
- Если вы следуете инструкциям выше и загружаете набор данных вERDDAPВы создали набор данных EDDTableFromFiles. В качестве примера, чтобы облегчить просмотр и загрузку файлов из ведер открытых данных AWS, мы создали наборы данных EDDTableFromFileNames (см. список ниже).
https://upwell.pfeg.noaa.gov/erddap/search/index.html?searchFor=awsS3Files\_ ) практически для всехAWS S3 Open Data.
\[Несколько ведер, которые мы не включили, также имеют большое количество файлов в корневой директории. (больше, чем может быть загружено в разумные сроки) или не разрешать публичный доступ (Разве не все они должны быть публичными?) Запрашивающий платит ведра (Например, Sentinel) .\]
Если вы нажмете на"files"Ссылка для одного из этих наборов данных, вы можете просматривать дерево каталогов и файлы в этом ведре S3. Из-за дороги\\\* fromOnTheFly EDDTableFromFiles работает, эти списки каталогов всегда идеально актуальны, потому чтоERDDAP™Поймать их на лету. Если вы нажмете вниз по дереву каталога на фактическое имя файла и нажмете на имя файла,ERDDAP™Ваш запрос будет перенаправлен на AWS S3, чтобы вы могли загрузить файл непосредственно из AWS. Затем вы можете проверить этот файл.
Проблемы? Если ваш EDDTable FromFiles не загружаетсяERDDAP™ (или DasDds) Посмотрите в файле log.txt сообщение об ошибке. Если вы видите a java.lang. Исключение: файл профиля не может быть нулевой ошибкой, проблема заключается в том, что AWS SDKJava (используемыйERDDAP) Мы не находим файл учетных данных. См. инструкции по учетным данным выше.
К сожалению, AWS не позволяет людям использовать браузер для просмотра содержимого публичного ведра.
Тогда вы можете сделатьERDDAP™наборы данных, которые дают пользователям доступ к данным в файлах.
Смотрите инструкции вERDDAP™S3 Ведра (выше) .
Для набора данных EDDTableFromFileNames, который вы сделали выше, если вы немного покопаетесь с именами каталогов и файлов в дереве каталогов, становится ясно, что имена каталогов верхнего уровня (Например, ABI-L1b-RadC) соответствует тому, чтоERDDAP™Мы будем называть отдельные наборы данных. Ведро, с которым вы работаете, может быть похожим. Затем вы можете создать отдельные наборы данных вERDDAP™для каждого из этих наборов данных, используя, например,
https://noaa-goes17.s3.us-east-1.amazonaws.com/ABI-L1b-RadC/
как<cacheFromUrl>. К сожалению, для этого конкретного примера наборы данных в корзине представляют собой наборы данных уровня 1 или уровня 2, которыеERDDAP™ не особенно хорош вПотому что набор данных представляет собой более сложный набор переменных, которые используют различные размеры.
Файлы NcML
Файлы NcML позволяют указывать изменения на лету в одном или нескольких исходных источникахNetCDF (v3 или v4) .nc.grib, .bufr, или.hdf (v4 или v5) Файлы, а затем иметьERDDAP™лечить.ncмл файлов в качестве исходных файлов.ERDDAP™наборы данных будут принимать.ncФайлы в любое время.ncФайлы ожидаются. Файлы NcML должны иметь расширение.ncмл. Видишь?UnidataДокументация NcML. NcML полезен, потому что с ним можно что-то сделать. (Например, внесение различных изменений в различные файлы в коллекции, включая добавление размера с определенным значением к файлу.) Что вы не можете сделать сERDDAP?datasets.xml.
- Изменения в a.ncПоследнее измененное время файла мл приведет к тому, что файл будет перезагружаться всякий раз, когда набор данных перезагружается..ncФайлы данных не будут замечены напрямую.
- Оригинальное название: NcML Is\*очень\*чувствительны к порядку некоторых элементов в файле NcML. Подумайте о NcML как о том, чтобы указать серию инструкций в указанном порядке с намерением изменить исходные файлы. (состояние в начале/верху файла NcML) в файлы назначения (состояние в конце / нижней части файла NcML) .
Альтернативой NcML являетсяNetCDFОператоры (NCO) . Большая разница заключается в том, что NcML является системой для внесения изменений на лету. (Исходные файлы не изменяются) тогда какNCOмогут быть использованы для внесения изменений в (или новые версии) Файлы. ОбаNCONcML очень гибкий и позволяет вносить практически любые изменения в файлы. Для обоих это может быть сложным, чтобы выяснить, как именно сделать то, что вы хотите сделать - проверить веб для подобных примеров. Оба являются полезными инструментами для подготовки чистых КДФ иHDFФайлы для использования сERDDAPВ частности, внести изменения сверх того, чтоERDDAPСистема манипуляций может это сделать.
Пример No1: Добавление измерения времени с одним значением Вот она..ncмл-файл, создающий новое внешнее измерение (время с 1 значением: 1041379200) и добавляет это измерение к переменной pic в файле под названием 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", установить атрибут единицы "секунды с 197001-01T00:00: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файлы в качестве входных данных, а затем работать (Например, получать новые данные, вычислять статистику, печатать, гиперслаб, манипулировать метаданными) и выводить результаты на экран или файлы в текстовом, двоичном или сетевом форматах CDF.NCOпомогает анализ сетчатых научных данных. Стиль командной оболочкиNCOПозволяет пользователям манипулировать и анализировать файлы интерактивно или с помощью экспрессивных скриптов, которые позволяют избежать некоторых накладных расходов на среды программирования более высокого уровня". (из которогоNCOдомашняя страница) .
Альтернативой дляNCOэтоNcML. Большая разница заключается в том, что NcML является системой для внесения изменений на лету. (Исходные файлы не изменяются) тогда какNCOмогут быть использованы для внесения изменений в (или новые версии) Файлы. ОбаNCONcML очень гибкий и позволяет вносить практически любые изменения в файлы. Для обоих это может быть сложным, чтобы выяснить, как именно сделать то, что вы хотите сделать - проверить веб для подобных примеров. Оба являются полезными инструментами для подготовки чистых КДФ иHDFФайлы для использования сERDDAPВ частности, внести изменения сверх того, чтоERDDAPСистема манипуляций может это сделать.
Например, вы можете использоватьNCOсделать единицы переменной времени согласованными в группе файлов, где они изначально не были согласованы. Или вы можете использоватьNCOприменятьscale\_factorиadd\_offsetВ группе файлов, гдеscale\_factorиadd\_offsetимеют разные значения в разных исходных файлах. (Теперь вы можете решить эти проблемы вERDDAP™черезEDDGridИз NcFilesUnpacked, который является вариантомEDDGridFromNcFiles, который распаковывает упакованные данные и стандартизирует временные значения на низком уровне, чтобы иметь дело с файлами сбора, которые имеют разные значения.scale\_factors иadd\_offsetили различные временные единицы.)
NCOСвободное и открытое программное обеспечение, использующееGPL 3.0лицензия.
Пример No1: создание последовательных единиц
EDDGridИз материалов и EDDTable Из файлов следует, что единицы для данной переменной идентичны во всех файлах. Если некоторые файлы тривиальны (не функционально) отличается от других (например, единицы времени)
"секунды с 197001-01 00:00:00 UTC"
"seconds since 1970-01-01T00:00:00Z"Вы можете использоватьNCO?нарисованныйизменять блоки во всех файлах, чтобы они были идентичными
nco/ncatted - единицы, время, o,c' секунды с 197001-01T00:00:00Z'.nc
\[Для многих проблем, подобных этой, в EDDTable From... Файлы наборов данных, теперь вы можете использоватьстандартизировать Что?рассказыватьERDDAPСтандартизация исходных файлов по мере их чтенияERDDAP.\]
Ограничения размера набора данных
Вы увидите много ссылок на «2 миллиарда» ниже. Точнее, это ссылка на 2 147 483 647. (231-1-1) , что является максимальным значением 32-битного подписанного целого числа. В некоторых компьютерных языках, напримерJava (которыйERDDAP™Написано в) Это самый большой тип данных, который может использоваться для многих структур данных. (Например, размер массива) .
Для струнных значений (Например, для переменных имен, имен атрибутов, значений атрибутов String и значений данных String) максимальное количество символов на строку вERDDAP™составляет ~2 млрд. Но почти во всех случаях будут небольшие или большие проблемы, если струна превышает разумный размер. (Например, 80 символов для имен переменных и имен атрибутов и 255 символов для большинства значений атрибутов строки и значений данных.) . Например, веб-страницы, на которых отображаются длинные имена переменных, будут неуклюже широкими, а длинные имена переменных будут усечены, ес ли они превышают предел типа файла ответа.
Для сетчатых наборов данных:
- Максимальное количествоaxisVariables составляет ~ 2 млрд. Максимальное количествоdataVariables составляет ~ 2 млрд. Но если набор данных имеет > 100 переменных, пользователям будет сложно его использовать. И если в наборе данных более 1 миллиона переменных, вашему серверу потребуется много физической памяти и возникнут другие проблемы.
- Максимальный размер каждого измерения (axisVariable) Это ~2 миллиарда значений.
- Максимальное общее количество клеток (Изделие всех размеров размеров) Он не ограничен, но может быть ~9e18.
Для табличных наборов данных:
- Максимальное количествоdataVariables составляет ~ 2 млрд. Но если набор данных имеет > 100 переменных, пользователям будет сложно его использовать. И если в наборе данных более 1 миллиона переменных, вашему серверу потребуется много физической памяти и возникнут другие проблемы.
- Максимальное количество источников (Например, файлы) Это может быть агрегировано ~ 2 млрд.
- В некоторых случаях максимальное количество строк из отдельного источника (Например, файл, но не база д анных.) Это ~2 миллиарда строк.
- Я не думаю, что есть другие ограничения.
Для сетчатых и табличных наборов данных существуют некоторые внутренние ограничения на размер подмножества, которые могут быть запрошены пользователем в одном запросе. (часто связаны с >2 миллиардами чего-либо или ~9e18 чем-либо;) Но гораздо более вероятно, что пользователь достигнет определенных ограничений типа файла.
- NetCDFВерсия 3.ncФайлы ограничены 2 ГБ байтами. (Если это действительно проблема для кого-то, дайте мне знать: Можно добавить поддержку дляNetCDFВерсия 3.nc64-битное расширение илиNetCDFВерсия 4, которая значительно увеличит предел, но не бесконечно.)
- Браузеры ломаются после всего лишь ~ 500 МБ данных.ERDDAP™Ограничить ответ на.htmlTableЗапрос 400 МБ данных.
- Многие программы анализа данных имеют схожие ограничения. (Например, максимальный размер измерения часто составляет ~ 2 миллиарда значений.) Таким образом, нет причин усердно работать, чтобы обойти ограничения типа файла.
- Ограничения типа файла полезны тем, что они предотвращают наивные запросы на действительно огромные объемы данных. (Например, «дайте м не весь этот набор данных», когда набор данных имеет 20 ТБ данных.) Это займет недели или месяцы для загрузки. Чем дольше загрузка, тем больше вероятность того, что она выйдет из строя по разным причинам.
- Ограничения типа файла полезны тем, что они заставляют пользователя иметь дело с подмножествами разумного размера. (Например, работа с большим сетчатым набором данных через файлы с данными из одной временной точки каждый) .
Переключение на ACDD-1.3
Мы (особенноГенерировать наборы данныхXml) В настоящее время рекомендуетсяACDD версия 1.3Конвенция была ратифицирована в начале 2015 года и упоминается как ACDD-1.3. До этогоERDDAP™Версия 1.62 (Выпущен в июне 2015 года) ,ERDDAP™используется/рекомендуется оригинал, версия 1.0,NetCDFКонвенция об атрибутах для обнаружения набора данныхкоторый упоминается как "UnidataDataset Discovery v1.0" в глобальных конвенциях иMetadata\_Conventionsатрибуты.
Если ваши наборы данных используют более ранние версии ACDD, мы рекомендуем вам перейти на ACDD-1.3. Это не сложно. ACDD-1.3 совместим с версией 1.0. Переключаться для всех наборов данных (кромеEDDGridFromErddap и EDDTable Наборы данных Erddap) :
- Удалить недавно обесценившийся глобальныйMetadata\_ConventionsАтрибут путем добавления (или путем изменения существующегоMetadata\_Conventionsатрибут)
<att name="Metadata\\_Conventions">null</att>
Глобальный набор данных<addAttributes>. 2. Если набор данных имеет атрибут Конвенции в глобальном масштабе<addAttributes"Изменить все"UnidataDataset 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. Несмотря на то, что ACDD-1.0 включает глобальные атрибутыcreator\_name,creator\_email,creator\_url,Генерировать наборы данныхXmlне добавляли их автоматически до тех пор, покаERDDAP™v1.50. Это важная информация:
- creator\_nameпозволяет пользователям узнать/цитировать создателя набора данных.
- creator\_emailсообщает пользователям предпочтительный адрес электронной почты для связи с создателем набора данных, например, если у них есть вопросы о наборе данных.
- creator\_urlЭто дает пользователям возможность узнать больше о создателе.
- ERDDAP™Использует всю эту информацию при создании документов метаданных FGDC и ISO 19115-2/19139 для каждого набора данных. Эти документы часто используются внешними поисковыми службами.
Пожалуйста, добавьте эти атрибуты в глобальный набор данных.<addAttributes>.
<att name="creator\\_name">NOAA NMFS SWFSC ERD</att>
<att name="creator\\_email">erd.data@noaa.gov</att>
<att name="creator\\_url">https://www.pfeg.noaa.gov</att>
Вот так. Надеюсь, это не было слишком сложно.
Зарр
Версия 2.25ERDDAP™Читать локально Файлы Zarr используютEDDTable FromNcFilesиEDDGridИз NcFiles.
(По состоянию на август 2019 года) Мы можем легко ошибаться, но мы еще не убеждены, чтоЗаррПодобные системы, которые разбивают файлы данных на более мелкие куски, являются отличным решением проблемы.ERDDAP™Считывание данных, хранящихся в облачных сервисах, таких как Amazon AWS S3. Zarr — это отличная технология, которая показала свою полезность в самых разных ситуациях.ERDDAP+S3 будет одной из таких ситуаций. Прежде чем приложить усилия для хранения всех наших данных в Zarr, давайте проведем некоторые тесты, чтобы увидеть, действительно ли это лучшее решение.
Проблемы с доступом к данным в облаке — задержка (Лаг для первого получения данных) Доступ на уровне файлов (Вместо блочного доступа) . Zarr решает проблему доступа на уровне файлов, но ничего не делает с задержкой. По сравнению с просто загрузкой файла (Таким образом, его можно читать как локальный файл с доступом на уровне блоков.) Зарр может даже усугубить проблему задержки, потому что с Зарром чтение файла теперь включает в себя серию из нескольких звонков для чтения различных частей файла. (Каждый со своим лагом) . Проблема задержки может быть решена путем параллелизации запросов, но это решение более высокого уровня, не зависящее от Zarr.
И с Зарром (как в реляционных базах данных) Мы теряем удобство того, что файл данных является простым, единственным файлом, который вы можете легко проверить целостность или сделать / загрузить копию.
ERDDAP™ (как в v2) имеет систему для поддержания локального кэша файлов из источника URL (Например, S3) (см.<CacheFromUrl> и<cacheMaxGB> (#cachefromurl) ). И новый [<nThreads> (#нити) Следует свести к минимуму проблему задержки путем параллелизации поиска данных на высоком уровне.<CacheFromUrl работает очень хорошо для многих сценариев. (Мы не знаем, насколько это выгодно)<nThreads> не имеет дополнительных тестов. Мы признаем, что не проводили синхронизацию на примере AWS с хорошим сетевым подключением, но мы успешно протестировали различные удаленные URL-источники файлов. ИERDDAP?<cacheFromUrl> работает с любым типом файла данных (например,.nc,.hdf.csv,.jsonlCSV) Даже если внешне сжатый (например,.gz) без каких-либо изменений в файлах (Например, переписать их как коллекции Зарра.) .
Вполне вероятно, что различные сценарии будут благоприятствовать различным решениям, например, только нужно прочитать часть файла один раз. (Зарр победит) , vs. нужно прочитать весь файл один раз, vs. нужно прочитать часть или весь файл несколько раз<CacheFromUrl> выиграет.
Прежде чем приложить усилия для хранения всех наших данных в Zarr, давайте проведем некоторые тесты, чтобы увидеть, действительно ли это лучшее решение.
Список типов наборов данных
Если вам нужна помощь в выборе правильного типа набора данных, посмотритеВыбор типа набора данных.
Типы наборов данных делятся на две категории. (Почему?)
EDDGrid
- EDDGrid наборы данных обрабатывают сетчатые данные.
- вEDDGridНаборы данных, переменные данных представляют собой многомерные массивы данных.
- Должна быть переменная оси для каждого измерения. Переменные оси должны быть указаны в порядке их использования переменными данных.
- вEDDGridВсе переменные данных должны использоваться (доля) Все переменные оси. (Почему? А если нет?)
- Сортированные значения измерения - Во всемEDDGridнаборы данных, каждое измерение должно быть сортировано (восходящий или нисходящий) . Каждый из них может быть нерегулярным. Никаких связей быть не может. Это является требованием кСтандарт метаданных CF. Если значения любого измерения не сортированы, набор данных не будет загружен иERDDAP™идентифицирует первое несортированное значение в файле журнала, BigParent Директория /logs/log.txt.
Некоторые подклассы имеют дополнительные ограничения (в частности,EDDGridСовокупное существующее измерение требует, чтобы внешнее (самое левое, первое) измерение было восходящим.
Несортированные значения размерности почти всегда указывают на проблему с исходным набо ром данных. Чаще всего это происходит, когда в агрегацию включается неправильно названный или неподходящий файл, что приводит к несортированному измерению времени. Чтобы решить эту проблему, см. сообщение об ошибке вERDDAP™log.txt файл, чтобы найти значение времени. Затем посмотрите в исходных файлах, чтобы найти соответствующий файл. (либо до, либо после) Это не входит в агрегацию.
- Смотрите более полное описаниеEDDGridМодель данных.
- TheEDDGridТипы наборов данных:
- EDDGridИз аудиофайловагрегирует данные из группы локальных аудиофайлов.
- EDDGridИз папыРучки сетчатых данных отDAPСерверы.
- EDDGridИздательство:EDDTableпозволяет конвертировать табличный набор данных в сетчатый набор данных.
- EDDGridИз Эрддапаобрабатывает сетчатые данные из удаленногоERDDAP.
- EDDGridИз ЭтопоОбрабатывает встроенные данные топографии ETOPO.
- EDDGridИз материаловЭто суперкласс всехEDDGridИз... классов материалов.
- EDDGridИзображе ния MergeIRFilesагрегирует данные из группы локальных MergeIR.gzФайлы.
- EDDGridИз NcFilesагрегирует данные из группы локальныхNetCDF (v3 или v4) .ncи связанных с ними файлов.
- EDDGridИз NcFilesUnpackedявляется вариантом, еслиEDDGridИз NcFiles, который также собирает данные из группы локальныхNetCDF (v3 или v4) .ncи связанных с ними файлов, которыеERDDAP™распаковывать на низком уровне.
- EDDGridLonPM180Изменение значений долготы ребенкаEDDGridОни находятся в диапазоне от -180 до 180.
- EDDGridLon0360Изменение значений долготы ребенкаEDDGridОни находятся в диапазоне от 0 до 360.
- EDDGridSideBySideагрегаты два или болееEDDGridнаборы данных бок о бок.
- EDDGridСовокупность существующих измеренийагрегаты два или болееEDDGridнаборы данных, каждый из которых имеет различный диапазон значений для первого измерения, но идентичные значения для других измерений.
- EDDGridКопияМожно сделать локальную копию другогоEDDGridданные и обслуживает данные из локальной копии.
- ВсеEDDGridНаборы данных поддерживают настройку nThreads, которая сообщае тERDDAP™Сколько потоков использовать при ответе на запрос. Видишь?nПотокиДокументация для деталей.
EDDTable
- EDDTable Наборы данных обрабатывают табличные данные.
- Табличные данные могут быть представлены в виде таблицы, похожей на базу данных, с строками и столбцами. Каждая колонка (переменная данных) Он имеет имя, набор атрибутов и хранит только один тип данных. Каждая строка имеет наблюдение (или группы связанных ценностей) . Источник данных может иметь данные в другой структуре данных, более сложной структуре данных и/или нескольких файлах данных.ERDDAP™должен иметь возможность сплющивать исходные данные в таблицу, похожую на базу данных, чтобы представить данные в виде табличного набора данных пользователямERDDAP.
- Смотрите более полное описаниеМодель данных EDDTable.
- Типы наборов данных EDDTable:
-
EDDTableFromAllDatasetsЭто набор данных более выс окого уровня, который содержит информацию обо всех других наборах данных в вашемERDDAP.
-
EDDTableFromAsciiFilesагрегирует данные из запятых, вкладок, полуколонов или разделённых по пространству табличных файлов данных ASCII.
-
EDDTableFromAsciiServiceЭто суперкласс всех классов EDDTableFromAsciiService.
-
EDDTableFromAsciiServiceNOSобрабатывает данные некоторых изNOAAВеб-сервисы NOS.
-
EDDTable FromAudioFilesагрегирует данные из группы локальных аудиофайлов.
-
EDDTable From AwsXmlFilesагрегирует данные с автоматической метеорологической станции (AWS) XML файлы.
-
EDDTable From Кассандраобрабатывает табличные данные из одной таблицы Кассандры.
-
EDDTable FromColumnarAsciiFilesагрегирует данные из табличных файлов данных ASCII с столбцами данных фиксированной ширины.
-
EDDTable FromDapSequenceобрабатывать табличные данные изDAPСерверы последовательности.
-
EDDTable FromDatabaseобрабатывает табличные данные из одной таблицы баз данных.
-
EDDTable FromEDDGridпозволяет создавать набор данных EDDTable изEDDGridнабор данных.
-
EDDTable FromErddapобрабатывает табличные данные с удаленногоERDDAP.
-
EDDTable FromFileNamesСоздает набор данных из информации о группе файлов в файловой системе сервера, но он не обслуживает данные из файлов.
-
EDDTable Из материаловЭто суперкласс всех классов EDDTable From...Files.
-
EDDTable FromHttpGetэтоERDDAPЭто единственная система для импорта и экспорта данных.
-
EDDTable FromHyraxФайлы (Обнародовано) агрегирует данные из файлов с несколькими переменными с общими размерами, обслуживаемымиHyrax OPeNDAPсервер.
-
EDDTable FromInvalidCRAFilesагрегированные данные отNetCDF (v3 или v4) .ncФайлы, которые используют конкретный, недействительный вариант CF DSG Contiguous Ragged Array (КРА) Файлы. ХотяERDDAP™Поддерживает этот тип файла, это недействительный тип файла, который никто не должен начинать использовать. Группы, которые в настоящее время используют этот тип файла, настоятельно рекоменду ется использовать.ERDDAP™для создания действительных файлов CF DSG CRA и прекращения использования этих файлов.
-
EDDTableFromJsonlCSVFilesагрегированные данные отДжон Линии файлов CSV.
-
EDDTableFromMultidimNcFilesагрегированные данные отNetCDF (v3 или v4) .ncФайлы с несколькими переменными с общими размерами.
-
EDDTable FromNcFilesагрегированные данные отNetCDF (v3 или v4) .ncФайлы с несколькими переменными с общими размерами. Хорошо продолжать использовать этот тип набора данных для существующих наборов данных, но для новых наборов данных мы рекомендуем использовать вместо этого EDDTableFromMultidimNcFiles.
-
EDDTable FromNcCFFilesагрегированные данные отNetCDF (v3 или v4) .ncфайлы, использующие один из форматов файлов, указанных вCF Дискретная геометрия выборки (DSG) конвенции. Но для файлов, использующих один из многомерных вариантов CF DSG, используютEDDTableFromMultidimNcFilesВместо этого.
-
EDDTable FromNccsvFilesагрегированные данные отNCCSVФайлы ASCII.csv.
-
EDDTable FromNOS (Обнародовано) обрабатывает табличные данные с серверов NOS XML.
-
EDDTable FromOBISобрабатывает табличные данные с серверов OBIS.
-
EDDTableFromParquetFilesобрабатывать данные отпаркет.
-
EDDTable FromSOSобрабатывать табличные данные изSOSСерверы.
-
Скриншоты из ThreddsFiles (Обнародовано) агрегирует данные из файлов с несколькими переменными с общими размерами, обслуживаемымиПЕРЕВОДЫOPeNDAPсервер.
-
EDDTable FromWFSФайлы (Обнародовано) сделать локальную копию всех данных изArcGISMapServerWFSсервера, чтобы данные можно было быстро восстановитьERDDAP™пользователей.
-
EDDTableAggregateRowsможет создавать набор данных EDDTable из группы наборов данных EDDTable.
-
EDDTableCopyВы можете сделать локальную копию многих типов наборов данных EDDTable, а затем быстро восстановит ь данные из локальной копии.
-
Подробное описание типов наборов данных
EDDGridИз папы
EDDGridИз папы обрабатывает переменные сетки отDAPСерверы.
- Мы настоятельно рекомендуем использоватьГенерировать наборы данных Программа XmlЧтобы составить приблизительный проектdatasets.xmlКусок для этого набора данных. Вы можете собрать необходимую информацию, чтобы настроить ее или создать свой собственный XML.EDDGridНабор данных FromDap, просмотрев файлы DDS и DAS исходного набора данных в вашем браузере (Добавление .das и .dds вsourceUrlНапример, https://thredds1.pfeg.noaa.gov/thredds/dodsC/satellite/BA/ssta/5day.dds ) .
- EDDGridFromDap может получать данные из любой многомерной переменнойDAPСервер данных. (Раньше,EDDGridFromDap был ограничен переменными, обозначенными как «сетки», но это больше не является требованием.)
- Сортированные значения измерения - Значения для каждого измерения должны быть сортированы по порядку. (восходящий или нисходящий) . Значения могут быть нерегулярно разнесены. Никаких связей быть не может. Это является требованием кСтандарт метаданных CF. Если значения любого измерения не сортированы, набор данных не будет загружен иERDDAP™идентифицирует первое несортированное значение в файле журнала, BigParent Директория /logs/log.txt.
Несортированные значения размерности почти всегда указывают на проблему с исходным набором данных. Чаще всего это происходит, когда в агрегацию включается неправильно названный или неподходящий файл, что приводит к несортированному измерению времени. Чтобы решить эту проблему, см. сообщение об ошибке вERDDAP™log.txt файл, чтобы найти значение времени. Затем посмотрите в исходных файлах, чтобы найти соответствующий файл. (либо до, либо после) Это не входит в агрегацию.
EDDGridДеп скелет XML
<dataset type="EDDGridFromDap" datasetID\="..." active\="..." >
<sourceUrl>...</sourceUrl>
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromDap, this gets the remote .dds and then gets the new
leftmost (first) dimension values. -->
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<nThreads>...</nThreads> <!-- 0 or 1 -->
<dimensionValuesInMemory>...</dimensionValuesInMemory> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
</dataset>
EDDGridИздательство:EDDTable
EDDGridИздательство:EDDTable позволяет конвертировать табличный набор данных EDDTable вEDDGridсетчатый набор данных. Помните, чтоERDDAP™Обработка данных как таковаясетчатые наборы данных (подклассыEDDGrid) или табличные наборы данных (Подклассы EDDTable) .
- Обычно, если у вас есть сетчатые данные, вы просто настраиваетеEDDGridНабор данных напрямую. Иногда это невозможно, например, когда у вас есть данные, хранящиеся в реляционной базе данных.ERDDAP™Досту п возможен только через EDDTableFromDatabase.EDDGridКласс FromEDDTable позволяет исправить эту ситуацию.
- Очевидно, что данные в базовом наборе данных EDDTable должны быть (в основном) сетчатые данные, но в табличной форме. Например, набор данных EDDTable может иметь данные CTD: измерения тока на восток и на север, на нескольких глубинах, в несколько раз. Поскольку глубины в каждой точке времени одинаковы,EDDGridFromEDDTable может создавать сетчатый набор данных с измерением времени и глубины, который получает доступ к данным через базовый набор данных EDDTable.
- Генерировать наборы данных Xml - Мы настоятельно рекомендуем использоватьГенерировать наборы данных Программа XmlЧтобы составить приблизительный проектdatasets.xmlКусок для этого набора данных. Вы можете собрать информацию, необходимую для улучшения чернового проекта.
- Источник атрибутов - Как и все другие типы данных,EDDGridFromTable исходит из того, что существуют глобальные исходные атрибуты иглобальныйaddAttributes (указанный вdatasets.xml) которые объединяются, чтобы сделать глобальную Атрибуты, которые видят пользователи. Для глобального источн ика атрибутов,EDDGridFromEDDTable использует глобальную комбинацию Атрибуты базового набора данных EDDTable. (Если вы задумаетесь об этом на минуту, это имеет смысл.)
Аналогично для каждогоaxisVariables иdataVariable?addAttributes,EDDGridFromEDDTable использует комбинацию переменных Атрибуты из базового набора данных EDDTable в качествеEDDGridИсточник атрибутов переменной FromEDDTable. (Если вы задумаетесь об этом на минуту, это имеет смысл.)
Если EDDTable имеет хорошие метаданные, тоEDDGridДля этого часто требуется очень малоaddAttributesМетаданные - всего несколько настроек здесь и там.
-
dataVariables versusaxisVariableс- EDDTable имеет толькоdataVariableС. АнEDDGridВ наборе данных FromEDDTable будет несколькоaxisVariables (Созданный из некоторыхdataVariables) и некоторыеdataVariables (Созданный из оставшихсяdataVariables) .Генерировать наборы данныхXmlУгадайте, на какой EDDTabledataVariableдолжен статьEDDGridИздательство:EDDTableaxisVariables, но это всего лишь предположение. Вы должны изменить выход GenerateDatasetsXml, чтобы указать, какиеdataVariables станетaxisVariables и в каком порядке.
-
Ценности - Нет ничего о лежащей в основе EDDTable, чтобы сказатьEDDGridОтредактировать возможные значенияaxisVariables в сетчатой версии набора данных, поэтому вы ДОЛЖНЫ предоставить эту информацию для каждогоaxisVariableС помощью одного из этих атрибутов:
- axisValues — позволяет указать список значений. Например, <Att name="axisValues"Тип = "двойной список">2, 2.5, 3, 3.5, 4</att> Обратите внимание на использование aтип данныхПлюс слово «список». Кроме того, тип списка (Например, двойной) Необходимо сопоставить данные Тип переменной в EDDTable иEDDGridИз наборов данных EDDTable.
- axisValuesStartStrideStop - позволяет указать последовательность регулярно разнесенных значений, указав значения начала, шага и остановки. Вот пример, который эквивалентен приведенному выше примеру оси Ценности:
<Оригинальное названиеТип = "двойной список"(#attributetype)>2, 0,5, 4</att> Опять же, обратите внимание на использование типа данных списка. Кроме того, тип списка (Например, двойной) Необходимо сопоставить данные Тип переменной в EDDTable иEDDGridИз наборов данных EDDTable.
Обновления - Так же, как нет способа дляEDDGridОт EDDTable до определения оси Ценности от EDDTable изначально, также не существует надежного способа дляEDDGridОт EDDTable до определения от EDDTable, когда изменились значения оси (Особенно, когда есть новые значения для переменной времени.) . В настоящее время единственным решением является изменение атрибута axisValues вdatasets.xmlи перезагрузить набор данных. Например, вы можете написать сценарий для
- Поискdatasets.xmlдля datasetID= DatasetID " Вы работаете с правильным набором данных.
- Поискdatasets.xmlдля следующего возникновения
Источник переменных
Вы работаете с правильной переменной. - Поискdatasets.xmlдля следующего возникновения
<att name="axisValuesStartStrideStop" type="doubleList">
Итак, вы знаете начальную позицию тега. 4. Поискdatasets.xmlдля следующего возникновения
</att>
чтобы вы знали конечное положение значений оси. 5. Замените старое начало, шаг, остановите ценности новыми ценностями. 6. Контактыфлаг URLЧтобы набор данных сообщалERDDAP™Перезагрузить набор данных.
Это не идеально, но это работает.
- точность - КогдаEDDGridFromEDDTable отвечает на запрос пользователя о данных, он перемещает строку данных из таблицы ответов EDDTable вEDDGridРеакционная сетка. Для этого он должен выяснить, соответствуют ли значения «оси» на данной строке в таблице некоторой комбинации значений оси в сетке. Для целых типов данных легко определить, равны ли два значения. Но для поплавков и двойников это вызывает ужасную проблему чисел с плавающей запятой.не совпадающий точно. (Например, 0,2 против 0,199999999999996) . To (пытаться) Разберись с этим,EDDGridFromTable позволяет указать точный атрибут для любого изaxisVariables, которое определяет общее число десятичных цифр, которые должны быть идентичными.
- Например,<Att name="precision" type="int">5</att>
- Для различных типов переменных данных существуют различные значения точности по умолчанию. Дефолты обычно уместны. Если их нет, нужно указать разные значения.
- ДляaxisVariableкоторые являютсявремя или время Штамповые переменныеПо умолчанию - полная точность (Точный матч) .
- ДляaxisVariables, которые плавают, точность по умолчанию составляет 5.
- ДляaxisVariables, которые являются двойными, точность п о умолчанию равна 9.
- ДляaxisVariableкоторые имеют целые типы данных,EDDGridFromEDDTable игнорирует атрибут точности и всегда использует полную точность. (Точный матч) .
- Предупреждаю! При выполнении преобразования части табличных данных в часть сетчатых данных, еслиEDDGridFromEDDTable не может соответствовать значению «ось» EDDTable одному из ожидаемых значений.EDDGridЗначения оси от EDDTable,EDDGridСкачать бесплатно FromEDDTable (Без ошибок) Выбрасывает данные из этого ряда таблицы. Например, могут быть другие данные. (Не в сетке) в наборе данных EDDTable. (И если шагнуть 1, не является очевидным дляEDDGridИз таблицы, какие значения оси являются желаемыми значениями, а какие из них должны быть пропущены из-за шага.) Таким образом, если значения точности слишком высоки, пользователь увидит недостающие значения в ответе данных, когда действительно существуют действительные значения данных.
И наоборот, если значения точности установлены слишком низко, значения «оси» EDDTable не должны совпадать.EDDGridЗначения оси от EDDTable будут (ошибочно) совпадение.
Эти потенциальные проблемы ужасны, потому что пользователь получает неправильные данные. (Отсутствие ценностей) Когда нужно получить правильные данные (По меньшей мере сообщение об ошибке) . Это не недостаток вEDDGridИз Таблицы.EDDGridFromTable не может решить эту проблему. Проблема присуща преобразованию табличных данных в сетчатые данные (Если не могут быть сделаны другие предположения, но они не могут быть сделаны здесь.) . Это зависит от вас,ERDDAP™администратора, для Проверьте свойEDDGridСверхъестественное Для того, чтобы убедиться, что значения точности установлены, чтобы избежать этих потенциальных проблем.
пороговый разрыв
- пороговый разрыв- Это очень необычный тип набора данных. Типы запросов, которые могут быть сделаны на (управляемый) анEDDGridнабор данных (Связанные с диапазонами и шагамиaxisVariables) Они сильно отличаются от типов запросов, которые могут быть сделаны. (управляемый) Набор данных EDDTable (Это связано с диапазонами некоторых переменных.) , исполнениеEDDGridНаборы данных FromEDDTable будут сильно различаться в зависимости от точного запроса и скорости базового набора данных EDDTable. Для запросов, которые имеют значение шага 1,EDDGridFromEDDTable может запросить базовый EDDTable для относительно большого объема данных (Как будто шаг = 1) Затем просеивают результаты, сохраняя данные из одних строк и отбрасывая данные из других. Если он должен просеять много данных, чтобы получить необходимые данные, запрос займет больше времени.
ЕслиEDDGridFromEDDTable может сказать, что будут большие пробелы (С строками нежелательных данных) между строками с желаемыми данными,EDDGridFromEDDTable может выбрать несколько подзапросов к базовому EDDTable вместо одного большого запроса, тем самым пропуская нежелательные строки данных в больших пробелах. Чувствительность к этому решению контролируется значением порога разрыва, указанным в<gapThreshold > тег (По умолчанию = 1000 строк исходных данных) . Установка разрыва Порог на меньшее число приведет к созданию набора данных (в целом) Больше подзапросов. Установка разрыва Порог для большего числа приведет к созданию набора данных (в целом) Меньше подзапросов.
Если порог разрыва слишком мал,EDDGridFromEDDTable будет работать медленнее, потому что накладные расходы на несколько запросов будут больше, чем время, сэкономленное за счет получения некоторых избыточных данных. Если порог разрыва слишком велик,EDDGridFromEDDTable будет работать медленнее, потому что так много избыточных данных будет извлечено из EDDTable. (Как обнаружил Голдилокс, середина «правильная».) Накладные расходы на различные типы наборов данных EDDTable сильно разл ичаются, поэтому единственный способ узнать фактическую лучшую настройку для вашего набора данных - это экспериментировать. Но вы не пойдете слишком далеко неправильно, придерживаясь по умолчанию.
Простой пример: представьте себеEDDGridСтол только одинaxisVariable (время, с размером 100000) одинdataVariable (температура) , и разрыв по умолчанию порог 1000.
- Если пользователь запрашивает температуру\[0💯5000\], шаг равен 100, поэтому размер разрыва равен 99, что меньше порога разрыва. ТакEDDGridFromTable сделает только один запрос в EDDTable для всех данных, необходимых для запроса. (эквивалентно температуре\[0:5000\]) и выбросить все строки данных, которые ему не нужны.
- Если пользователь запрашивает температуру\[0:2500:5000\], этот шаг составляет 2500, поэтому размер разрыва составляет 2499, что больше, чем порог разрыва. ТакEDDGridFromTable будет делать отдельные запросы на EDDTable, которые эквивалентны температуре.\[0\]температура\[2500\]температура\[5000000000\].
Расчет размера зазора сложнее при наличии нескольких осей.
Для каждого запроса пользователя,EDDGridFromEDDTable печатает диагностические сообщения, связанные с этимlog.txtФайл.
- Если<logLevel> (#loglevel) вdatasets.xmlНастроен на информацию, это печатает сообщение как \* nOuterAxes=1 из 4 nOuterRequests=22 Если nOuterAxes=0, то разрыв Threshold не был превышен и на EDDTable будет сделан только один запрос. Если nOuterAxes>0, порог разрыва был превышен, и nOuterRequests будет сделан в EDDTable, соответствующий каждой запрашиваемой комбинации самых левых nOuterAxes. Например, если набор данных имеет 4axisVariables иdataVariableкак на восток\[время\]\[широта\]\[долгота\]\[глубина\]Самый левый (первый) Переменная оси — это время.
- Если<logLevel>> вdatasets.xmlустанавливается на всех, дополнительная информация записывается в файл log.txt.
EDDGridEDDTable скелет XML
<dataset type="EDDGridFromEDDTable" datasetID\="..." active\="..." >
<accessibleTo>...</accessibleTo> <!-- 0 or 1 -->
<graphsAccessibleTo>auto|public</graphsAccessibleTo> <!-- 0 or 1 -->
<accessibleViaWMS>...</accessibleViaWMS> <!-- 0 or 1 -->
<reloadEveryNMinutes>...</reloadEveryNMinutes> <!-- 0 or 1 -->
<updateEveryNMillis>...</updateEveryNMillis> <!-- 0 or 1.
For EDDGridFromEDDTable, this only works if the underlying EDDTable
supports updateEveryNMillis. -->
<gapThreshold>...</gapThreshold> <!-- 0 or 1. The default is 1000. >
<defaultDataQuery>...</defaultDataQuery> <!-- 0 or 1 -->
<defaultGraphQuery>...</defaultGraphQuery> <!-- 0 or 1 -->
<fgdcFile>...</fgdcFile> <!-- 0 or 1 -->
<iso19115File>...</iso19115File> <!-- 0 or 1 -->
<onChange>...</onChange> <!-- 0 or more -->
<addAttributes>...</addAttributes> <!-- 0 or 1 -->
<axisVariable>...</axisVariable> <!-- 1 or more -->
<dataVariable>...</dataVariable> <!-- 1 or more -->
<dataset>...</dataset> <!-- The underlying source EDDTable dataset. -->
</dataset>
EDD* FromERDDAP
EDDGridИз Эрддапа обрабатывает сетчатые данные из удаленногоERDDAP ™Сервер. EDDTable FromErddap обрабатывает табличные данные с удаленногоERDDAP™Сервер.
- EDDGridFromErddap и EDDTableFromErddap ведут себя не так, как все другие типы наборов данныхERDDAP.
- Как и другие типы наборов данных, эти наборы данных получают информацию о наборе данных из источника и сохраняют ее в памяти.
- Как и другие типы данных, когдаERDDAP™поиск наборов данных, отображение формы доступа к данным ( datasetID .html) , или отображает форму Make A Graph ( datasetID граф) ,ERDDAP™использует информацию о наборе данных, который находится в памяти.
- EDDGridFromErddap и EDDTable Erddap является основой дляСети/кластеры/федерацииизERDDAPs, которые эффективно распределяют использование ЦП (В основном для создания карт) , использование памяти, хранение набора данных и использование полосы пропускания большого центра обработки данных.
перенаправить
- В отличие от других типов данных, когдаERDDAP™получает запрос на данные или изображения из этих наборов да нных,ERDDAP перенаправлятьЗапрос на удаленныйERDDAP™Сервер. Результатом является:
- Это очень эффективно (CPU, память и пропускная способность) Потому что иначе
- КомпозитныйERDDAP™Вы должны отправить запрос другомуERDDAP™ (который требует времени) .
- ДругойERDDAP™должен получить данные, переформатировать их и передать данные в композитныйERDDAP.
- КомпозитныйERDDAP™должен получать данные (использование полосы пропускания) Переформатировать его (Использование CPU и памяти) и передавать данные пользователю (использование полосы пропускания) . Перенаправляя запрос и позволяя другомуERDDAP™Чтобы отправить ответ непосредственно пользователю, композитныйERDDAP™По сути, не тратит время процессора, память или пропускную способность на запрос.
- Перенаправление является прозрачным для пользователя независимо от клиентского программного обеспечения. (браузер или любое другое программное обеспечение или инструмент командной строки) .
- Это очень эффективно (CPU, память и пропускная способность) Потому что иначе
- Вы можете сказатьERDDAP™не перенаправлять запросы пользователей путем установки<Перенаправление>фальшивый</redirect>, но это сводит на нет большинство преимуществ типа набора данных ...FromErddap (В частности, рассеивание нагрузки на переднем концеERDDAP™Удаленный / BackendERDDAP) .
Подписки
Обычно, когдаEDDGridFromErddap и EDDTable Из Эрддапа (повторять) Заряженный на свойERDDAP, они пытаются добавить подписку на удаленный набор данных через удаленныйERDDAPСистема подписки e-mail/URL. Таким образом, когда удаленный набор данных изменяется, удаленныйERDDAP™контактыsetDataset Флаг URLна твоейERDDAP™чтобы локальный набор данных был перезагружен как можно скорее и чтобы локальный набор данных всегда был полностью обновлен и имитировал удаленный набор данных. Таким образом, в первый раз, когда это произойдет, вы должны получить электронное письмо с просьбой подтвердить подписку. Однако, если местныйERDDAP™Вы не можете отправить электронное письмо или удаленныйERDDAPСистема подписки на электронную почту / URL не активна, вы должны отправить удаленное сообщение по электронной почтеERDDAP™администратор и запросить вручную добавить [<OnChange> (#изменить) ...</onChange> теги для всех соответствующих наборов данных, чтобы вызвать ваш набор данныхsetDataset Флаг URL. Увидимся.ERDDAP™Ежедневный отчет для списка setDataset Флаг URL, но просто отправьте ихEDDGridFromErddap и EDDTableFromErddap для удаленного доступаERDDAP™администратор.
Это не работает? Ваши локальные наборы данных не синхронизируются с удаленными наборами данных? Несколько вещей должны работать правильно для этой системы, чтобы ваши наборы данных оставались в актуальном состоянии. Проверьте каждую из этих вещей в порядке:
- ТвойERDDAP™должен иметь возможность отправлять электронные письма. Смотрите настройки электронной почты в setup.xml.
- В целом (Но не всегда) ВашERDDAP?<Базовый URL и<baseHttpsUrl> не должен иметь номер порта (Например, :8080, :8443) . Если они это делают, используйтепроксипасУдалить порт из Url.
- В вашем setup.xml<ПодпискаToRemoteErddapDataset> должна быть установлена на истинность.
- Когда местный EDD... Набор данных FromErddap перезагружается, он должен отправить запрос на пультERDDAP™Подписаться на удаленный набор данных. Посмотрите на log.txt, чтобы узнать, происходит ли это.
- Вы должны получить электронное письмо с просьбой подтвердить запрос на подписку.
- Вы должны нажать на ссылку в этом электронном письме, чтобы подтвердить запрос на подписку.
- УдаленныйERDDAP™Надо сказать, что проверка прошла успешно. В любое время вы можете запросить электронное письмо с пультаERDDAP™со списком отложенных и действительных подписок. Смотрите форму в удаленныйrddapBase Урл /erddap/subscriptions/list.html.
- Когда меняется удаленный набор данных (Например, получить дополнительные данные) , удаленныйERDDAP™Постарайтесь связаться с флагурлом на вашемERDDAP. Вы не можете проверить это, но вы можете спросить администратора пультаERDDAP™Чтобы проверить это.
- ТвойERDDAP™Вы должны получить запрос на установку этого флагурла. Загляните в свой log.txt для запроса «setDatasetFlag.txt» (s) Проверьте, есть ли сообщение об ошибке, связанное с запросами.
- ТвойERDDAP™Затем следует попытаться перезагрузить этот набор данных. (Возможно, не сразу, но как можно скорее.) .
Современный max (время) ?
EDDGridНаборы данных TableFromErddap изменяют только сохраненную информацию о каждом наборе исходных данных, когда набор исходных данных"перезагрузить"и некоторые изменения метаданных (Например, переменная времениactual\_range) , тем самым генерируя уведомление о подписке. Если исходный набор данных содержит данные, которые часто меняются (Новые данные каждую секунду) и использует"обновить"системы, чтобы замечать частые изменения базовых данных,EDDGrid/TableFromErddap не будет уведомлен об этих частых изменениях до следующей «перезагрузки» набора данных.EDDGridТаблица FromErddap не будет полностью обновлена. Вы можете минимизировать эту проблему, изменив исходный набор данных.<ПерезагрузкаEveryNMinutes> в меньшее значение (60? 15?) Чтобы было больше уведомлений о подписке, чтобы сообщитьEDDGrid/TableFromErddap обновляет свою информацию об исходном наборе данных.
Или, если ваша система управления данными знает, когда исходный набор данных имеет новые данные. (Например, через скрипт, который копирует файл данных на место) Если это не очень частое (каждые 5 минут или реже) Есть лучшее решение:
- Не используйте<Обновление EveryNMillis> для обновления исходного набора данных.
- Установите исходный набор данных<Перезагрузить EveryNMinutes в большее число (1440?) .
- Пусть сценарий свяжется с исходным набором данныхфлаг URLСразу после этого он копирует новый файл данных на место.
Это приведет к тому, что исходный набор данных будет полностью обновлен и заставит его генерировать уведомление о подписке, которое будет отправлено на веб-сайт.EDDGrid/TableFromErddap набор данных. Это приведет кEDDGrid/TableFromErddap Dataset будет полностью обновлен (В течение 5 секунд будут добавлены новые данные) . И все это будет сделано эффективно (Без ненужных перезагрузок набора данных) .
Нет.addAttributes,axisVariableилиdataVariable
В отличие от других типов наборов данных, EDDTableFromErddap иEDDGridНаборы данных FromErddap не позволяют<addAttributes>,<axisVariable> или<dataVariable> разделы вdatasets.xmlдля этого набора данных. Проблема заключается в том, что это приведет к несоответствиям:
- Допустим, это было разрешено, и вы добавили новый глобальный атрибут.
- Когда пользователь спрашиваетERDDAP™Для глобальных атрибутов появится новый атрибут.
- Когда пользователь спрашиваетERDDAP™Для файла данных, вашERDDAP™Перенаправляет запрос на источникERDDAP. ЭтоERDDAP™Они не знают о новом атрибуте. Таким образом, если он создает файл данных с метаданными, например,.ncфайл, метаданные не будут иметь нового атрибута.
Есть два обходных пути:
- Убедить администратора источникаERDDAP™изменения, которые вы хотите внести в метаданные.
- Вместо EDDTableFromErddap используйтеEDDTable FromDapSequence. Или вместо того, чтобыEDDGridFromErddap, использованиеEDDGridИз папы. Эти типы EDD позволяют эффективно подключаться к набору данных на удаленном устройстве.ERDDAP™ (но без перенаправления запросов данных) Они позволяют включать глобал ьные<addAttributes>,<axisVariable> или<dataVariable> разделы вdatasets.xml. Еще одно отличие: вам нужно будет вручную подписаться на удаленный набор данных, чтобы набор данных был на вашем компьютере.ERDDAP™будут уведомлены (черезфлаг URL) при внесении изменений в удаленный набор данных. Таким образом, вы создаете новый набор данных вместо ссылки на удаленный набор данных.
Другие примечания
- По соображениям безопасности,EDDGridFromErddap и EDDTable Из Erddap не поддерживают<Доступно>> (#доступность) тег и не может быть использован с удаленными наборами данных, которые требуют входа в систему (потому что они используются).<Доступно>> (#доступность) ). Видишь?ERDDAP?Система безопасностиограничение доступа к некоторым наборам данных для некоторых пользователей.
- Начиная сERDDAP™v2.10,EDDGridFromErddap и EDDTableFromErddap поддерживают эту функцию.<Доступные файлы> (#доступные файлы) Тэг. В отличие от других типов наборов данных, по умолчанию верно, но файлы набора данных будут доступны только в том случае, если исходный набор данных также имеет<Доступные файлы> установлен на истинность.
- Вы можете использоватьГенерировать наборы данных Программа Xmlчтобы сделатьdatasets.xmlДля этого типа набора данных. Но вы можете легко сделать эти типы наборов данных вручную.
EDDGridСкелет Эрддапа XML
- EDDGridСкелет Эрддапа Набор данных XML очень прост, потому что цель состоит в том, чтобы просто имитировать удаленный набор данных, который уже подходит для использования.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 FromErddap скелет XML
- Скелет XML для набора данных EDDTableFromErddap очень прост, потому что цель состоит в том, чтобы просто имитировать удаленный набор данных, который уже подходит для использования.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Из Этопо
EDDGridИз Этопо служит толькоНабор данных ETOPO1 Global 1-Minute Gridded Elevation (Ice Surface, сетка зарегистрирована, двоичный, 2 байт int: etopo1\_ice\_g\_i2.zip) который распределяется сERDDAP.
- Только дваdatasetIDподдерживается дляEDDGridFromEtopo, чтобы вы могли получить доступ к данным со значениями долготы от -180 до 180, или значениями долготы от 0 до 360.
- Нет никаких подтегов, так как данные уже описаны внутри.ERDDAP.
- Итак, два варианта дляEDDGridНаборы данных FromEtopo (буквально) :
<!-- 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" />