[GRASS-user] LiDAR data CRS issue

I've defined a location using NAD83(2011) / Oregon North (ft). But, the
prj.adf file for the data is:
Projection LAMBERT
Spheroid GRS80
Units 3.280839895013123
Zunits NO
Xshift 0.0
Yshift 0.0
Parameters
   43 0 0.0 /* 1st standard parallel
   45 30 0.0 /* 2nd standard parallel
-120 30 0.0 /* central meridian
   41 45 0.0 /* latitude of projection's origin
400000.0 /* false easting (meters)
0.0 /* false northing (meters)

This is EPSG: 7019, but it's not a CRS, is it?

How do I define a location that will accept these data?

Rich

On Sat, Apr 29, 2023 at 5:40 PM Rich Shepard <rshepard@appl-ecosys.com> wrote:

I've defined a location using NAD83(2011) / Oregon North (ft). But, the
prj.adf file for the data is:
Projection LAMBERT
Spheroid GRS80
Units 3.280839895013123
Zunits NO
Xshift 0.0
Yshift 0.0
Parameters
   43 0 0.0 /* 1st standard parallel
   45 30 0.0 /* 2nd standard parallel
-120 30 0.0 /* central meridian
   41 45 0.0 /* latitude of projection's origin
400000.0 /* false easting (meters)
0.0 /* false northing (meters)

This is EPSG: 7019, but it's not a CRS, is it?

Here you may find valid codes for a specific area:

https://crs-explorer.proj.org/?latlng=44.552901,-123.266602&ignoreWorld=false&allowDeprecated=false&authorities=EPSG&activeTypes=PROJECTED_CRS

A click then brings you to EPSG.org, Find in the upper right a tiny
"WKT" button which shows eg.:

https://epsg.org/crs/wkt/id/6559
-> WKT:

PROJCRS["NAD83(2011) / Oregon North
(ft)",BASEGEOGCRS["NAD83(2011)",DATUM["NAD83 (National Spatial
Reference System 2011)",ELLIPSOID["GRS
1980",6378137,298.257222101,LENGTHUNIT["metre",1,ID["EPSG",9001]],ID["EPSG",7019]],ID["EPSG",1116]],ID["EPSG",6318]],CONVERSION["SPCS83
Oregon North zone (International feet)",METHOD["Lambert Conic
Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false
origin",43.6666666666669,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8821]],PARAMETER["Longitude
of false origin",-120.5,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8822]],PARAMETER["Latitude
of 1st standard
parallel",46,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8823]],PARAMETER["Latitude
of 2nd standard
parallel",44.3333333333336,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8824]],PARAMETER["Easting
at false origin",8202099.738,LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",8826]],PARAMETER["Northing
at false origin",0,LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",8827]],ID["EPSG",15351]],CS[Cartesian,2,ID["EPSG",4495]],AXIS["Easting
(X)",east],AXIS["Northing
(Y)",north],LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",6559]]

More human readable output you get with `projinfo`:

projinfo EPSG:6559
PROJ.4 string:
+proj=lcc +lat_0=43.6666666666667 +lon_0=-120.5 +lat_1=46
+lat_2=44.3333333333333 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80
+towgs84=0,0,0,0,0,0,0 +units=ft +no_defs +type=crs

WKT2:2019 string:
PROJCRS["NAD83(2011) / Oregon North (ft)",
    BASEGEOGCRS["NAD83(2011)",
        DATUM["NAD83 (National Spatial Reference System 2011)",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",6318]],
    CONVERSION["SPCS83 Oregon North zone (International feet)",
        METHOD["Lambert Conic Conformal (2SP)",
            ID["EPSG",9802]],
        PARAMETER["Latitude of false origin",43.6666666666667,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8821]],
        PARAMETER["Longitude of false origin",-120.5,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8822]],
        PARAMETER["Latitude of 1st standard parallel",46,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8823]],
        PARAMETER["Latitude of 2nd standard parallel",44.3333333333333,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8824]],
        PARAMETER["Easting at false origin",8202099.738,
            LENGTHUNIT["foot",0.3048],
            ID["EPSG",8826]],
        PARAMETER["Northing at false origin",0,
            LENGTHUNIT["foot",0.3048],
            ID["EPSG",8827]]],
    CS[Cartesian,2],
        AXIS["easting (X)",east,
            ORDER[1],
            LENGTHUNIT["foot",0.3048]],
        AXIS["northing (Y)",north,
            ORDER[2],
            LENGTHUNIT["foot",0.3048]],
    USAGE[
        SCOPE["Engineering survey, topographic mapping."],
        AREA["United States (USA) - Oregon - counties of Baker;
Benton; Clackamas; Clatsop; Columbia; Gilliam; Grant; Hood River;
Jefferson; Lincoln; Linn; Marion; Morrow; Multnomah; Polk; Sherman;
Tillamook; Umatilla; Union; Wallowa; Wasco; Washington; Wheeler;
Yamhill."],
        BBOX[43.95,-124.17,46.26,-116.47]],
    ID["EPSG",6559]]

Note that I just showed an example, it is not necessarily the code you
are hunting for.
Just to illustrate a method.

Cheers,
Markus

--
Markus Neteler, PhD
https://www.mundialis.de - free data with free software
https://grass.osgeo.org
https://courses.neteler.org/blog

On Sat, 29 Apr 2023, Markus Neteler wrote:

PROJCRS["NAD83(2011) / Oregon North
(ft)",BASEGEOGCRS["NAD83(2011)",DATUM["NAD83 (National Spatial
Reference System 2011)",ELLIPSOID["GRS
1980",6378137,298.257222101,LENGTHUNIT["metre",1,ID["EPSG",9001]],ID["EPSG",7019]],ID["EPSG",1116]],ID["EPSG",6318]],CONVERSION["SPCS83
Oregon North zone (International feet)",METHOD["Lambert Conic
Conformal (2SP)",ID["EPSG",9802]],PARAMETER["Latitude of false
origin",43.6666666666669,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8821]],PARAMETER["Longitude
of false origin",-120.5,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8822]],PARAMETER["Latitude
of 1st standard
parallel",46,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8823]],PARAMETER["Latitude
of 2nd standard
parallel",44.3333333333336,ANGLEUNIT["degree",0.0174532925199433,ID["EPSG",9102]],ID["EPSG",8824]],PARAMETER["Easting
at false origin",8202099.738,LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",8826]],PARAMETER["Northing
at false origin",0,LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",8827]],ID["EPSG",15351]],CS[Cartesian,2,ID["EPSG",4495]],AXIS["Easting
(X)",east],AXIS["Northing
(Y)",north],LENGTHUNIT["foot",0.3048,ID["EPSG",9002]],ID["EPSG",6559]]

More human readable output you get with `projinfo`:

projinfo EPSG:6559
PROJ.4 string:
+proj=lcc +lat_0=43.6666666666667 +lon_0=-120.5 +lat_1=46
+lat_2=44.3333333333333 +x_0=2500000.0001424 +y_0=0 +ellps=GRS80
+towgs84=0,0,0,0,0,0,0 +units=ft +no_defs +type=crs

Note that I just showed an example, it is not necessarily the code you
are hunting for.
Just to illustrate a method.

Markus,

I found that ESPG code yesterday and created a location for it. The problem
is that the prj.adf file does not use that EPSG code:

ERROR: Projection of dataset does not appear to match current location.

        Location PROJ_INFO is:
        name: NAD83(2011) / Oregon North (ft)
        datum: nad83_2011
        ellps: grs80
        proj: lcc
        lat_0: 43.6666666666667
        lon_0: -120.5
        lat_1: 46
        lat_2: 44.3333333333333
        x_0: 2500000.0001424
        y_0: 0
        no_defs: defined

        Dataset PROJ_INFO is:
        name: unnamed
        ellps: grs80
        proj: lcc
        lat_0: 41.75
        lon_0: -120.5
        lat_1: 43
        lat_2: 45.5
        x_0: 400000
        y_0: 0
        no_defs: defined

        Difference in: datum

I've uploaded the Bare_Earth subdirectory to
<http://www.fileconvoy.com/dfl.php?id=g0f185de302ff7e1b100049146825ac005b4609a539&gt;
where is will stay for 5 days.

There's also a Shapefiles/ directory with several maps. The
OLC_METRO_TAF_7_5_OGIC_2011.prj file contains:

PROJCS["NAD_1983_2011_Oregon_Statewide_Lambert_Feet_Intl",
GEOGCS["GCS_NAD_1983_2011",
DATUM["D_NAD_1983_2011",
SPHEROID["GRS_1980",
6378137.0,298.257222101]],
PRIMEM["Greenwich",0.0],
UNIT["Degree",0.0174532925199433]],
PROJECTION["Lambert_Conformal_Conic"],
PARAMETER["False_Easting",1312335.958005249],
PARAMETER["False_Northing",0.0],
PARAMETER["Central_Meridian",-120.5],
PARAMETER["Standard_Parallel_1",43.0],
PARAMETER["Standard_Parallel_2",45.5],
PARAMETER["Latitude_Of_Origin",41.75],
UNIT["Foot",0.3048]

Should I use that one instead? I see the DEM and vector files using two
different CRS'.

Regards,

Rich

On Sat, 29 Apr 2023, Rich Shepard wrote:

I've defined a location using NAD83(2011) / Oregon North (ft). But, the
prj.adf file for the data is:
Projection LAMBERT
Spheroid GRS80
Units 3.280839895013123
Zunits NO
Xshift 0.0
Yshift 0.0
Parameters
43 0 0.0 /* 1st standard parallel
45 30 0.0 /* 2nd standard parallel
-120 30 0.0 /* central meridian
41 45 0.0 /* latitude of projection's origin
400000.0 /* false easting (meters)
0.0 /* false northing (meters)

This is EPSG: 7019, but it's not a CRS, is it?

How do I define a location that will accept these data?

It turns out that all but one of the LiDAR data collections are corrupted;
the hosting agency cannot import them in their $$$ ESRI software. The one they
can import won't import in grass.

I gave the data manager Lat/Lon corner values for coverage that meets my
needs and he'll try to make a Shapefile that covers that area. I should be
able to import the shapefile then run it through v.to.rast with sufficient
accuracy.

I don't know if QGIS, sagaGIS, or R could read the hdr.adf that grass
cannot.

My thanks to all who tried to help,

Rich

On Tue, 2 May 2023, Rich Shepard wrote:

I don't know if QGIS, sagaGIS, or R could read the hdr.adf that grass
cannot.

Just for giggles, I opened qgis-3.30.0, pointed it to the 2014_OLC_Metro
Bare_Earth data setand it opened a window (see attached) that is quite
useless. It also reported that the CRS was unknown.

I've used the Oregon LiDAR data for years on projects across the state where
there is coverage and have not before encounted the problems this quadrangle
has.

Rich

(attachments)

qgis-metro.png