Вопросы по ".vrt Format"
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Вопросы по ".vrt Format"
1. Можно ли задать объединение многих растров, при котором пиксели NoData не учитываются при наложении на данные? Этакий виртуальный аналог gdal_merge.
2. При объединении многих растров, если надо извлечь некоторый прямоугольник из виртуального растра, созданного как сказано в п.1, то считаются ВСЕ растры в память или только в пределах прямоугольника?
3. При работе с тяжелыми растрами имеет ли смысл? Т.к. есть около 1.5 ТБ растров, из которых периодически нужны не крупные фрагменты, но обязательно "слитые".
4. Если для каждого растра построена "пирамида растров", то это как то помогает при обработке?
Заранее спасибо за ответы.
2. При объединении многих растров, если надо извлечь некоторый прямоугольник из виртуального растра, созданного как сказано в п.1, то считаются ВСЕ растры в память или только в пределах прямоугольника?
3. При работе с тяжелыми растрами имеет ли смысл? Т.к. есть около 1.5 ТБ растров, из которых периодически нужны не крупные фрагменты, но обязательно "слитые".
4. Если для каждого растра построена "пирамида растров", то это как то помогает при обработке?
Заранее спасибо за ответы.
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Вопросы по ".vrt Format"
1. Надо проверять, но кажется - да
2. Только в пределах прямоугольника (еще GDAL кэширует открытые растры для ускорения доступа - только хэндл файла)
3. Возможно, смотря что необходимо
4. Да, помогает, но для vrt растра стоит сделать свою пирамиду тоже для крупных масштабов. Тогда при отображении всего растра будет браться пирамида vrt, при приближении к определенному уровню, сшитые пирамиды исходных растров.
2. Только в пределах прямоугольника (еще GDAL кэширует открытые растры для ускорения доступа - только хэндл файла)
3. Возможно, смотря что необходимо
4. Да, помогает, но для vrt растра стоит сделать свою пирамиду тоже для крупных масштабов. Тогда при отображении всего растра будет браться пирамида vrt, при приближении к определенному уровню, сшитые пирамиды исходных растров.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Вопросы по ".vrt Format"
Спасибо за ответы.
Уточняю п.3: нужно оперативно, получать фрагменты из набора растров, созданных по-планшетно с перехлестом в NoData, иногда не только за пределами планшета, но и внутри него. Получать пока означает "вырезать" прямоугольником (верхний левый - нижний правый без поворота) в исходной проекции растра, но в перспективе может быть, что и в окно программы.
П.4 можно чуть подробней:
а) построить чем? все тем же gdaladdo ?
б) вот прямо так и указать весь VRT растр и масштаб 2,4,... ? А не упадет?
Уточняю п.3: нужно оперативно, получать фрагменты из набора растров, созданных по-планшетно с перехлестом в NoData, иногда не только за пределами планшета, но и внутри него. Получать пока означает "вырезать" прямоугольником (верхний левый - нижний правый без поворота) в исходной проекции растра, но в перспективе может быть, что и в окно программы.
П.4 можно чуть подробней:
а) построить чем? все тем же gdaladdo ?
б) вот прямо так и указать весь VRT растр и масштаб 2,4,... ? А не упадет?
- Дмитрий Барышников
- Гуру
- Сообщения: 2572
- Зарегистрирован: 17 ноя 2009, 19:17
- Репутация: 261
- Откуда: Москва
Re: Вопросы по ".vrt Format"
3) Есть такой API RasterIO (http://www.gdal.org/classGDALDataset.ht ... 1ab5fbc667) который позволяет запросить любой кусок растра по пиксельным координатам (причем не важно какой растр реальный или виртуальный). Так что там проблем нет. Софт который использует GDAL должен уметь пользоваться этим API.
4.a) да
4.б) да, так и указать. Только надо так подобрать уровни, что бы не пересекалось с пирамидами отдельных растров: vrt_width (vrt_height) / level > raster_width (raster_height). Т.е. делаем пирамиды растров 2, 4, 8, ... raster_width (raster_height) / level > 64. Далее делаем пирамиды всего vrt - от vrt_width (vrt_height) / level > raster count x * 64 (raster count y * 64) и до vrt_width (vrt_height) / level > 64
Упасть не должен, но может сильно свопить.
P.S. 64 взял с потолка. Это минимальный размер пирамидного слоя в пикеселах.
4.a) да
4.б) да, так и указать. Только надо так подобрать уровни, что бы не пересекалось с пирамидами отдельных растров: vrt_width (vrt_height) / level > raster_width (raster_height). Т.е. делаем пирамиды растров 2, 4, 8, ... raster_width (raster_height) / level > 64. Далее делаем пирамиды всего vrt - от vrt_width (vrt_height) / level > raster count x * 64 (raster count y * 64) и до vrt_width (vrt_height) / level > 64
Упасть не должен, но может сильно свопить.
P.S. 64 взял с потолка. Это минимальный размер пирамидного слоя в пикеселах.
-
- Гуру
- Сообщения: 4205
- Зарегистрирован: 10 апр 2006, 22:34
- Репутация: 433
- Откуда: Париж
Re: Вопросы по ".vrt Format"
Спасибо за разъяснения! Буду экспериментировать.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей