Python "EPSG code is unknown" when plotting a base map?

1.1k Views Asked by At

I am trying to add a base map to my plot through Contextily, but am getting this error when trying to see the plot.

Traceback (most recent call last):
  File "rasterio/_crs.pyx", line 322, in rasterio._crs._CRS.from_epsg
  File "rasterio/_err.pyx", line 192, in rasterio._err.exc_wrap_int
rasterio._err.CPLE_AppDefinedError: PROJ: proj_create_from_database: /opt/anaconda3/share/proj/proj.db lacks DATABASE.LAYOUT.VERSION.MAJOR / DATABASE.LAYOUT.VERSION.MINOR metadata. It comes from another PROJ installation.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/anaconda3/lib/python3.8/site-packages/matplotlib/cbook/__init__.py", line 196, in process
    func(*args, **kwargs)
  File "/opt/anaconda3/lib/python3.8/site-packages/matplotlib/widgets.py", line 1051, in _clicked
    self.set_active(closest)
  File "/opt/anaconda3/lib/python3.8/site-packages/matplotlib/widgets.py", line 1077, in set_active
    func(self.labels[index].get_text())
  File "vis.py", line 1109, in draw_basemap
    ctx.add_basemap(ax, crs=properties_geo.crs.to_string())
  File "/opt/anaconda3/lib/python3.8/site-packages/contextily/plotting.py", line 139, in add_basemap
    left, right, bottom, top = _reproj_bb(
  File "/opt/anaconda3/lib/python3.8/site-packages/contextily/plotting.py", line 229, in _reproj_bb
    n_l, n_b, n_r, n_t = transform_bounds(s_crs, t_crs, left, bottom, right, top)
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/warp.py", line 180, in transform_bounds
    xs, ys = transform(src_crs, dst_crs, in_xs, in_ys)
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/env.py", line 387, in wrapper
    return f(*args, **kwds)
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/warp.py", line 65, in transform
    return _transform(src_crs, dst_crs, xs, ys, zs)
  File "rasterio/_base.pyx", line 1398, in rasterio._base._transform
  File "rasterio/_base.pyx", line 1444, in rasterio._base._osr_from_crs
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/crs.py", line 496, in from_user_input
    return cls.from_string(value, morph_from_esri_dialect=morph_from_esri_dialect)
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/crs.py", line 384, in from_string
    return cls.from_epsg(val)
  File "/opt/anaconda3/lib/python3.8/site-packages/rasterio/crs.py", line 333, in from_epsg
    obj._crs = _CRS.from_epsg(code)
  File "rasterio/_crs.pyx", line 324, in rasterio._crs._CRS.from_epsg
rasterio.errors.CRSError: The EPSG code is unknown. PROJ: proj_create_from_database: /opt/anaconda3/share/proj/proj.db lacks DATABASE.LAYOUT.VERSION.MAJOR / DATABASE.LAYOUT.VERSION.MINOR metadata. It comes from another PROJ installation.

Here is what I am doing in my code:

route = pd.read_excel("0002_D1_0_fixed_out_points_15ft.xls")

        geometry = [Point(xy) for xy in zip(route.x_dd, route.y_dd)]
        gdf = GeoDataFrame(route, geometry=geometry, crs='EPSG:3857')

        fig,ax = plt.subplots()
        ax.plot(route['x_dd'], route['y_dd'], 'o', markersize=1)
        ctx.add_basemap(ax, crs=gdf.crs.to_string())
        plt.show()

I'm assuming this is an issue with how my installations are set up and not the code itself. I've tried doing conda activate base which is the environment I'm in but am still getting the same error. I am on macOS as well

excel file

0

There are 0 best solutions below