#wolfram-mathematica #fits
#wolfram-mathematica #подходит
Вопрос:
есть ли у кого-нибудь опыт экспорта данных в виде FITS
файла с пользовательскими метаданными ( FITS
заголовком)? До сих пор мне удавалось генерировать FITS
файлы только со стандартным шаблоном заголовка Mathematica FITS
. В документации нет никаких намеков на то, поддерживается ли экспорт пользовательских метаданных и как это может быть сделано.
Следующие предложения от comp.soft-sys.math.mathematica не работают:
header=Import[<some FITS file>, "Metadata"];
Export<"test.fits",data ,"Metadata"->header]
или
Export["test.fits",{"Data"->data,"Metadata"->header}]
Как правильно экспортировать мои собственные метаданные в FITS
файл?
Приветствия,
Markus
Обновление: ответ из службы поддержки Wolfram: «Mathematica пока не поддерживает экспорт метаданных для файла FITS. Пример относится к импорту этих данных. Мы планируем поддерживать это в будущем …» «Также планируется включить двоичные таблицы в функциональность импорта FITS».
Я попытаюсь придумать какой-нибудь обходной путь.
Комментарии:
1. Привет, Маркус. Добро пожаловать в stackoverflow. Я отредактировал ваш вопрос, чтобы разметить ваш код. (И извините, я ничего не знаю о файлах FITS …)
2. @Markus Сообщение об ошибке в команде Export[] очень несовершенно. Я обнаружил, что иногда это просто приводит к сбою… таким образом, отладка очень сложна.
3. Перепробовал все виды трюков. Ничего не работает. ExportString, похоже, также не работает для FITS. Возможно, пришло время для отчета об ошибке?
4. @Sjoerd Я сделал то же самое здесь. Импорт работает довольно хорошо, но Export [], похоже, может работать только с изображениями. Похоже, это скорее нереализованная функция, чем ошибка.
5. @belisarius действительно. Я попробовал «Изображение», и это работает, и mma сама генерирует «Метаданные», которые вы можете прочитать, но не установить. «Автор», «Комментарии» при экспорте не дают ничего, а при импорте — {}.
Ответ №1:
Согласно документации для v.7 и v.8, существует несколько способов достижения желаемого, и у вас почти есть правильная форма правила:
Export["test.fits", {"Data" -> data, "Metadata" -> header}, "Rules"]
Другими способами являются
Export["test.fits", header, "Metadata"]
Export["test.fits", {data, header}, {{"Data", "Metadata"}}]
обратите внимание на двойные скобки вокруг меток элементов во втором методе.
Редактировать: После некоторого тестирования, из-за подсказки от @belisarius, всякий раз, когда я включаю элемент «Метаданные», я получаю сообщение об ошибке, указывающее, что это недопустимый элемент экспорта. Кроме того, вы также не можете экспортировать элемент «RawData». Итак, я бы отправил ошибку по двум причинам: метаданные не настраиваются пользователем, что жизненно важно для любого серьезного приложения. Как минимум, пользователь должен иметь возможность дополнять метаданные Mathematica по умолчанию. Во-вторых, документация крайне неадекватна в описании того, что является «допустимым» элементом экспорта по сравнению с элементом импорта. Конечно, я бы назвал всю документацию для версии 6 и более поздних версий крайне неадекватной, так что это в порядке вещей.
Комментарии:
1. @Markus, я заметил. Как я уже сказал, документация действительно очень плохая.
2. @belisarius Только то, что экспорт метаданных пока не поддерживается и не планируется в будущем. Примеры в документации относятся к функциональности импорта. Тем временем я экспериментировал со ссылками на Pythonika и PyFITS для управления заголовком FITS. Это работает, но мне не удалось включить это в полезный пакет. Если вам интересно, я могу выслать вам экспериментальный блокнот, с которым я играл.
3. @Markus Спасибо за предложение, но я просто хотел задокументировать здесь статус проблемы!
Ответ №2:
Mathematica 9 теперь позволяет экспортировать записи метаданных (заголовков), которые дополняют стандартные требуемые записи. В браузере справки найдите «СООТВЕТСТВУЕТ», и там есть пример, который показывает это (с экспортом, за которым следует импорт для проверки).