Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I have got myself a dxf which is built with units in the wrong scale. How do I upscale that in QGIS? Note it does open in QGIS, just in the wrong map units and location.

share|improve this question
    
thanks guys, I seem to have got bogged down with getting to the dxf format, will work on that for a bit first.... –  Willy Apr 2 '12 at 14:23
add comment

5 Answers

up vote 6 down vote accepted

You georeference rasters and affine vectors :)

QGIS has an affine plug-in (qgsAffine) with which you can scale vector layers. You can also apply x and y offsets to all of the vertices in a vector layer if required. I think you will probably need to convert your DXF to a shapefile to use it though (right-click on the layer in the layers panel and go 'Save as...'). Applying rotation to a vector layer is slightly more difficult.

share|improve this answer
1  
Here are some tips to rotating with qgsAffine: gis.stackexchange.com/q/21696/1872 –  Mike T Apr 2 '12 at 21:37
    
Hum yes, I did make a contribution to that topic which didn't seem to find much favour. But on balance I still prefer the OpenJump approach, it calculates all seven transformation parameters and then applies them to the vector of interest. I think I saw a QGIS GSoC proposal for doing the same thing in QGIS, which would be helpful. –  nhopton Apr 3 '12 at 7:49
    
Yeah, I see what the OpenJump folks are using and it is much slicker! –  Mike T Apr 3 '12 at 8:22
add comment

I believe this can be accomplished in QGIS .
However I use cad software with my gis software and would do the following in it.
Either way you need some basic information about the dxf.
1. You should know the units of the dxf.
2. You should have a set of known points in the dxf. (at the very least 2 points).

1a. If the original coordinate system (or non-system) is identifiable then you should transform it to a similar known system.
(if the drawing was just drawn in no system but a 0,0 base system assume some type of equal area.) either alambert or albers (dependent upon the coverage area [size])
2a. ensure that all items in the drawing are displayed (no layers turned off).
3a. select all the features.
4a. move all the features from a known point to a known point.
5a. after determining the original scale resize all selected objects empirically
6a. rotate all selected objects empirically.
Save and/or export the selected objects with a known CRS.

share|improve this answer
add comment

The fastest way, I think, is to modify your DXF file (scale and place in right coordinates) using a CAD software, and then load it in QGIS.

You can, of course, move your features in QGIS, but you can not scale them. Hope this helps.

share|improve this answer
add comment

nhopton's answer above on using the qgsAffine plugin worked for me only last week. I had a dxf that was scaled 1000x the CRS I wanted. I transformed the dxf to shp with the standard plugin, then transformed X and Y by multiplying by .001 in qgsAffine, and problem was solved.

PS Belated thanks to nhopton for the advice, which I didn't get to extend before the QGIS Forum was shut down!

share|improve this answer
add comment

This can also be done using GDAL 1.10. The approach uses control points, and is less about just scaling, but full on georeferencing (handy if the dxf has lost all of its spatial information).

It is done by performing a basic transformation in ogr2ogr and supplying the control points in the -gcp tag. http://www.gdal.org/ogr2ogr.html

For a guide please see: Georeferencing vector data using QGIS

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.