Я использую привязки 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 .
Или, может быть, есть какой-то другой метод подавления метаданных при открытии подстраны?