33from functools import cached_property
44from typing import Optional , Tuple , Dict
55
6- import numpy as np
7- import xarray as xr
6+ import numpy
7+ import xarray
88from shapely .geometry import Polygon
99from shapely .geometry .base import BaseGeometry
1010
@@ -32,7 +32,7 @@ class Grass(Convention[GrassGridKind, GrassIndex]):
3232 default_grid_kind = GrassGridKind .blade
3333
3434 @classmethod
35- def check_dataset (cls , dataset : xr .Dataset ) -> Optional [int ]:
35+ def check_dataset (cls , dataset : xarray .Dataset ) -> Optional [int ]:
3636 # A Grass dataset is recognised by the 'Conventions' global attribute
3737 if dataset .attrs ['Conventions' ] == 'Grass 1.0' :
3838 return Specificity .HIGH
@@ -61,7 +61,7 @@ def unravel_index(
6161 return (grid_kind , warp , weft )
6262
6363 def get_grid_kind_and_size (
64- self , data_array : xr .DataArray ,
64+ self , data_array : xarray .DataArray ,
6565 ) -> Tuple [GrassGridKind , int ]:
6666 """
6767 For the given DataArray from this Dataset,
@@ -75,7 +75,7 @@ def get_grid_kind_and_size(
7575 raise ValueError (
7676 "DataArray does not appear to be either a blade or meadow grid" )
7777
78- def make_linear (self , data_array : xr .DataArray ) -> xr .DataArray :
78+ def make_linear (self , data_array : xarray .DataArray ) -> xarray .DataArray :
7979 """
8080 Make the given DataArray linear in its grid dimensions.
8181 """
@@ -95,12 +95,12 @@ def selector_for_index(self, index: GrassIndex) -> Dict[str, int]:
9595 return {'warp' : warp , 'weft' : weft }
9696
9797 @cached_property
98- def polygons (self ) -> np .ndarray :
98+ def polygons (self ) -> numpy .ndarray :
9999 def make_polygon_for_cell (warp : int , weft : int ) -> Polygon :
100100 # Implementation left as an exercise for the reader
101101 return Polygon (...)
102102
103- return np .array ([
103+ return numpy .array ([
104104 make_polygon_for_cell (warp , weft )
105105 for warp in range (self .dataset .dimensions ['warp' ])
106106 for weft in range (self .dataset .dimensions ['weft' ])
@@ -110,7 +110,7 @@ def make_clip_mask(
110110 self ,
111111 clip_geometry : BaseGeometry ,
112112 buffer : int = 0 ,
113- ) -> xr .Dataset :
113+ ) -> xarray .Dataset :
114114 # Find all the blades that intersect the clip geometry
115115 intersecting_blades = [
116116 item
@@ -143,14 +143,14 @@ def make_clip_mask(
143143 keep_meadows = blur_mask (keep_meadows , size = buffer )
144144
145145 # Make a dataset out of these masks
146- return xr .Dataset (
146+ return xarray .Dataset (
147147 data_vars = {
148- 'blades' : xr .DataArray (data = keep_blades , dims = ['weft' , 'warp' ]),
149- 'meadows' : xr .DataArray (data = keep_meadows , dims = ['warp' , 'weft' ]),
148+ 'blades' : xarray .DataArray (data = keep_blades , dims = ['weft' , 'warp' ]),
149+ 'meadows' : xarray .DataArray (data = keep_meadows , dims = ['warp' , 'weft' ]),
150150 },
151151 )
152152
153- def apply_clip_mask (self , clip_mask : xr .Dataset , work_dir : Pathish ) -> xr .Dataset :
153+ def apply_clip_mask (self , clip_mask : xarray .Dataset , work_dir : Pathish ) -> xarray .Dataset :
154154 # You're on your own, here.
155155 # This depends entirely on how the mask and datasets interact.
156156 pass
0 commit comments