Georeferencje DXF za pomocą QGIS? [duplikować]

14

Mam sobie dxf, który jest zbudowany z jednostek w złej skali. Jak mogę to zmienić w QGIS? Uwaga: otwiera się w QGIS, tylko w niewłaściwych jednostkach mapy i lokalizacji.

Willy
źródło
Powyższa odpowiedź nhopton na temat używania wtyczki qgsAffine działała dla mnie tylko w zeszłym tygodniu. Miałem dxf, który był skalowany 1000x CRS, którego chciałem. Przekształciłem dxf do shp za pomocą standardowej wtyczki, a następnie przekształciłem X i Y, mnożąc przez 0,001 w qgsAffine, i problem został rozwiązany. PS Spóźnione podziękowania dla nhopton za radę, której nie dostałem przed zamknięciem Forum QGIS!
tarnina
Mam też kilka plików DXF, które chciałbym powiązać. Użyłem OpenJump raz, ponieważ nie mogłem zrobić matematyki dla wtyczki QGIS. Jednak w końcu łatwiej mi było zapisać moją warstwę SHP ze znaną projekcją jako DXF, otworzyć ją w (darmowym) QCAD, zaimportować DXF, który wymagał wiązania, i wykonać tam skalowanie, obracanie i przenoszenie DXF. Kiedy wszystko było na swoim miejscu, zapisałem go jako DXF i ponownie zaimportowałem do QGIS, gdzie zachowano projekcję, a mój DXF został teraz ustawiony w odpowiedniej pozycji i skali. Mógłbym wtedy zapisać DXF jako SHP.
Melissa

Odpowiedzi:

12

Ty georeferencyjne rastry i wektory afiniczne :)

QGIS ma afiniczną wtyczkę (qgsAffine), za pomocą której można skalować warstwy wektorowe. W razie potrzeby można również zastosować przesunięcia xiy do wszystkich wierzchołków w warstwie wektorowej. Myślę, że prawdopodobnie będziesz musiał przekonwertować plik DXF na plik kształtu, aby go użyć (kliknij prawym przyciskiem myszy warstwę w panelu warstw i wybierz polecenie „Zapisz jako ...”). Zastosowanie obrotu do warstwy wektorowej jest nieco trudniejsze.

nhopton
źródło
1
Oto kilka wskazówek dotyczących obracania za pomocą qgsAffine: gis.stackexchange.com/q/21696/1872
Mike T
Hmm, tak, przyczyniłem się do tego tematu, który nie wydawał się być zbyt przychylny. Ale w sumie nadal wolę podejście OpenJump, oblicza wszystkie siedem parametrów transformacji, a następnie stosuje je do wektora zainteresowania. Myślę, że widziałem propozycję QGIS GSoC dotyczącą zrobienia tego samego w QGIS, co byłoby pomocne.
nhopton,
Tak, widzę, z czego korzystają ludzie OpenJump i jest o wiele bardziej płynny!
Mike T
9

Kolejną - bardziej interaktywną - opcją jest wtyczka Vector Bender . To

robi wektorom to, co georefencery robi rastrowi. Ta funkcja jest również znana jako „folia gumowa”.

Jest nawet film pokazujący, jak to działa: https://vimeo.com/96142479

podmrok
źródło
3

Wierzę, że można to osiągnąć w QGIS.
Używam jednak oprogramowania cad z moim oprogramowaniem gis i zrobiłbym w nim następujące rzeczy.
Tak czy inaczej potrzebujesz podstawowych informacji o dxf.
1. Powinieneś znać jednostki dxf.
2. Powinieneś mieć zestaw znanych punktów w dxf. (co najmniej 2 punkty).

1a. Jeśli oryginalny układ współrzędnych (lub niesystem) jest możliwy do zidentyfikowania, należy go przekształcić w podobny znany układ.
(jeśli rysunek został właśnie narysowany w innym systemie, ale system podstawowy 0,0 zakłada pewien rodzaj równego obszaru.) albo Alambert, albo albers (w zależności od obszaru pokrycia [rozmiar])
2a. upewnij się, że wszystkie elementy na rysunku są wyświetlone (żadne warstwy nie są wyłączone).
3a. wybierz wszystkie funkcje.
4a przenieś wszystkie funkcje ze znanego punktu do znanego punktu.
5a. po określeniu oryginalnej skali przeskaluj empirycznie wszystkie wybrane obiekty
6a. obróć wszystkie wybrane obiekty empirycznie.
Zapisz i / lub wyeksportuj wybrane obiekty ze znanym CRS.

Brad Nesom
źródło
2

Można to również zrobić za pomocą GDAL 1.10. Podejście to wykorzystuje punkty kontrolne i nie polega wyłącznie na skalowaniu, ale jest pełne georeferencji (przydatne, jeśli dxf utracił wszystkie informacje przestrzenne).

Odbywa się to poprzez wykonanie podstawowej transformacji w ogr2ogr i podanie punktów kontrolnych w znaczniku -gcp. http://www.gdal.org/ogr2ogr.html

Przewodnik znajduje się w: Dane wektorowe georeferencji przy użyciu QGIS

HeikkiVesanto
źródło
2

Użyłem OpenJump raz, ponieważ nie mogłem zrobić matematyki dla wtyczki QGIS. Jednak w końcu łatwiej mi było zapisać moją warstwę SHP ze znaną projekcją jako DXF, otworzyć ją w (darmowym) QCAD, zaimportować DXF, który wymagał wiązania, i wykonać tam skalowanie, obracanie i przenoszenie DXF. Gdy wszystko było na swoim miejscu, zapisałem go jako DXF i ponownie zaimportowałem do QGIS, gdzie zachowano projekcję, a mój DXF został teraz ustawiony w odpowiedniej pozycji i skali. Mógłbym wtedy zapisać DXF jako SHP.

Melisa
źródło
2

Wtyczka AnotherDXF2Shape zawiera moduł Georeferencji: wprowadź opis zdjęcia tutaj

Parametr wprowadź opis zdjęcia tutaj

Za pomocą przesunięcia X i Y można uzyskać proste przemieszczenie DXF. Jest to przydatne, gdy oryginalne współrzędne zostały skrócone w systemie CAD /.

Pliki świata dla zbiorów danych CAD

Plik world (.wld) to plik tekstowy zawierający punkty kontrolne opisujące transformację współrzędnych. Plik świata można wykorzystać do rozszerzenia właściwości rysunku CAD o informacje georeferencyjne. Informacje są przechowywane jako wartości współrzędnych, które definiują jeden lub dwa wektory przemieszczenia zwane łączami. Dane obejmują dwie lub cztery pary współrzędnych zorganizowanych w dwa rzędy. Każdy wiersz definiuje łącze przemieszczenia przy użyciu następującej składni:. Pierwsza para współrzędnych w każdym rzędzie odpowiada współrzędnym źródłowym, znanym również jako współrzędne źródłowe. Te wartości reprezentują położenie x, y dowolnego znanego punktu kontrolnego na rysunku CAD. Druga para współrzędnych w każdym rzędzie odpowiada współrzędnym docelowym, znanym również jako współrzędne. Te wartości reprezentują nową lokalizację w przestrzeni geograficznej, zazwyczaj punkt odniesienia w innej warstwie obiektów. Źródło: arcgis.com

Jeśli transformacja współrzędnych zostanie aktywowana, a wtyczka znajdzie odpowiedni plik WLD, zostanie ona automatycznie zintegrowana, a plik DXF zostanie odpowiednio przekształcony. wprowadź opis zdjęcia tutaj

Transformacja w 1-4 identycznych punktach

Podobnie jak w przypadku zestawu danych CAD, transformacja odbywa się za pomocą identycznych punktów. Liczba parametrów transformacji zależy od liczby podanych punktów. Uwaga: Dane wyjściowe reszt do nadmiernego oznaczania nie są obecnie.

Mikrofon
źródło
1

Myślę, że najszybszym sposobem jest zmodyfikowanie pliku DXF (skalowanie i umieszczenie we właściwych współrzędnych) za pomocą oprogramowania CAD, a następnie załadowanie go do QGIS.

Możesz oczywiście przenosić swoje funkcje w QGIS, ale nie możesz ich skalować. Mam nadzieję że to pomoże.

bradypus
źródło