GDAL Очень медленно открывающиеся поднаборы данных - PullRequest
0 голосов
/ 12 апреля 2019

Я использую привязки C # v2.3.3 для GDAL, обрабатывая несколько типов растровых файлов.

При использовании растра HDF5 может быть много наборов субданных (HDF5 - это просто контейнер для нескольких наборов данных или растров).

Я обнаружил, что открытие определенного набора данных из HDF5 с помощью вызова var ds = Gdal.Open(...) или var ds = Gdal.OpenEx(...) выполняется очень медленно (в среднем около 900 мс).

Причина, по-видимому, заключается в том, что каждое открытие набора данных содержит все метаданные всего контейнера HDF5 , а не только метаданные, относящиеся к указанному набору данных.

var source = @"f:\mysource.h5";
var subName = "HDF5:\"F:\\mysource.h5\"://geo/0.05000/259_575/depth";
var openOptions = new[] {"NO_METADATA", "YES"};

var subDs = Gdal.OpenEx(subName, 0, null, openOptions, null);

Здесь я пытаюсь предоставить опцию подавления метаданных, но безрезультатно. Когда я проверяю объект subDs, используя Gdal.GDALInfo(subDs, null), я вижу всю ожидаемую информацию, такую ​​как драйвер (набор данных HDF5Image / HDF5), система координат (wgs84), размер пикселя и т. Д., А также очень длинный список метаданных с информацией обо всех поднаборах. Пример (всего 10 из 9000 строк текста):

geo_0.05000_249_563_east=282 
geo_0.05000_249_563_north=35 
geo_0.05000_249_563_security_key=100 
geo_0.05000_249_563_south=34.5 
geo_0.05000_249_563_west=281.5 
geo_0.05000_249_564_east=282.5 
geo_0.05000_249_564_north=35 
geo_0.05000_249_564_security_key=100 
geo_0.05000_249_564_south=34.5 
geo_0.05000_249_564_west=282

Как вы видите, эти имена субданных отличаются от того, что я открыл (259_575).

Вызов Gdal.OpenEx(...) обычно довольно быстрый, даже для больших файлов GeoTIFF. Для сравнения, для открытия GeoTIFF с сопоставимым размером данных и проекцией требуется всего 40 мс.

У меня вопрос: есть ли "открытая опция", которая будет подавлять встречающиеся метаданные? Я не нашел ничего полезного на странице драйверов GDAL / HDF5 .

Или, может быть, есть какой-то другой метод подавления метаданных при открытии подстраны?

...