code: def _get_area_def_uniform_sampling(self, lon0, channel):
          
          logger.debug('Computing area definition')
  
          if lon0 is not None:
              # Define proj4 projection parameters
              proj_dict = {'a': EQUATOR_RADIUS,
                           'b': POLE_RADIUS,
                           'lon_0': lon0,
                           'h': ALTITUDE,
                           'proj': 'geos',
                           'units': 'm'}
  
              # Calculate maximum scanning angles
              xmax, ymax = get_geostationary_angle_extent(
                  namedtuple('area', ['proj_dict'])(proj_dict))
  
              # Derive area extent using small angle approximation (maximum
              # scanning angle is ~8.6 degrees)
              llx, lly, urx, ury = ALTITUDE * np.array([-xmax, -ymax, xmax, ymax])
              area_extent = [llx, lly, urx, ury]
  
              # Original image is oversampled. Create pyresample area definition
              # with uniform sampling in N-S and E-W direction
              if self._is_vis(channel):
                  sampling = SAMPLING_NS_VIS
              else:
                  sampling = SAMPLING_NS_IR
              pix_size = ALTITUDE * sampling
              area_def = pyresample.geometry.AreaDefinition(
                  'goes_geos_uniform',
                  '{} geostationary projection (uniform sampling)'.format(self.platform_name),
                  'goes_geos_uniform',
                  proj_dict,
                  np.rint((urx - llx) / pix_size).astype(int),
                  np.rint((ury - lly) / pix_size).astype(int),
                  area_extent)
  
              return area_def
          else:
              return None
docs: Get area definition with uniform sampling