Skip to content
Snippets Groups Projects
Commit 6b569a8c authored by Narayanarao Bhogapurapu's avatar Narayanarao Bhogapurapu
Browse files

added progress bar

parent 8f53f674
No related branches found
No related tags found
No related merge requests found
name: ich-env
channels:
- conda-forge
- defaults
dependencies:
- blosc=1.21.6
- bzip2=1.0.8
- ca-certificates=2024.9.24
- freexl=2.0.0
- gdal=3.9.2
- geos=3.13.0
- geotiff=1.7.3
- intel-openmp=2024.2.1
- krb5=1.21.3
- lerc=4.0.0
- libarchive=3.7.4
- libblas=3.9.0
- libcblas=3.9.0
- libcurl=8.10.1
- libdeflate=1.22
- libexpat=2.6.3
- libffi=3.4.4
- libgdal-core=3.9.2
- libhwloc=2.11.1
- libiconv=1.17
- libjpeg-turbo=3.0.0
- libkml=1.3.0
- liblapack=3.9.0
- libpng=1.6.44
- librttopo=1.1.0
- libspatialite=5.1.0
- libsqlite=3.46.1
- libssh2=1.11.0
- libtiff=4.7.0
- libwebp-base=1.4.0
- libxml2=2.12.7
- libzlib=1.3.1
- lz4-c=1.9.4
- lzo=2.10
- minizip=4.0.6
- mkl=2024.1.0
- numpy=2.1.2
- openssl=3.3.2
- pcre2=10.44
- pip=24.2
- proj=9.5.0
- pthreads-win32=2.9.1
- python=3.10.15
- python_abi=3.10
- setuptools=75.1.0
- snappy=1.2.1
- sqlite=3.45.3
- tbb=2021.13.0
- tk=8.6.13
- tzdata=2024b
- ucrt=10.0.22621.0
- uriparser=0.9.8
- vc=14.40
- vc14_runtime=14.40.33810
- vs2015_runtime=14.40.33810
- wheel=0.44.0
- xerces-c=3.2.5
- xz=5.4.6
- zlib=1.3.1
- zstd=1.5.6
- pip:
- colorama==0.4.6
- empatches==0.2.3
- packaging==24.1
- python-dateutil==2.9.0.post0
- pytz==2024.2
- six==1.16.0
prefix: C:\Users\nbhogapurapu\.conda\envs\ich-env
File added
File added
File added
File added
File added
......@@ -146,10 +146,10 @@ def arc_sinc_vectorized(x, c_param):
# Clip the result to ensure non-negative values
return np.clip(y, 0, None)
def cal_(cor, gedi, htl, htg):
def cal_(temp_cor, temp_gedi, htl, htg):
try:
temp_cor = cor.copy()
temp_gedi = gedi.copy()
# temp_cor = cor.copy()
# temp_gedi = gedi.copy()
nn = np.count_nonzero(~np.isnan(temp_cor))
result = []
......@@ -243,7 +243,18 @@ def process_block(i, j, cohArray, lidarArray, initial_ws, htl, htg, parm_):
lidarBlock = lidarArray[start_i:end_i, start_j:end_j]
cohBlock = cohArray[start_i:end_i, start_j:end_j]
if np.isfinite(lidarBlock).any() and np.count_nonzero(~np.isnan(lidarBlock)) > 1:
if np.count_nonzero(~np.isnan(cohBlock)) <5:
count = np.count_nonzero(~np.isnan(lidarBlock))
s_parm = 0
c_parm = 0
rmse_parm = 0
ht = np.zeros(cohBlock.shape)
# print(lidarBlock.shape)
return start_i, end_i, start_j, end_j, s_parm, c_parm, rmse_parm, ht, count
# elif (np.isfinite(lidarBlock).any() and np.count_nonzero(~np.isnan(lidarBlock)) > 1) or max(lidarBlock.shape)>512:
elif (np.isfinite(lidarBlock).any() and np.count_nonzero(~np.isnan(lidarBlock)) > 1) or max(lidarBlock.shape)>512:
parm = cal_(cohBlock, lidarBlock, htl, htg)
mask = np.where(~np.isnan(lidarBlock), 1, 0)
......@@ -263,7 +274,7 @@ def process_block(i, j, cohArray, lidarArray, initial_ws, htl, htg, parm_):
gama = cohBlock / parm[1]
ht = arc_sinc(gama, parm[2]) * mask
# ht = arc_sinc_fast(gama, parm[2]) * mask
# print(lidarBlock.shape)
return start_i, end_i, start_j, end_j, s_parm, c_parm, rmse_parm, ht, count
else:
S += 2
......@@ -286,20 +297,27 @@ def dynamicWindow(cohArray, lidarArray, initial_ws, htl, htg):
parm_ = [0, 0, 0, 0, 0]
num_workers = min(16, os.cpu_count())
num_workers = os.cpu_count()-1
futures = []
with ProcessPoolExecutor(max_workers=num_workers) as executor:
futures = []
for i in range(0, rows, initial_ws):
for j in range(0, cols, initial_ws):
futures.append(executor.submit(process_block, i, j, cohArray, lidarArray, initial_ws, htl, htg, parm_))
for future in as_completed(futures):
start_i, end_i, start_j, end_j, s_p, c_p, r_p, ht, cnt = future.result()
s_parm[start_i:end_i, start_j:end_j] = s_p
c_parm[start_i:end_i, start_j:end_j] = c_p
rmse_parm[start_i:end_i, start_j:end_j] = r_p
ht_[start_i:end_i, start_j:end_j] = ht
count[start_i:end_i, start_j:end_j] = cnt
# Initialize the progress bar with the total number of futures
with tqdm(total=len(futures)) as pbar:
completed_jobs = 0
for future in as_completed(futures):
start_i, end_i, start_j, end_j, s_p, c_p, r_p, ht, cnt = future.result()
s_parm[start_i:end_i, start_j:end_j] = s_p
c_parm[start_i:end_i, start_j:end_j] = c_p
rmse_parm[start_i:end_i, start_j:end_j] = r_p
ht_[start_i:end_i, start_j:end_j] = ht
count[start_i:end_i, start_j:end_j] = cnt
completed_jobs += 1
if completed_jobs % 100 == 0: # Update every 100 jobs
pbar.update(100)
return s_parm, c_parm, rmse_parm, ht_, count
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment