Работая сdatasets.xmlФайл
\[Эта страница будет представлять интерес только дляERDDAP™Администраторы.\]
После того, как вы последовали заERDDAP™ Инструкция по установкеВы должны редактироватьdatasets.xmlфайл в кот /content/erddap/ для описания наборов данных, которые выERDDAP™Установка будет служить.
Вы можете увидеть примерdatasets.xmlНа GitHub.
Введение
Некоторая сборка требуется
Настройка набора данных в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™ не особенно хорош вПотому что набор данных представляет собой более сложный набор переменных, которые используют различные размеры.