Страница 1 из 1
Обработка объемных растров: ошибка
Добавлено: 25 мар 2011, 02:26
Evgenia
Пытаюсь обработать растр..довольно объемный. Выдает ошибку: ERROR: G_malloc: unable to allocate 99020 bytes at main.c:283. GRASS 6.4.1. Как с этим справится?
Re: Обработка объемных растров: ошибка
Добавлено: 25 мар 2011, 12:09
Александр Мурый
Похоже, что GRASS не хватает системной памяти для обработки. Только вот цифры какие-то странные -- 99020 байт.
Обычно может не хватать памяти при размерах больше 2Gb на 32-битных системах (это в Windows, в Linux работает при 2 гигах нормально, используя своп).
Пожалуйста, приложите вывод команд (если это не секрет), с ними будет гораздо проще разобраться:
g.version -b
g.region -p
r.info ваш_тяжёлый_растр
И ещё (главное!) -- какой модуль выдаёт ошибку?
Re: Обработка объемных растров: ошибка
Добавлено: 26 мар 2011, 01:58
Evgenia
Я уменьшила растр, как смогла, не меняя разрешения (обрезала по ненужным значениям). Сейчас он "весит" порядка 600мб. ОС у меня Win7 (на висте тоже самое). Модуль r.lake (to amuriy: из соседнего форума

) выдает такую ошибку:
ERROR: G_calloc: unable to allocate 16743 * 4 bytes at main.c:284
Данные для справки:
g.region -p
projection: 99 (Equal Area Cylindrical)
zone: 0
datum: ** unknown (default: WGS84) **
ellipsoid: a=6371228 es=0
north: 5834755.84260072
south: 4362780.86794031
west: 4261448.0521709
east: 5564121.39646707
nsres: 77.80405807
ewres: 77.80405807
rows: 18919
cols: 16743
cells: 316760817
r.info
Type of Map: raster Number of Categories: 50 |
| Data Type: CELL |
| Rows: 18919 |
| Columns: 16743 |
| Total Cells: 316760817 |
| Projection: Equal Area Cylindrical |
| N: 5834755.84260072 S: 4362780.86794031 Res: 77.80405807 |
| E: 5564121.39646707 W: 4261448.0521709 Res: 77.80405807 |
| Range of data: min = -1046 max = 50 |
| |
| Data Description: |
| generated by r.in.gdal
Версию не хочет выдавать..ругается. вот так:
"g.version" Ґ пў«пҐвбп ўгв॥© Ё«Ё ўҐиҐ©
Є®¬ ¤®©, ЁбЇ®«пҐ¬®© Їа®Ја ¬¬®© Ё«Ё Ї ЄҐвл¬ д ©«®¬. Но вообще
версия 6.4.1
Да, при изменении разрешения для региона (грубее в 4раза, например) все работает...
Re: Обработка объемных растров: ошибка
Добавлено: 26 мар 2011, 11:17
Александр Мурый
К сожалению, диагноз неутешителен. Читаем в мануале к
r.lake:
# The entire map is loaded into RAM.
# The module is NOT large file safe. (due to the previous point)
Значит, надо либо порезать растр на несколько частей, на их основе создать несколько наборов и считать в каждом отдельно, либо, действительно, уменьшать разрешение. Либо найти машину помощнее с памятью 4Гб и выше (с соотв-й 64-битной системой).
Re: Обработка объемных растров: ошибка
Добавлено: 28 мар 2011, 00:02
Evgenia
Да, я тоже это читала, но все еще надеялась на чудо..=) Спасибо вам большое. Чудеса, видно, надо делать самим - доставить памяти и установить 64-битную систему)
Re: Обработка объемных растров: ошибка
Добавлено: 28 мар 2011, 07:45
KolesovDmitry
Evgenia писал(а):Да, я тоже это читала, но все еще надеялась на чудо..=) Спасибо вам большое. Чудеса, видно, надо делать самим - доставить памяти и установить 64-битную систему)
Может, чем устанавливать новую систему, попытаться работать не со всем растром, а использовать g.region для разбиения большой карты на несколько подчастей и с каждой из них работать в отдельности? А потом склеить полученные результаты обратно в большой растр?
(В общем-то это стандартный подход, ведь всегда есть задачи, для которых не хватает ресурсов).