> В GRASS загружается растровый слой из беззаголовочного файла,
> содержащего 32-разрядные числа с плавающей точкой, подобно:
> $ r.in.bin -f input=example.dat output=example \
> bytes=4 \
> north=100000 south=-100000 east=200000 west=-200000 \
> rows=200 cols=400
> однако,
r.info(1grass) в отношении результирующего слоя дает min = 0,
> max = 0. В чем может быть причина?
Какая используется версия GRASS? Нельзя ли привести исходный
файл (или фрагмент оного), с которым возникает проблема?
Для начала, я бы проверил, действительно ли исходный файл
содержит искомые данные, причем соответствующего указанному
формата. (Включая разрядность и порядок байт в слове;
по-умолчанию, если верить документации, r.in.bin(1grass)
использует «родной» для исполняющей платформы порядок байт.)
E. g.:
$ od -t f4 < example.dat | head
Кроме того, параметр bytes= кажется подозрительным; AIUI, опции
-f, -d уже предполагают определенную разрядность (32 и 64 бита,
соответственно.) Возможно, наличие bytes= в данном случае
мешает корректной работе программы?
Не исключено, кроме того, что метаданные min, max не были
корректно сформированы при усвоении. Проверить, e. g.:
$ g.region -u save=region-1358626695
$ WIND_OVERRIDE=region-1358626695 r.stats -c input=example
Стоит также проверить, не возникло ли некоей «нештатной
ситуации», вроде недостаточного пространства (или квоты) на
целевой ФС (df(1), quota(1).) Характерным признаком такой
ситуации являются нулевые размеры соответствующих файлов; e. g.:
$ find ~/.grass-data/LOCATION/DATASET/ \
-name example \
-exec ls -l -- {} +
--
FSF associate member #7257