@@ -2601,14 +2601,8 @@ def get_area_slices(self, area_to_cover, shape_divisible_by=None):
26012601 "equal." )
26022602
26032603 data_boundary = Boundary (* get_geostationary_bounding_box_in_lonlats (self ))
2604- if area_to_cover .is_geostationary :
2605- area_boundary = Boundary (
2606- * get_geostationary_bounding_box_in_lonlats (area_to_cover ))
2607- else :
2608- area_boundary = AreaDefBoundary (area_to_cover , 100 )
2609-
2610- intersection = data_boundary .contour_poly .intersection (
2611- area_boundary .contour_poly )
2604+ area_boundary = self ._get_area_to_cover_boundary (area_to_cover )
2605+ intersection = data_boundary .contour_poly .intersection (area_boundary .contour_poly )
26122606 if intersection is None :
26132607 logger .debug ('Cannot determine appropriate slicing. '
26142608 "Data and projection area do not overlap." )
@@ -2628,6 +2622,15 @@ def get_area_slices(self, area_to_cover, shape_divisible_by=None):
26282622 return (check_slice_orientation (x_slice ),
26292623 check_slice_orientation (y_slice ))
26302624
2625+ @staticmethod
2626+ def _get_area_to_cover_boundary (area_to_cover : AreaDefinition ) -> Boundary :
2627+ try :
2628+ if area_to_cover .is_geostationary :
2629+ return Boundary (* get_geostationary_bounding_box_in_lonlats (area_to_cover ))
2630+ return AreaDefBoundary (area_to_cover , 100 )
2631+ except ValueError :
2632+ raise NotImplementedError ("Can't determine boundary of area to cover" )
2633+
26312634 def crop_around (self , other_area ):
26322635 """Crop this area around `other_area`."""
26332636 xslice , yslice = self .get_area_slices (other_area )
0 commit comments