Обчислювальні параметри для QGIS Affine перетворення?


15

У мене є векторний план поверху (DXF), який я додав до порожнього проекту в QGIS за допомогою плагіна Dxf2Shp.

Я читав підручники та теми StackExchange, але не можу зрозуміти, як "геореферувати" мій шар?

Я припускаю, що я можу якось вибрати кути будівлі та встановити ширину / довгу.

Моя мета - експортувати файл з форматом, який я можу використовувати з TileMill і TileStache .

Я зрозумів, що координати проекту були насправді лат / довгі координати:

введіть тут опис зображення

і мені потрібно використовувати плагін "Affine (Rotation, Translation, Scale)", щоб "розмістити" свій малюнок CAD.


подібне запитання: gis.stackexchange.com/questions/23998/…
underdark

Відповіді:


2

Використання OpenJump для обчислення параметрів афінного перетворення:

Scale x: 0.02550720529745378
Scale y: 0.025669710194697357
Rotation: -88.6538203230914
Dx: 357101.9 (Translation x)
Dy: 4512814.6 (Translation y)

Ці параметри при правильному застосуванні повинні перетворити файл вашої форми з локальної CRS, яку він використовує, у WGS84 / UTM Zone 17 North (EPSG: 32617). У QGIS трансформовані дані потім можуть бути експортовані ("збережені як") до будь-якої необхідної CRS; Наприклад, Google Mercator або lat / lon.

Погана новина полягає в тому, що мені ніколи не вдалося успішно використовувати плагін QGIS афін для перетворень, що включають обертання. За деякими рахунками, це працює для інших людей, але не для мене, тому це, мабуть, щось не так. Якщо хтось міг би сказати мені, що це, я був би вдячний.

Була нитка тут на афінаж векторів , які добре стоять читати. Метод, який я використовую для афінування векторів, пояснюється тут внизу першої сторінки.

Якщо ви дійсно застрягли, ви можете опублікувати посилання на форм-файл, і ми все можемо перейти до його перетворення.

Задумливість. Якщо ви вирішите спробувати метод OpenJump, вам знадобляться координати WGS84 / UTM Zone 17 North (EPSG: 32617) для ваших точок lat / lon:

EPSG:32617: 361154.4 4513930.1
lat/long: 40.764622,-82.645056
shapefile coor: 947.3,1242.8

EPSG:32617: 361152.2 4513850.3
lat/long: 40.763903,-82.645064
shapefile coor: 4050.3,1035.7

EPSG:32617: 361246.5 4513886.7
lat/long: 40.764247,-82.643956
shapefile coor: 2710.5,4765.2

2
Схоже, не існує послідовного, простого для пояснення робочого процесу для афінної трансформації в QGIS. Посилання на форум у вашому поясненні мертве. Усі пошуки, як використовувати OpenJump для цього завдання, знову закінчуються тут. Ви можете мати якісь оновлення щодо цього?
Бернд В.

Тепер ви можете використовувати GRASS v.transform з набору інструментів Sextante для здійснення векторних афінних перетворень. Документацію для цього можна знайти тут: grass.osgeo.org/grass64/manuals/v.transform.html, але насправді все, що вам потрібно буде подивитися, - це формат текстового файлу. N.
nhopton

27

Спочатку потрібно спроектувати свої географічні координати на декартову 2D систему координат, оскільки афінні перетворення не стосуються географічних систем координат.

Ви можете застосувати афінне перетворення з контрольних точок або з параметрів перетворення. Плагін QGIS задає вам параметри перетворення, але користувач набагато частіше має контрольні точки.

З контрольних точок можна обчислити параметри перетворення. Для афінного перетворення існує 6 параметрів перетворення, тому вам потрібно щонайменше 3 контрольних точки (кожна контрольна точка має на увазі 4 координати: Xsource, Ysource, Xtarget, Ytarget), але більше контрольних точок рекомендується мати надмірність і таким чином мати можливість застосувати Найменші квадрати, за якими можна було б оцінити якість трансформації. Пам'ятайте, що афінні перетворення можуть обертатися, змінюватися, масштабуватися (навіть застосовуючи різні фактори на кожній осі) та перекошуючи геометрії.

Пункти контролю повинні мати вигляд:

X SOURCE: Xs
Y SOURCE: Ys
X TARGET: Xt
Y TARGET: Yt

Параметри:

a: Scale X 
e: Scale Y
d: Rotation X
b: Rotation Y
c: Translation X
f: Translation Y

І ми знаємо:

Xt = X*a + Y*b + c
Yt = X*d + Y*e + f

Отже, вам потрібно вирішити цю систему рівнянь (для 3 контрольних точок):

¦ Xs1 Ys1 1 0 0 0 ¦ | a ¦   ¦ Xt1 ¦
¦ Xs2 Ys2 1 0 0 0 ¦ ¦ b ¦   ¦ Xt2 ¦ 
¦ Xs3 Ys3 1 0 0 0 ¦ ¦ c ¦ = ¦ Xt3 ¦ 
¦ 0 0 0 Xs1 Ys1 1 ¦ ¦ d ¦   ¦ Yt1 ¦ 
¦ 0 0 0 Xs2 Ys2 1 ¦ ¦ e ¦   ¦ Yt2 ¦ 
¦ 0 0 0 Xs3 Ys3 1 ¦ ¦ f ¦   ¦ Yt3 ¦

Де параметри a, b, c, d, e та f невідомі.

Як тільки ви обчислюєте параметри a, b, c, d, e та f (наприклад, за допомогою цього онлайн-рішення рівняння ), розмістіть їх у інтерфейсі плагінів QGIS таким чином:

X' = a*x + b*y + c
Y' = d*x + e*y + f

або:

Параметри афінного перетворення

Я думаю, що це вирішує два ваші питання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.