Страница 1 из 1
Вопросы по ".vrt Format"
Добавлено: 02 июн 2015, 02:19
Boris
1. Можно ли задать объединение многих растров, при котором пиксели NoData не учитываются при наложении на данные? Этакий виртуальный аналог gdal_merge.
2. При объединении многих растров, если надо извлечь некоторый прямоугольник из виртуального растра, созданного как сказано в п.1, то считаются ВСЕ растры в память или только в пределах прямоугольника?
3. При работе с тяжелыми растрами имеет ли смысл? Т.к. есть около 1.5 ТБ растров, из которых периодически нужны не крупные фрагменты, но обязательно "слитые".
4. Если для каждого растра построена "пирамида растров", то это как то помогает при обработке?
Заранее спасибо за ответы.
Re: Вопросы по ".vrt Format"
Добавлено: 02 июн 2015, 09:37
Дмитрий Барышников
1. Надо проверять, но кажется - да
2. Только в пределах прямоугольника (еще GDAL кэширует открытые растры для ускорения доступа - только хэндл файла)
3. Возможно, смотря что необходимо
4. Да, помогает, но для vrt растра стоит сделать свою пирамиду тоже для крупных масштабов. Тогда при отображении всего растра будет браться пирамида vrt, при приближении к определенному уровню, сшитые пирамиды исходных растров.
Re: Вопросы по ".vrt Format"
Добавлено: 03 июн 2015, 01:01
Boris
Спасибо за ответы.
Уточняю п.3: нужно оперативно, получать фрагменты из набора растров, созданных по-планшетно с перехлестом в NoData, иногда не только за пределами планшета, но и внутри него. Получать пока означает "вырезать" прямоугольником (верхний левый - нижний правый без поворота) в исходной проекции растра, но в перспективе может быть, что и в окно программы.
П.4 можно чуть подробней:
а) построить чем? все тем же gdaladdo ?
б) вот прямо так и указать весь VRT растр и масштаб 2,4,... ? А не упадет?
Re: Вопросы по ".vrt Format"
Добавлено: 03 июн 2015, 13:01
Дмитрий Барышников
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 взял с потолка. Это минимальный размер пирамидного слоя в пикеселах.
Re: Вопросы по ".vrt Format"
Добавлено: 04 июн 2015, 00:28
Boris
Спасибо за разъяснения! Буду экспериментировать.