code: def to_geoviews(self, gvtype=None, datasets=None, kdims=None, vdims=None, dynamic=False):
          
          try:
              import geoviews as gv
              from cartopy import crs  # noqa
          except ImportError:
              import warnings
              warnings.warn("This method needs the geoviews package installed.")
  
          if gvtype is None:
              gvtype = gv.Image
  
          ds = self.to_xarray_dataset(datasets)
  
          if vdims is None:
              # by default select first data variable as display variable
              vdims = ds.data_vars[list(ds.data_vars.keys())[0]].name
  
          if hasattr(ds, "area") and hasattr(ds.area, 'to_cartopy_crs'):
              dscrs = ds.area.to_cartopy_crs()
              gvds = gv.Dataset(ds, crs=dscrs)
          else:
              gvds = gv.Dataset(ds)
  
          if "latitude" in ds.coords.keys():
              gview = gvds.to(gv.QuadMesh, kdims=["longitude", "latitude"], vdims=vdims, dynamic=dynamic)
          else:
              gview = gvds.to(gvtype, kdims=["x", "y"], vdims=vdims, dynamic=dynamic)
  
          return gview
docs: Convert satpy Scene to geoviews.
  
          Args:
              gvtype (gv plot type):
                  One of gv.Image, gv.LineContours, gv.FilledContours, gv.Points
                  Default to :class:`geoviews.Image`.
                  See Geoviews documentation for details.
              datasets (list): Limit included products to these datasets
              kdims (list of str):
                  Key dimensions. See geoviews documentation for more information.
              vdims : list of str, optional
                  Value dimensions. See geoviews documentation for more information.
                  If not given defaults to first data variable
              dynamic : boolean, optional, default False
  
          Returns: geoviews object
  
          Todo:
              * better handling of projection information in datasets which are
                to be passed to geoviews