Rasterio 1.0.14 made the package more correct in how it treats the spatial
reference systems we use to share and analyze gridded spatial data, but it also
introduced several bugs. I made three releases this week, two of them to fix
regressions caused by 1.0.14. "EPSG:3857" and "+init=epsg:3857" are interpreted
differently by GDAL and in 1.0.14 we accidentally flipped from the former to
the latter, obsolete representation of EPSG spatial reference system number
3857.
1.0.14 also broke the Python pickle protocol for CRS objects, something we
didn't know until users who have been sending dataset profiles, which contain
a CRS object, between processes using the multiprocessing module ran into
exceptions. There is a workaround for this and it will be fixed next week in
Rasterio 1.0.19. In case you're wondering what CRS pickle data looks like, it's
just a thin wrapper around a WKT string.
>>> from rasterio.crs import CRS
>>> import pickle
>>> pickle.dumps(CRS.from_epsg(3857))
b'\x80\x03crasterio.crs\nCRS\nq\x00)\x81q\x01X\xa4\x02\x00\x00PROJCS["WGS 84 / Pseudo-Mercator",GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]],PROJECTION["Mercator_1SP"],PARAMETER["central_meridian",0],PARAMETER["scale_factor",1],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],EXTENSION["PROJ4","+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs"],AUTHORITY["EPSG","3857"]]q\x02b.'
Update to 1.0.18 as soon as you can and get the benefits of 1.0.14 without the
bugs.