Шкала и Z-фактор не влияют на анализ холмов в QGIS

10

Я использовал SRTM DEM для создания горки в QGIS 2.2.0. Тем не менее, результирующая горная тень, как представляется, вертикально преувеличена. Кроме того, изменение настроек масштаба и z-фактора не влияет на результирующую тень. Я пробовал оба варианта в QGIS, Анализ-> DEM (Модели рельефа) и Анализ рельефа -> Склон. Оба метода дали одинаковые результаты.

Это отдельный инцидент, ошибка или я что-то упустил?

PyMapr
источник
4
Когда вы используете матрицу высот с латлонными координатами в десятичных градусах и вертикальными единицами в метрах, вы должны установить масштаб (отношение вертикальных единиц к горизонтальным единицам) равным 111120. Я пробовал с парой ЦМР от Aster, у меня нет проблем. Этот параметр применяется не только для затенения холмов, но и для расчета уклона. Надеюсь, это поможет
Херардо Хименес
@ GerardoJimenez, я попробовал, и это сработало. Спасибо
PyMapr
@GerardoJimenez, Thanderbolt любой из вас должен представить и ответить на этот вопрос, и Thunderbolt должен принять его, чтобы удалить этот вопрос из оставшихся без ответа.
SS_Rebelious

Ответы:

12

@ Ответ Герардо верен только на экваторе. В документе gdaldem отмечается, что эти значения шкалы предназначены для «проекций Латлонга вблизи экватора»

Чтобы рассчитать масштаб или Z-фактор (обратный масштаб) на других широтах для демона с вертикальными единицами измерения в метрах, вы можете использовать следующие уравнения:

s=111320*cos(latitude*pi/180)
z=1/(111320*cos(latitude*pi/180))

где: 111320 - это длина одного градуса на экваторе в метрах (на основе WGS84, вы можете использовать 111111, если это легче запомнить, или у вас есть понимание истории ), а широта - это широта в центре вашей матрицы высот.

Вы можете быстро рассчитать коэффициент масштабирования / z в Excel / Libre Office Calc по следующим формулам:

For -s scale parameter
=111320*COS(latitude*PI()/180)
or
=111320*COS(RADIANS(latitude))

For -z z factor parameter
=1/(111320*COS(latitude*PI()/180)
or
=1/(111320*COS(RADIANS(latitude))

Вы даже можете использовать простой поиск Google:

111320 * cos(latitude deg)
or
1/(111320 * cos(latitude deg))

Например, масштаб и коэффициент z для широты = 38,5 с

Для ЦМР с вертикальными единицами в футах, просто преобразуйте длину в один градус на экваторе в метрах в футы, то есть 3,28 * 111320 = 365130. Таким образом, ваши уравнения становятся:

s=365130*cos(latitude*pi/180)
z=1/(365130*cos(latitude*pi/180))

В качестве альтернативы, вы можете перепроектировать вашу DEM в спроектированную скоординированную систему (также предложенную gdaldem docs).

user2856
источник
Этот ответ действительно помог мне сегодня, но я немного запутался в терминах, используемых в QGIS. Когда я иду в Растр - Анализ рельефа - Наклон, я получаю поле с именем «Z factor», но здесь я должен ввести значение, которое здесь называется «масштаб», а не обратное значение, которое здесь называется «Z factor». Вы не можете ввести очень маленькое число, которое я получаю при вычислении обратного вычисления выше, и значение по умолчанию уже говорит вам, что это должно быть большое число, но оно все еще немного сбивает с толку, потому что я думал, что оба термина "масштаб" против "фактора z" не может быть использован как синоним
Тая
@Taya Я не вижу поля "Z Factor" в инструменте Raster-> Analysis-> DEM (Terrain Models) из меню в QGIS 2.14. Я вижу только поле Scale. Возможно, это была ошибка в более ранних версиях QGIS ...? Изменить: Ааа, вы используете плагин анализа местности , это должно быть ошибка в плагине.
user2856
Я бы предложил несколько изменений в этом ответе: 1. Для большинства приложений вы использовали бы либо масштабный коэффициент s, либо z-фактор, а не оба (s кажется более логичным и лучше работает в QGIS). 2. Коэффициент масштабирования север-юг всегда 111320, а масштаб восток-запад - 111320*cos(latitude*pi/180). В высоких широтах эта разница создаст существенные проблемы, и вам, вероятно, необходимо выполнить перепроецирование в систему координат счетчика (например, UTM) перед расчетом. В низких широтах, вы можете попробовать расщепление разницу: s = 111320 * 0.5 * (1 + cos(latitude*pi/180)).
Матиас Фрипп
4

При работе с матрицами высот в длинных координатах широты с их единицами измерения в десятичных градусах и вертикальными единицами измерения в метрах необходимо установить «масштаб (отношение вертикальных единиц к горизонтальным единицам) на 111120. В

http://www.gdal.org/gdaldem.html

они даже предполагают, что этот параметр для ЦМР с координатами лантлона и вертикальными единицами в футах, масштаб должен быть установлен на 370400

Эти настройки влияют также на расчеты уклона.

Херардо Хименес
источник