Skip to content

Commit 6661a90

Browse files
authored
Merge pull request #38 from GERSL/cold_suh
Test on new HLS dataset
2 parents 30b0e88 + 9869111 commit 6661a90

File tree

2 files changed

+29
-30
lines changed

2 files changed

+29
-30
lines changed

src/python/pycold/imagetool/export_change_map.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -365,8 +365,7 @@ def main(
365365
assert all(elem in band_names for elem in coefs_bands)
366366

367367
if rank == 0:
368-
if not os.path.exists(out_path):
369-
os.makedirs(out_path)
368+
os.makedirs(out_path, exist_ok=True)
370369

371370
ref_image = gdal.Open(reference_path, gdal.GA_ReadOnly)
372371
trans = ref_image.GetGeoTransform()
@@ -486,7 +485,7 @@ def main(
486485
current_dist_type = 0
487486
year_list_to_predict = list(range(year_lowbound, year_uppbound + 1))
488487
ordinal_day_list = [
489-
pd.Timestamp.toordinal(datetime.date(year, 7, 1)) for year in year_list_to_predict
488+
pd.Timestamp.toordinal(datetime.datetime(year, 7, 1)) for year in year_list_to_predict
490489
]
491490
for count, curve in enumerate(cold_block):
492491
if curve["pos"] != current_processing_pos:
@@ -527,7 +526,7 @@ def main(
527526
results_block[break_year - year_lowbound][i_row][i_col] = (
528527
current_dist_type * 1000
529528
+ curve["t_break"]
530-
- (pd.Timestamp.toordinal(datetime.date(break_year, 1, 1)))
529+
- (pd.Timestamp.toordinal(datetime.datetime(break_year, 1, 1)))
531530
+ 1
532531
)
533532
# e.g., 1315 means that disturbance happens at doy of 315

src/python/pycold/imagetool/prepare_ard.py

+26-26
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
import fiona
4141
from pycold.common import DatasetInfo
4242
from pycold.utils import class_from_dict
43-
43+
from pathlib import Path
4444

4545
# define constant here
4646
QA_CLEAR = 0
@@ -220,12 +220,12 @@ def single_image_stacking_hls(
220220
:return:
221221
"""
222222
try:
223-
QA_band = gdal_array.LoadFile(join(join(source_dir, folder), "{}.Fmask.tif".format(folder)))
223+
QA_band = gdal_array.LoadFile(join(folder, "{}.Fmask.tif".format(folder.split('/')[-1])))
224224
except ValueError as e:
225225
# logger.error('Cannot open QA band for {}: {}'.format(folder, e))
226-
logger.error("Cannot open QA band for {}: {}".format(folder, e))
226+
logger.error("Cannot open QA band for {}: {}".format(folder.split('/')[-1], e))
227227
return False
228-
228+
229229
# convertQA = np.vectorize(qabitval)
230230
QA_band_unpacked = qabitval_array_HLS(QA_band).astype(np.short)
231231
if clear_threshold > 0:
@@ -236,7 +236,7 @@ def single_image_stacking_hls(
236236
clear_ratio = 1
237237

238238
if clear_ratio > clear_threshold:
239-
[collection, sensor, tile_id, imagetime, version1, version2] = folder.rsplit(".")
239+
[collection, sensor, tile_id, imagetime, version1, version2] = folder.split('/')[-1].rsplit(".")
240240
year = imagetime[0:4]
241241
doy = imagetime[4:7]
242242
file_name = sensor + tile_id + year + doy + collection + version1
@@ -250,54 +250,54 @@ def single_image_stacking_hls(
250250
if sensor == "L30":
251251
try:
252252
B1 = gdal_array.LoadFile(
253-
join(join(source_dir, folder), "{}.B02.tif".format(folder))
253+
join(folder, "{}.B02.tif".format(folder.split('/')[-1]))
254254
)
255255
B2 = gdal_array.LoadFile(
256-
join(join(source_dir, folder), "{}.B03.tif".format(folder))
256+
join(folder, "{}.B03.tif".format(folder.split('/')[-1]))
257257
)
258258
B3 = gdal_array.LoadFile(
259-
join(join(source_dir, folder), "{}.B04.tif".format(folder))
259+
join(folder, "{}.B04.tif".format(folder.split('/')[-1]))
260260
)
261261
B4 = gdal_array.LoadFile(
262-
join(join(source_dir, folder), "{}.B05.tif".format(folder))
262+
join(folder, "{}.B05.tif".format(folder.split('/')[-1]))
263263
)
264264
B5 = gdal_array.LoadFile(
265-
join(join(source_dir, folder), "{}.B06.tif".format(folder))
265+
join(folder, "{}.B06.tif".format(folder.split('/')[-1]))
266266
)
267267
B6 = gdal_array.LoadFile(
268-
join(join(source_dir, folder), "{}.B07.tif".format(folder))
268+
join(folder, "{}.B07.tif".format(folder.split('/')[-1]))
269269
)
270270
B7 = np.full(B6.shape, 0) # assign zero
271271

272272
except Exception as e:
273273
# logger.error('Cannot open spectral bands for {}: {}'.format(folder, e))
274-
logger.error("Cannot open Landsat bands for {}: {}".format(folder, e))
274+
logger.error("Cannot open Landsat bands for {}: {}".format(folder.split('/')[-1], e))
275275
return False
276276
elif sensor == "S30":
277277
try:
278278
B1 = gdal_array.LoadFile(
279-
join(join(source_dir, folder), "{}.B02.tif".format(folder))
279+
join(folder, "{}.B02.tif".format(folder.split('/')[-1]))
280280
)
281281
B2 = gdal_array.LoadFile(
282-
join(join(source_dir, folder), "{}.B03.tif".format(folder))
282+
join(folder, "{}.B03.tif".format(folder.split('/')[-1]))
283283
)
284284
B3 = gdal_array.LoadFile(
285-
join(join(source_dir, folder), "{}.B04.tif".format(folder))
285+
join(folder, "{}.B04.tif".format(folder.split('/')[-1]))
286286
)
287287
B4 = gdal_array.LoadFile(
288-
join(join(source_dir, folder), "{}.B8A.tif".format(folder))
288+
join(folder, "{}.B8A.tif".format(folder.split('/')[-1]))
289289
)
290290
B5 = gdal_array.LoadFile(
291-
join(join(source_dir, folder), "{}.B11.tif".format(folder))
291+
join(folder, "{}.B11.tif".format(folder.split('/')[-1]))
292292
)
293293
B6 = gdal_array.LoadFile(
294-
join(join(source_dir, folder), "{}.B12.tif".format(folder))
294+
join(folder, "{}.B12.tif".format(folder.split('/')[-1]))
295295
)
296296
B7 = np.full(B6.shape, 0)
297297

298298
except Exception as e:
299299
# logger.error('Cannot open spectral bands for {}: {}'.format(folder, e))
300-
logger.error("Cannot open Landsat bands for {}: {}".format(folder, e))
300+
logger.error("Cannot open Landsat bands for {}: {}".format(folder.split('/')[-1], e))
301301
return False
302302

303303
if (
@@ -1840,6 +1840,8 @@ def main(
18401840
]
18411841
elif collection == "HLS":
18421842
folder_list = [f for f in listdir(source_dir) if f.startswith("HLS")]
1843+
if folder_list == []:
1844+
folder_list = [folder for folder, dir, file in os.walk(source_dir) if Path(folder).name.startswith('HLS.')]
18431845
elif collection == "HLS14":
18441846
folder_list = [y for x in os.walk(source_dir) for y in glob(os.path.join(x[0], "*.hdf"))]
18451847

@@ -1864,18 +1866,16 @@ def main(
18641866
"AutoPrepareDataARD starts: {}".format(datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S"))
18651867
)
18661868

1867-
if not os.path.exists(out_dir):
1868-
os.mkdir(out_dir)
1869+
os.makedirs(out_dir, exist_ok=True)
18691870

18701871
if is_partition is True:
18711872
for i in range(dataset_info.n_block_y):
18721873
for j in range(dataset_info.n_block_x):
18731874
block_folder = "block_x{}_y{}".format(j + 1, i + 1)
18741875
if not os.path.exists(join(out_dir, block_folder)):
1875-
os.mkdir(join(out_dir, block_folder))
1876+
os.makedirs(join(out_dir, block_folder))
18761877

1877-
if not os.path.exists(tmp_path):
1878-
os.mkdir(tmp_path)
1878+
os.makedirs(tmp_path, exist_ok=True)
18791879

18801880
if hpc is True:
18811881
if collection == "ARD" or collection == "ARD-C2":
@@ -1937,8 +1937,8 @@ def main(
19371937
]
19381938
elif collection == "HLS":
19391939
ordinal_dates = [
1940-
pd.Timestamp.toordinal(dt.datetime(int(folder[15:19]), 1, 1))
1941-
+ int(folder[19:22])
1940+
pd.Timestamp.toordinal(dt.datetime(int(folder.split('/')[-1][15:19]), 1, 1))
1941+
+ int(folder.split('/')[-1][19:22])
19421942
- 1
19431943
for folder in folder_list
19441944
]

0 commit comments

Comments
 (0)