diff --git a/modules/util/util.py b/modules/util/util.py
index 71f2c60be20ae0cd6dab4fb8726ccbb47f039926..7fcc1e43d3a9f00af1bd7f32d5cd1ae698dbc071 100644
--- a/modules/util/util.py
+++ b/modules/util/util.py
@@ -14,6 +14,7 @@ from util.setup import ancillary_path
 from scipy.interpolate import RectBivariateSpline, interp2d
 from scipy.ndimage import gaussian_filter
 from scipy.signal import medfilt2d
+from cartopy.crs import Geostationary, Globe
 
 LatLonTuple = namedtuple('LatLonTuple', ['lat', 'lon'])
 
@@ -665,10 +666,7 @@ def add_noise(data, noise_scale=0.01, seed=None, copy=True):
     return data
 
 
-geos_goes16_fd = None
-geos_goes16_conus = None
-geos_h08_fd = None
-
+# Keep for reference. These pkl files are incompatible with latest version of Cartopy
 # f = open(ancillary_path+'geos_crs_goes16_FD.pkl', 'rb')
 # geos_goes16_fd = pickle.load(f)
 # f.close()
@@ -681,6 +679,18 @@ geos_h08_fd = None
 # geos_h08_fd = pickle.load(f)
 # f.close()
 
+geos_goes16_fd = Geostationary(central_longitude=-75.0, satellite_height=35786023.0, sweep_axis='x',
+                               globe=Globe(ellipse=None, semimajor_axis=6378137.0, semiminor_axis=6356752.31414,
+                                           inverse_flattening=298.2572221))
+
+geos_goes16_conus = Geostationary(central_longitude=-75.0, satellite_height=35786023.0, sweep_axis='x',
+                                  globe=Globe(ellipse=None, semimajor_axis=6378137.0, semiminor_axis=6356752.31414,
+                                              inverse_flattening=298.2572221))
+
+geos_h08_fd = Geostationary(central_longitude=140.7, satellite_height=35785.863, sweep_axis='y',
+                            globe=Globe(ellipse=None, semimajor_axis=6378.137, semiminor_axis=6356.7523,
+                                        inverse_flattening=298.25702))
+
 
 def get_cartopy_crs(satellite, domain):
     if satellite == 'GOES16':