# ERROR: ArgumentError: EPSG/ESRI code for the ESRI ID "GCS\_North\_American\_1983" not found in dictionary

**URL:** <https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794>\
**Category:** Specific Domains\
**Tags:** geo, geostats, geoio\
**Created:** [August 30, 2024, 6:55am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794 "2024-08-30T06:55:09Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![imantha](https://avatars.discourse-cdn.com/v4/letter/i/6a8cbe/32.png) [@imantha](https://discourse.julialang.org/u/imantha)\
**Post date:** [August 30, 2024, 6:55am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/1 "2024-08-30T06:55:09Z")

</div>

Any one can help me with this error when attempting read a shape file using `GeoIO`

```julia
using GeoIO
df_lo = GeoIO.load("data/processed/low/us_division_2018/us_division_2018.shp")

>>>
ERROR: ArgumentError: EPSG/ESRI code for the ESRI ID "GCS_North_American_1983" not found in dictionary.

```

Equivalent version which works perfectly fine using python Geopandas

````julia
# Read Low Resolution DataFrame
df_lo = gpd.read_file("data/processed/low/us_division_2018/us_division_2018.shp")
df_lo.rename(columns = {"total_spec" : "total_specimens", "total_flu_" : "total_flu_cases"}, inplace = True)
df_lo

>>>

area	total_specimens	total_flu_cases	geometry
0	New England	20954	2964	MULTIPOLYGON (((-68.37659 44.11376, -68.37538 ...
1	Middle Atlantic	80827	2266	MULTIPOLYGON (((-72.03496 41.25546, -72.02944 ...
2	East North Central	62901	3762	MULTIPOLYGON (((-82.73571 41.60336, -82.7188 4...
3	West North Central	9762	2948	POLYGON ((-104.0577 44.99743, -104.05021 44.99...
4	South Atlantic	12874	5185	MULTIPOLYGON (((-75.5708 39.62677, -75.55945 3...
5	East South Central	1532	484	MULTIPOLYGON (((-88.04374 30.51742, -88.03661 ...
6	West South Central	14849	873	MULTIPOLYGON (((-88.88145 30.0532, -88.87048 3...
7	Mountain	42251	5961	POLYGON ((-120.00574 39.22866, -120.00526 39.2...```
````

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [August 30, 2024, 8:00am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/2 "2024-08-30T08:00:36Z")

</div>

Is that the whole error message? Because we had this discussion recently with a longer error message, which also tells the user (more or less) what to do, and I think @juliohm was going to improve that message further.

> [@ESRI code for British National Grid not known by GeoIO](https://discourse.julialang.org/t/esri-code-for-british-national-grid-not-known-by-geoio/117641):
>
> ERROR: LoadError: ArgumentError: EPSG/ESRI code for the ESRI ID "British\_National\_Grid" not found in dictionary. Please check https://github.com/JuliaEarth/CoordRefSystems.jl/blob/main/src/strings.jl If you know the EPSG/ESRI code of a given ESRI WKT string, please submit a pull request. I’m reading this shape file from [here](https://geoportal.statistics.gov.uk/datasets/127c4bda06314409a1fa0df505f510e6_0/explore) at the the UK Office for National Statistics (ONS): LAD\_DEC\_2023\_UK\_BGC.shp. Google tells me the British National Grid is EPSG:27700. How can I circumvent this error and …

---

<div class="post-metadata">

**Author:** ![imantha](https://avatars.discourse-cdn.com/v4/letter/i/6a8cbe/32.png) [@imantha](https://discourse.julialang.org/u/imantha)\
**Post date:** [August 30, 2024, 8:14am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/3 "2024-08-30T08:14:23Z")

</div>

this is the entire error message.

ERROR: ArgumentError: EPSG/ESRI code for the ESRI ID “GCS\_North\_American\_1983” not found in dictionary.  
Please check [CoordRefSystems.jl/src/strings.jl at main · JuliaEarth/CoordRefSystems.jl · GitHub](https://github.com/JuliaEarth/CoordRefSystems.jl/blob/main/src/strings.jl)  
If you know the EPSG/ESRI code of a given ESRI WKT string, please submit a pull request.

Stacktrace:  
[1] string2code(crsstr::String)  
@ CoordRefSystems ~/.julia/packages/CoordRefSystems/7aSTQ/src/strings.jl:65  
[2] get(crsstr::String)  
@ CoordRefSystems ~/.julia/packages/CoordRefSystems/7aSTQ/src/get.jl:10  
[3] crstype  
@ ~/.julia/packages/GeoIO/6XB6W/src/conversion.jl:55 [inlined]  
[4] togeometry(::GeoInterface.MultiPolygonTrait, geom::Shapefile.Polygon, crs::GeoFormatTypes.ESRIWellKnownText{GeoFormatTypes.CRS})  
@ GeoIO ~/.julia/packages/GeoIO/6XB6W/src/conversion.jl:115  
[5] geom2meshes  
@ ~/.julia/packages/GeoIO/6XB6W/src/conversion.jl:120 [inlined]  
[6] geom2meshes  
@ ~/.julia/packages/GeoIO/6XB6W/src/conversion.jl:119 [inlined]  
[7] \_broadcast\_getindex\_evalf  
@ ./broadcast.jl:709 [inlined]  
[8] \_broadcast\_getindex  
@ ./broadcast.jl:682 [inlined]  
[9] getindex  
@ ./broadcast.jl:636 [inlined]  
[10] copy(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Tuple{Base.OneTo{Int64}}, typeof(GeoIO.geom2meshes), Tuple{Vector{Union{…}}, Base.RefValue{GeoFormatTypes.ESRIWellKnownText{…}}}})  
@ Base.Broadcast ./broadcast.jl:942  
[11] materialize(bc::Base.Broadcast.Broadcasted{Base.Broadcast.DefaultArrayStyle{1}, Nothing, typeof(GeoIO.geom2meshes), Tuple{Vector{Union{…}}, Base.RefValue{GeoFormatTypes.ESRIWellKnownText{…}}}})  
@ Base.Broadcast ./broadcast.jl:903  
[12] asgeotable(table::Shapefile.Table{Union{Missing, Shapefile.Polygon}})  
@ GeoIO ~/.julia/packages/GeoIO/6XB6W/src/utils.jl:13  
[13] load(fname::String; repair::Bool, layer::Int64, lenunit::Unitful.FreeUnits{(m,), 𝐋, nothing}, kwargs::@Kwargs{})  
@ GeoIO ~/.julia/packages/GeoIO/6XB6W/src/load.jl:103  
[14] load(fname::String)  
@ GeoIO ~/.julia/packages/GeoIO/6XB6W/src/load.jl:34  
[15] top-level scope  
@ REPL[5]:1  
Some type information was truncated. Use `show(err)` to see complete types.

---

<div class="post-metadata">

**Author:** ![lupemba](https://avatars.discourse-cdn.com/v4/letter/l/e5b9ba/32.png) [@lupemba](https://discourse.julialang.org/u/lupemba)\
**Post date:** [August 30, 2024, 8:39am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/4 "2024-08-30T08:39:59Z")

</div>

A quick google search suggest that ESRI code for “GCS\_North\_American\_1983” is epsg:4269, see [NAD83 - EPSG:4269](https://epsg.io/4269)

Getting the shape file to work with GeoIO requires a small update to [GitHub - JuliaEarth/CoordRefSystems.jl: Unitful coordinate reference systems for geographic maps in Julia](https://github.com/JuliaEarth/CoordRefSystems.jl)

The update should just be a small fast code changes. After that you will either have to wait for the release of the new CoordRefSystems.jl version or get the new version directly from Github.

---

<div class="post-metadata">

**Author:** ![lupemba](https://avatars.discourse-cdn.com/v4/letter/l/e5b9ba/32.png) [@lupemba](https://discourse.julialang.org/u/lupemba)\
**Post date:** [August 30, 2024, 8:59am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/5 "2024-08-30T08:59:35Z")

</div>

> [@imantha](#):
>
> “GCS\_North\_American\_1983

I have made a PR to add this code now. The maintenance of CoordRefSystems.jl (@juliohm and @eliascarv) are located in Brazil so it will probably take at least half a day before they see it.

> <https://github.com/JuliaEarth/CoordRefSystems.jl/pull/168/files>

Alternately, you can try in a clean environment to first add CoordRefSystems.jl from my branch and then add GeoIO.

> **[GitHub - lupemba/CoordRefSystems.jl at add-GCS\_North\_American\_1983](https://github.com/lupemba/CoordRefSystems.jl/tree/add-GCS_North_American_1983)**
>
> add-GCS\_North\_American\_1983

---

<div class="post-metadata">

**Author:** ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)\
**Post date:** [August 30, 2024, 11:03am UTC](https://discourse.julialang.org/t/error-argumenterror-epsg-esri-code-for-the-esri-id-gcs-north-american-1983-not-found-in-dictionary/118794/6 "2024-08-30T11:03:41Z")

</div>

Thank you @nilshg for the ping, and @lupemba for the fix.

The PR has been merged, and a patch version has been released:

> <https://github.com/JuliaRegistries/General/pull/114165>
>
> \- Registering package: CoordRefSystems
> \- Repository: https://github.com/JuliaEar…th/CoordRefSystems.jl
> \- Created by: @juliohm
> \- Version: v0.13.2
> \- Commit: afea3f9e1fdb9b1383f746081386e24c9782c28d
> \- Reviewed by: @juliohm
> \- Reference: https://github.com/JuliaEarth/CoordRefSystems.jl/commit/afea3f9e1fdb9b1383f746081386e24c9782c28d#commitcomment-146030987
> \- Description: Unitful coordinate reference systems for geographic maps in Julia

@imantha please update your environment after the PR above is merged by the bot.
