@@ -1093,40 +1093,48 @@ def read_raster(file_name, band=None, src_crs=None, window=None, geometry=None,
1093
1093
1094
1094
with rasterio .Env ():
1095
1095
with rasterio .open (file_name , 'r' ) as src :
1096
- src_crs = src .crs if src_crs is None else src_crs
1097
- if not src_crs :
1098
- src_crs = rasterio .crs .CRS .from_dict (DEF_CRS )
1099
1096
dst_meta = src .meta .copy ()
1100
1097
1101
1098
if dst_crs or transform :
1102
1099
LOGGER .debug ('Reprojecting ...' )
1100
+
1101
+ src_crs = src .crs if src_crs is None else src_crs
1102
+ if not src_crs :
1103
+ src_crs = rasterio .crs .CRS .from_dict (DEF_CRS )
1103
1104
transform = (transform , width , height ) if transform else None
1104
1105
inten = _read_raster_reproject (src , src_crs , dst_meta , band = band ,
1105
1106
geometry = geometry , dst_crs = dst_crs ,
1106
1107
transform = transform , resampling = resampling )
1107
1108
else :
1108
- trans = dst_meta ['transform' ]
1109
1109
if geometry :
1110
1110
inten , trans = rasterio .mask .mask (src , geometry , crop = True , indexes = band )
1111
1111
if dst_meta ['nodata' ] and np .isnan (dst_meta ['nodata' ]):
1112
1112
inten [np .isnan (inten )] = 0
1113
1113
else :
1114
1114
inten [inten == dst_meta ['nodata' ]] = 0
1115
+
1115
1116
else :
1116
1117
masked_array = src .read (band , window = window , masked = True )
1117
1118
inten = masked_array .data
1118
1119
inten [masked_array .mask ] = 0
1120
+
1119
1121
if window :
1120
1122
trans = rasterio .windows .transform (window , src .transform )
1123
+ else :
1124
+ trans = dst_meta ['transform' ]
1125
+
1121
1126
dst_meta .update ({
1122
1127
"height" : inten .shape [1 ],
1123
1128
"width" : inten .shape [2 ],
1124
1129
"transform" : trans ,
1125
1130
})
1131
+
1126
1132
if not dst_meta ['crs' ]:
1127
1133
dst_meta ['crs' ] = rasterio .crs .CRS .from_dict (DEF_CRS )
1134
+
1128
1135
intensity = inten [range (len (band )), :]
1129
1136
dst_shape = (len (band ), dst_meta ['height' ] * dst_meta ['width' ])
1137
+
1130
1138
return dst_meta , intensity .reshape (dst_shape )
1131
1139
1132
1140
def read_raster_bounds (path , bounds , res = None , bands = None ):
@@ -1285,7 +1293,7 @@ def interp_raster_data(data, interp_y, interp_x, transform, method='linear', fil
1285
1293
y_dim = ymin - yres / 2 + yres * np .arange (data .shape [0 ])
1286
1294
x_dim = xmin - xres / 2 + xres * np .arange (data .shape [1 ])
1287
1295
1288
- data = np .float64 (data )
1296
+ data = np .array (data , dtype = np . float64 )
1289
1297
data [np .isnan (data )] = fill_value
1290
1298
return scipy .interpolate .interpn ((y_dim , x_dim ), data , np .vstack ([interp_y , interp_x ]).T ,
1291
1299
method = method , bounds_error = False , fill_value = fill_value )
0 commit comments