From 6b569a8c11a526756d75f26a448cd4ca11ff26ea Mon Sep 17 00:00:00 2001 From: Narayana Rao Bhogapurapu <narayanarao.bhogapurapu@gmail.com> Date: Sat, 12 Oct 2024 17:50:42 -0700 Subject: [PATCH] added progress bar --- environments/ich-env-win.yml | 73 +++++++++++++++++++ src/ich/__pycache__/algo.cpython-310.pyc | Bin 0 -> 6822 bytes src/ich/__pycache__/args_in.cpython-310.pyc | Bin 0 -> 5238 bytes src/ich/__pycache__/plotting.cpython-310.pyc | Bin 0 -> 3114 bytes src/ich/__pycache__/rst_io.cpython-310.pyc | Bin 0 -> 1807 bytes src/ich/__pycache__/utils.cpython-310.pyc | Bin 0 -> 2947 bytes src/ich/algo.py | 46 ++++++++---- 7 files changed, 105 insertions(+), 14 deletions(-) create mode 100644 environments/ich-env-win.yml create mode 100644 src/ich/__pycache__/algo.cpython-310.pyc create mode 100644 src/ich/__pycache__/args_in.cpython-310.pyc create mode 100644 src/ich/__pycache__/plotting.cpython-310.pyc create mode 100644 src/ich/__pycache__/rst_io.cpython-310.pyc create mode 100644 src/ich/__pycache__/utils.cpython-310.pyc diff --git a/environments/ich-env-win.yml b/environments/ich-env-win.yml new file mode 100644 index 0000000..c4775e9 --- /dev/null +++ b/environments/ich-env-win.yml @@ -0,0 +1,73 @@ +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 diff --git a/src/ich/__pycache__/algo.cpython-310.pyc b/src/ich/__pycache__/algo.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0535df8f8f579b7ed10090f39bb9b9ff9fdff371 GIT binary patch literal 6822 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 Y2YX^%qbtJzTNUf7HDR@^kE(C~Csagz)Bpeg literal 0 HcmV?d00001 diff --git a/src/ich/__pycache__/args_in.cpython-310.pyc b/src/ich/__pycache__/args_in.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..28a51a332587afa620a45f2625518e47917a22bf GIT binary patch literal 5238 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 literal 0 HcmV?d00001 diff --git a/src/ich/__pycache__/plotting.cpython-310.pyc b/src/ich/__pycache__/plotting.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..18e6f194e092817b5c38a3f9c23a05a84bf490af GIT binary patch literal 3114 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 literal 0 HcmV?d00001 diff --git a/src/ich/__pycache__/rst_io.cpython-310.pyc b/src/ich/__pycache__/rst_io.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2518670d4097a85851354dd8f474301d7307a88e GIT binary patch literal 1807 zcmb_d&2Aev5Z+&Dz54M_oZlv?8lXT`phn^ZDB?CnQp<4zxN=~-DL@EVP`k85o4eeS zR9qYDTd#cwxwkw(k9~zc0MT1dd4--jq}oJ54!v|2ocU(B9Fg<QP`uTO9e9p@{hj<) zcbq?sG5>gAJcc3v0FgP!$=u9iE^@8*kY}}ze5(T#SRJC!>KdwB9iau#K8y1PYPcpw zz?yjrwJi2nJ6}Xg7Kdy(UqLGt*Vv_e6|GuaXP5IU=!(S=yP97^*DPLO*Yg|bhQ%@a zAis%jTHIi_@>}SZ#ZB<vMz;aCvi467`Y>C}mOyv1<!lA?N13<pbT6HK5pN2D70Eih z=p2kEogPU$>z{Y-J=l0~cVqowXZ`N_{WyM%Cu+>aMyHPjKE(w{9>0e4IQ_1xgHeVV z=msqm5hZ635KJ%4K`!*U$T6d5#uYPK2r?2xO0e25DLF~7Oooi7$HsFh$HyeWKN6XM z3oATiW?3{6G|RvQ9H<{M6SqG5u_ATNHvV}6&_0Y!7_tLGIa9ZCF5Gjsa;HEXAg}VK z{)KbyS3ab`>%TSux`8mX>tMGeg>G#VwTC4f=4)JJy0J%a_C!7raQ1GXgG0)Q_A;r1 zp_%rv5U(7u3hV#c+1wa>Cy9`QVmRg_TuuaxL64`CoD@n9wyFANG91uCVv!tj$b?G9 zgpS5)AVoT$>3AT(MfqBJsw3bgONO+#2C-!XB6edpasyXf0V6d>{r54mX4s=w0PN8{ zIIv&2N8Z3Y56(mILDhn<R@IJz%BjLC$UNm7g(D~Pe}NkPxprQ!>eE`~PwN+uIM)Fy z0&C%o6`O=we<OqV(`E$`t=+nCpyC`zYuMM}_5nRS6iwJl*FRg@-2L|X-q!y9qu$oj zohJudXALlW&o&Qs_a3dEMQCU1#n#TFhlW{RD#{D_s%<$DEr_5)ImRW?i@;1z(3il> zX&>iA*Jkyr8{55u<SFA=-Cx&>`$TOMejsomA;-C0_Ku?kUpyE5h@|GHEa7uz8)kb% zrh?j?h_=~5{Jo%x*doyJQ#O&~O`ML&t4J)tGzw2lfugz~hdlsd*{lgt&Y(;LKaskY z*?prrpD6RGEtr|OY`$GMG4T^c4{w7hS3txb@a^4n+wjKTlH2q|7u@gh4!78hcLm_T zc%Qz*`$hP_@a^|eu+@L@%+f8c!#2dnMwq5}|BO)4pTWf38CU1e_$kbF@927xWIRn0 z9bqvlv5?SoTxwsQN*$eGQP5%p$yF4}AS@<1G>li2x>iC{VyV3{(;=55!e^}=%9NI; z!t{(@&ao;PSBws!&kTZPGwqj5>G<uuFn7v33xHEDqzH|_VS}zog_RUF<5`i%G{+;d zHc^zV*{T(WAAL11S)w>+$5hERd&ik;?Vd1QtCwei=5A220DfWqszk#G)A5#mVe&JV mS({^9LeZBw&nAp~Wv(=N2Snh0Qd{zx?wfZGM_yEGF8&SWJKcx? literal 0 HcmV?d00001 diff --git a/src/ich/__pycache__/utils.cpython-310.pyc b/src/ich/__pycache__/utils.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..eb73f28196990210072efb2325d07b429e471dad GIT binary patch literal 2947 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 literal 0 HcmV?d00001 diff --git a/src/ich/algo.py b/src/ich/algo.py index f457595..bca2d9b 100644 --- a/src/ich/algo.py +++ b/src/ich/algo.py @@ -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 -- GitLab