3

I have several polygon shapefiles whose coordinates are defined as 100x their original coordinates projected from the Washington State South HARN State Plane in us-ft (EPSG 2927). I would imagine the purpose of this scheme is to represent more precise coordinates in integer form. Unfortunately, I am having a hard time representing this custom coordinate system as a proj4 specification in QGIS. Each of these shapefiles has a .prj file and no .qpj file.

Things I have tried or thought of:

  1. creating a custom proj file by editing the +units parameter to "us-ft/100" (not defined).
  2. the .prj file has a parameter called "scale-factor" that I tried to set to 0.01, but QGIS does not appear to read this (not sure if the .prj file is being ignored or just this parameter).
  3. using a geoalgorithm to "rescale" each feature in the shapefile by 0.01, so that they actually fit within the standard EPSG 2927 CRS.
  4. Going back to the original application (Geomedia) to reproject the shapefile, which I am finding is difficult with shapefiles. I would also just like to know if there is a more "open source" way of doing this.

What is the best way to accomplish this task in QGIS?

1 Answer 1

7

Your first idea is almost working. It needs a scaling factor between custom units and meters:

Copy the definition of EPSG:2927

+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001016001 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=us-ft +no_defs

to clipboard, and paste it into a new custom CRS. then replace +units with +to_meter:

+proj=lcc +lat_1=47.33333333333334 +lat_2=45.83333333333334 +lat_0=45.33333333333334 +lon_0=-120.5 +x_0=500000.0001015998 +y_0=0 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +to_meter=0.00304800609601219 +no_defs

You can find +to_meter values for all accepted units in this ticket:

http://hub.qgis.org/issues/9414

Note that the proj.4 values for +x_0 and +y_0 are always in meters, while the same data in WKT is in the units of the projection. So you have to change these values in a custom WKT too:

PROJCS["Lambert_Conformal_Conic",
  GEOGCS["GCS_GRS 1980(IUGG, 1980)",
  DATUM["D_unknown",
  SPHEROID["GRS80",6378137,298.257222101]],
  PRIMEM["Greenwich",0],
  UNIT["Degree",0.017453292519943295]],
PROJECTION["Lambert_Conformal_Conic"],
  PARAMETER["standard_parallel_1",47.33333333333334],
  PARAMETER["standard_parallel_2",45.83333333333334],
  PARAMETER["latitude_of_origin",45.33333333333334],
  PARAMETER["central_meridian",-120.5],
  PARAMETER["false_easting",164041666.7],
  PARAMETER["false_northing",0],
  UNIT["unknown",0.00304800609601219]]
3
  • 1
    I've been trying to figure out the solution for the past 15 minutes, and was going to suggest that the original problem with 1 was that "/100" part. It was mentioned that the scale factor didn't seem to be having an effect, but I wondered if it was a formatting thing. Would using +k_0=0.001 instead of changing units to +to_meter not work?
    – Chris W
    Commented Jun 4, 2015 at 19:21
  • 2
    No, the scale factor is only useful for single parallel lcc, see remotesensing.org/geotiff/proj_list/… and Snyder's manual.
    – AndreJ
    Commented Jun 5, 2015 at 3:59
  • Since these are shapefile copies of the original data in SQL Spatial, I could get away with using the qgsAffine plugin (mentioned in another post) to simply translate the shapefile. The answer and comments are really useful insights into proj.4 and wkt coordinate system definitions though, which were not terribly obvious on the osgeo proj4 page.
    – mmorgan
    Commented Jun 5, 2015 at 20:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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