r.sun QGIS (GRASS)

Александр Мурый
Гуру
Сообщения: 5171
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 779
Ваше звание: званий не имею
Откуда: Москва

Re: r.sun QGIS (GRASS)

Сообщение Александр Мурый » 06 ноя 2015, 14:23

list писал(а): А вот после флага -c , все в порядке. Какой тогда применить флаг? -c?
Флаг "-c" используется только для типов данных Byte и UInt16, почитайте уже наконец справку по модулю.
Файл должен экспортироваться несмотря на ошибку.
Редактор материалов, модератор форума

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 06 ноя 2015, 14:40

Спасибо

Александр Мурый
Гуру
Сообщения: 5171
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 779
Ваше звание: званий не имею
Откуда: Москва

Re: r.sun QGIS (GRASS)

Сообщение Александр Мурый » 06 ноя 2015, 14:44

list писал(а):Спасибо
На здоровье :)
Кстати, при желании вы можете поддержать конференцию "Открытые ГИС 2015", которая как раз нацелена на популяризацию в том числе и GRASS.
Редактор материалов, модератор форума

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 10 ноя 2015, 11:19

Если кому-то интересно, так здесь ( http://uloz.to/xkherbQS/dsm-laser-tar-gz пароль: lidar) находятся данные ЛИДАРа. Цена этих данных немалая.
Приблизительно эта область: https://www.google.cz/maps/@50.6961412,15.7311472,15z

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 15 ноя 2015, 19:17

Не подскажите как написать правильно приказ для r.sun, если мне нужно вычислить солярный потенциал за целый год. Я задаю приказ:
r.sun -s elevin=dtm@PERMANENT aspect=270 slope=0.0 lin=4.2 alb=0.0 coefbh=beam@PERMANENT coefdh=dif@PERMANENT beam_rad=pri_r_smaz insol_time=hod_r_smaz diff_rad=dif_r_smaz glob_rad=glo_r_smaz day=1-365 step=0.5 dist=1.0 numpartitions=1

Но вычисление происходит только 1 января ( day=1)

Александр Мурый
Гуру
Сообщения: 5171
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 779
Ваше звание: званий не имею
Откуда: Москва

Re: r.sun QGIS (GRASS)

Сообщение Александр Мурый » 15 ноя 2015, 22:25

Вы точно читали мануал?
Там сказано:
day=integer [required]
No. of day of the year (1-365)
Options: 1-365
Т.е. считается всегда для какого-нибудь одного дня года.
Если вам нужно посчитать за все дни года, надо писать скрипт, как указано здесь.
Редактор материалов, модератор форума

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 16 ноя 2015, 02:08

Александр Мурый писал(а): Если вам нужно посчитать за все дни года, надо писать скрипт, как указано здесь.
Если я правильно понял то r.sun мне не сможет вычислить целый год в одном растре (четырех =beam, diffuse, global, insol_time). Но может вычислить их 365 х beam, diffuse, global, insol_time.

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 16 ноя 2015, 15:43

Александр Мурый писал(а): Если вам нужно посчитать за все дни года, надо писать скрипт, как указано здесь.
Получается приказ, чтобы вычислить солярный потенциал для всех дней в году должен выглядеть так:

Код: Выделить всё

r.sun -s elevin=elevation.dem day=$DAY lin=$LINKE step=0.05 \
        beam_rad=rad_beam.$DAY_STR diff_rad=rad_diffuse.$DAY_STR \
        refl_rad=rad_reflected.$DAY_STR glob_rad=rad_global.$DAY_STR \
        insol_time=rad_insol_time.$DAY_STR
Что означает $DAY_STR

Код: Выделить всё

for DAY in `seq 1 365` ; do
    DAY_STR=`echo $DAY | awk '{printf("%.03d", $1)}'`
    echo "Processing day $DAY_STR at `date` ..."

Что писать вместо $DAY_STR 1-365

KolesovDmitry
Гуру
Сообщения: 810
Зарегистрирован: 22 авг 2007, 14:58
Статьи: 18
Проекты: 4
Репутация: 122
Откуда: Казань

Re: r.sun QGIS (GRASS)

Сообщение KolesovDmitry » 16 ноя 2015, 17:04

Код: Выделить всё

DAY_STR=`echo $DAY | awk '{printf("%.03d", $1)}'`
В DAY_STR складывается строка -- трехзначный номер дня. Например, если $DAY равен 45, то DAY_STR равен 045.

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 16 ноя 2015, 19:19

KolesovDmitry писал(а):Например, если $DAY равен 45, то DAY_STR равен 045.
Ну а как тогда написать скрипт с годовым вычислением. Меня конкретно интересует day=?. Все остальное знаю а day нет. Может так:

Код: Выделить всё

r.sun -s elevin=elevation.dem day=1-365 lin=$LINKE step=0.05 \
        beam_rad=rad_beam.365 diff_rad=rad_diffuse.365 \
        refl_rad=rad_reflected.365 glob_rad=rad_global.365 \
        insol_time=rad_insol_time.365

Александр Мурый
Гуру
Сообщения: 5171
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 779
Ваше звание: званий не имею
Откуда: Москва

Re: r.sun QGIS (GRASS)

Сообщение Александр Мурый » 16 ноя 2015, 19:22

- Установите дополнительный модуль r.sun.daily (подробнее об установке дополнений читайте здесь). Если не выйдет установить для вашей версии GRASS, ставьте GRASS 7 и пытайтесь в ней.

- Запустите <r.sun.daily> с нужными входными параметрами (elevation, aspect и т.д. ).
Укажите "start_day=1" и "end_day=365". Не используйте флаг "-t" - это только для GRASS 7. В качестве "aspect" и "slope" указывайте растры, посчитанные в GRASS, а не числовые значения. Используйте модуль r.slope.aspect
- Не указывайте параметры с именем "*_basename", а то на выходе получится по нескольку растров для каждого дня года.

Пример:

Код: Выделить всё

r.sun.daily elevation=dtm@PERMANENT aspect=aspect slope=slope lin=4.2 alb=0.0 coefbh=beam@PERMANENT coefdh=dif@PERMANENT beam_rad=pri_r_smaz_year diff_rad=dif_r_smaz_year refl_rad=refl_r_smaz_year  glob_rad=glo_r_smaz_year  day=1-365 step=0.5  
- На выходе у вас получится серия суммарных растров за год: beam_rad, diff_rad, refl_rad, glob_rad.

- Обратите внимание на параметр "linke_value" - важный коэффифиент, который у вас нигде не указан. Читайте в мануале про него.
linke_value=float
A single value of the Linke atmospheric turbidity coefficient [-]
Options: 0.0-7.0
Default: 3.0
Редактор материалов, модератор форума

list
Интересующийся
Сообщения: 28
Зарегистрирован: 10 окт 2015, 01:53
Репутация: 0

Re: r.sun QGIS (GRASS)

Сообщение list » 16 ноя 2015, 19:56

Александр Мурый писал(а):
Пример:

Код: Выделить всё

r.sun.daily elevation=dtm@PERMANENT aspect=aspect slope=slope lin=4.2 alb=0.0 coefbh=beam@PERMANENT coefdh=dif@PERMANENT beam_rad=pri_r_smaz_year diff_rad=dif_r_smaz_year refl_rad=refl_r_smaz_year  glob_rad=glo_r_smaz_year  day=1-365 step=0.5  


- Обратите внимание на параметр "linke_value" - важный коэффифиент, который у вас нигде не указан. Читайте в мануале про него.
linke_value=float
A single value of the Linke atmospheric turbidity coefficient [-]
Options: 0.0-7.0
Default: 3.0
Хорошо, спасибо, буду пытаться. А что касается Linke atmospheric turbidity coefficient, так он у меня вроде бы указан lin=4.2 (это годовой)

Ответить

Вернуться в «GRASS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя