@@ -23,7 +23,14 @@ def read_header(path_to_ascii_grid_file, no_of_header_lines=6):
2323 """read metadata from esri ascii grid file"""
2424
2525 def read_header_from (f ):
26- possible_headers = ["ncols" , "nrows" , "xllcorner" , "yllcorner" , "cellsize" , "nodata_value" ]
26+ possible_headers = [
27+ "ncols" ,
28+ "nrows" ,
29+ "xllcorner" ,
30+ "yllcorner" ,
31+ "cellsize" ,
32+ "nodata_value" ,
33+ ]
2734 metadata = {}
2835 header_str = ""
2936 for i in range (0 , no_of_header_lines ):
@@ -133,6 +140,7 @@ def load_grid_and_metadata_from_ascii_grid(
133140 grid = np .loadtxt (path_to_ascii_grid , dtype = datatype , skiprows = no_of_header_rows )
134141 return (grid , metadata )
135142
143+
136144def load_grid_cached (path_to_grid , val_type , print_path = False ):
137145 if not hasattr (load_grid_cached , "cache" ):
138146 load_grid_cached .cache = {}
@@ -161,10 +169,12 @@ def value(lat, lon, return_no_data=False):
161169 return None
162170
163171 cache_entry = {
164- "metadata" : md , "grid" : grid , "ll0r" : ll0r ,
172+ "metadata" : md ,
173+ "grid" : grid ,
174+ "ll0r" : ll0r ,
165175 "col" : lambda lon : col (lon ),
166176 "row" : lambda lat : row (lat ),
167- "value" : lambda lat , lon , ret_no_data : value (lat , lon , ret_no_data )
177+ "value" : lambda lat , lon , ret_no_data : value (lat , lon , ret_no_data ),
168178 }
169179 load_grid_cached .cache [path_to_grid ] = cache_entry
170180 return cache_entry
@@ -196,10 +206,13 @@ def create_climate_geoGrid_interpolator_from_json_file(
196206
197207 return NearestNDInterpolator (np .array (points ), np .array (values ))
198208
209+
199210def get_lat_0_lon_0_resolution_from_grid_metadata (metadata ):
200- lat_0 = float (metadata ["yllcorner" ]) \
201- + (float (metadata ["cellsize" ]) * float (metadata ["nrows" ])) \
202- - (float (metadata ["cellsize" ]) / 2.0 )
211+ lat_0 = (
212+ float (metadata ["yllcorner" ])
213+ + (float (metadata ["cellsize" ]) * float (metadata ["nrows" ]))
214+ - (float (metadata ["cellsize" ]) / 2.0 )
215+ )
203216 lon_0 = float (metadata ["xllcorner" ]) + (float (metadata ["cellsize" ]) / 2.0 )
204217 resolution = float (metadata ["cellsize" ])
205- return {"lat_0" : lat_0 , "lon_0" : lon_0 , "res" : resolution }
218+ return {"lat_0" : lat_0 , "lon_0" : lon_0 , "res" : resolution }
0 commit comments