Subdataset
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Subdataset
Здравствуйте уважаемые форумчане!
У меня возникла такая ситуация, ввожу команду gdal_translate -outsize 50% 50% as.nc res.nc на что получаю ошибку Input file contains subdatasets. Please, select one of them for reading.
Если правильно понимаю просит выбрать один из subdataset, но дело в том что мне нужно обработать однвременно все subdataset, я нашел один способ как это сделать, использовав ключ -sds, но здесь возникает проблема, каждый subdataset сохроняется в отдельный фаил, собственно в этом и вопрос, скажите пожалуйста, возможноли все сохранять в один результирующий фаил?
Буду благодарен за любую помощь С ув. Nickolay!
У меня возникла такая ситуация, ввожу команду gdal_translate -outsize 50% 50% as.nc res.nc на что получаю ошибку Input file contains subdatasets. Please, select one of them for reading.
Если правильно понимаю просит выбрать один из subdataset, но дело в том что мне нужно обработать однвременно все subdataset, я нашел один способ как это сделать, использовав ключ -sds, но здесь возникает проблема, каждый subdataset сохроняется в отдельный фаил, собственно в этом и вопрос, скажите пожалуйста, возможноли все сохранять в один результирующий фаил?
Буду благодарен за любую помощь С ув. Nickolay!
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Subdataset
Судя по сообщению от gdal_translate это сделать нельзя. С одной стороны, раз программа пишет, что не может этого сделать - то это не ошибка. С другой стороны в разделе Creation Issues (http://gdal.org/frmt_netcdf.html) нет указания, что это делать нельзя. Либо не до конца документирован драйвер, либо это сознательное ограничение утилиты gdal_translate.
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
Но ведь используя команду с ключем -sds, gdal_translate -sds as.nc res.nc, все датасет копируются одновременно, но как я уже говорил сохраняет каждый из них в отдельный фаил, быть может есть какой либо параметр который указывает что нужно сохранить все в один файл, или как альтернативный вариант, возможно ли получившиеся отдельные файлы собрать в один целый?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Subdataset
Я не знаю, как это сделать через GDAL. Ведь это не работа со слоями, а с растрами, которые составляют набор (dataset).
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
А есть ли какя либо другая утилита в GDAL для уменьшения размера растра? Так же я хотел спросить есть какаие либо варианты решения данного вопроса не при помощи гдал?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Subdataset
Через GDAL больше никак нельзя, вроде бы. Вам уменьшенная картинка нужна координатно привязанная или просто так? Можно вытащить все "Subdataset" из файла *.nc (например, в TIF), уменьшить их в растровом редакторе (или через ImageMagick, если надо все "на автомате").NIckolay писал(а):А есть ли какя либо другая утилита в GDAL для уменьшения размера растра? Так же я хотел спросить есть какаие либо варианты решения данного вопроса не при помощи гдал?
Редактор материалов, модератор форума
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Subdataset
Для уменьшения размера растра вы использовали правильную команду, но у вас не растр, а целый набор растров (как бы по простому - как папка с растрами в архиве), упакованный в NetCDF.NIckolay писал(а):А есть ли какя либо другая утилита в GDAL для уменьшения размера растра?
Поищите специализированные утилиты для работы с NetCDF. Заодно и нам расскажете.NIckolay писал(а): Так же я хотел спросить есть какаие либо варианты решения данного вопроса не при помощи гдал?
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
Спасибо большое, дельный совет! Вы спрашивали что конкретно мне нужно, мне нужно на выходе получить уменьшеное изображение. А возмоно ли обратно преобразовать tiff в nc и засунуть все в один фаил?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Subdataset
Позвольте поинтересоваться, а зачем эти изображения совать назад в NetCDF, в этом есть реальный смысл?NIckolay писал(а): мне нужно на выходе получить уменьшеное изображение. А возмоно ли обратно преобразовать tiff в nc и засунуть все в один фаил?
Последний раз редактировалось Александр Мурый 31 янв 2013, 16:31, всего редактировалось 2 раза.
Редактор материалов, модератор форума
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
Возможно мы друг друга не доконца поняли)
Задача такова, есть фаил c расширением .nc нужно получить такойже .nc но в уменьшеном разрешении, т.к gdal_translate требует выбрать только один subdataset, то появилась идея достать каждый subdataset уменьшить его и обратно пихнуть в один .nc все получившиеся уменьшенные subdataset. Это возможно при помоши gdal так сказать создать новыйархив .nc?
Задача такова, есть фаил c расширением .nc нужно получить такойже .nc но в уменьшеном разрешении, т.к gdal_translate требует выбрать только один subdataset, то появилась идея достать каждый subdataset уменьшить его и обратно пихнуть в один .nc все получившиеся уменьшенные subdataset. Это возможно при помоши gdal так сказать создать новыйархив .nc?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Subdataset
Идея-то понятна, просто было интересен практический смысл действий.
Так разрешение надо уменьшить или размер?NIckolay писал(а):нужно получить такойже .nc но в уменьшеном разрешении
Редактор материалов, модератор форума
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
Так меня и интересует как это сделать, не могли бы вы привести пример? Буду очень благодарен
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
И все же может кто нибудь знает, как записать несколько файлов в один .nc (т.е чтоб получился один .nc а те несколько файлов были subdatasets в этом .nc)?
-
- Интересующийся
- Сообщения: 25
- Зарегистрирован: 09 янв 2013, 17:21
- Репутация: 0
Re: Subdataset
Сам себе отвечу, есть специальная утилита ncdump, вроде бы с помощью нее это возможно сделать, но так как мои знания английского слабые, поэтому очень прошу помоч мне, быть может кто либо что то знает о данной утилите?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Subdataset
Я думаю, что <ncdump> здесь не слишком поможет. Это утилита для конвертирования netCDF в текстовый вид.
Можно попробовать так:
-- разбиваем netCDF по всем "субнаборам" данных или перечисляем только нужные "субнаборы", всё это с уменьшением растров:
-- полученный набор файлов *.nc соединяем в один netCDF с помощью cdo (Climate Data Operators¶):
Только надо учитывать, что внутри netCDF могут храниться очень разные данные, и не все наборы данных могут быть уменьшены в размерах и потом "сшиты".
NIckolay, если будут сложности, выложите ваш исходный nc-файл или дайте на него ссылку.
Можно попробовать так:
-- разбиваем netCDF по всем "субнаборам" данных или перечисляем только нужные "субнаборы", всё это с уменьшением растров:
Код: Выделить всё
gdal_translate -sds -outsize 50% 50% example.nc example
Код: Выделить всё
cdo merge example*.nc example_merged.nc
NIckolay, если будут сложности, выложите ваш исходный nc-файл или дайте на него ссылку.
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя