From 89b7280893b246b9160f55d66dbb351933186af0 Mon Sep 17 00:00:00 2001 From: Zhenping Yin Date: Mon, 27 Nov 2023 14:29:56 +0800 Subject: [PATCH 1/2] exclude folders --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 5cea51cb..a000af99 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ todo_filelist test netcdf4 log +analysis done_filelist # Sphinx build From 3176a27dff2a3ed4907b15c1dedcb6a9531eeab4 Mon Sep 17 00:00:00 2001 From: Zhenping Yin Date: Tue, 9 Jan 2024 12:28:25 +0800 Subject: [PATCH 2/2] bugfixes: wrong assigned value Bug Description --------------- As noticed by Adi, wrong aerosol backscatter values were assigned in in-complete overlap zone. See code [here](https://github.com/PollyNET/Pollynet_Processing_Chain/blob/b4f0cb38613f1059cf0e9cb2b60211e62e59bdb4/lib/interface/picassoProcV3.m#L3328C1-L3333C86) and code snippet below: ```matlab aExt355 = aerExt355_klett(iGrp, :); aExt355(1:hIndBase) = aerExt355_klett(hIndBase); ``` Here, `aerExt355_klett` is 2-D matrix (height x time). This copy operation will only fill the aerosol backscatter with values from the first profile. This bug can introduce some error in the lidar calibration constant, depending on the aerosol variations over time. Bug fixes --------- I have corrected the code as below, ```matlab aExt355 = aerExt355_klett(iGrp, :); aExt355(1:hIndBase) = aerExt355_klett(iGrp, hIndBase); ``` This fix has been applied all over the main function of `picassoProcV3`. --- lib/interface/picassoProcV3.m | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/interface/picassoProcV3.m b/lib/interface/picassoProcV3.m index e09c92b4..becad9df 100644 --- a/lib/interface/picassoProcV3.m +++ b/lib/interface/picassoProcV3.m @@ -3327,7 +3327,7 @@ % optical thickness (OT) aExt355 = aerExt355_klett(iGrp, :); - aExt355(1:hIndBase) = aerExt355_klett(hIndBase); + aExt355(1:hIndBase) = aerExt355_klett(iGrp, hIndBase); aBsc355 = aerBsc355_klett(iGrp, :); aOT355 = nancumsum(aExt355 .* [data.distance0(1), diff(data.distance0)]); mOT355 = nancumsum(mExt355 .* [data.distance0(1), diff(data.distance0)]); @@ -3366,7 +3366,7 @@ % optical thickness (OT) aExt532 = aerExt532_klett(iGrp, :); - aExt532(1:hIndBase) = aerExt532_klett(hIndBase); + aExt532(1:hIndBase) = aerExt532_klett(iGrp, hIndBase); aBsc532 = aerBsc532_klett(iGrp, :); aOT532 = nancumsum(aExt532 .* [data.distance0(1), diff(data.distance0)]); mOT532 = nancumsum(mExt532 .* [data.distance0(1), diff(data.distance0)]); @@ -3405,7 +3405,7 @@ % optical thickness (OT) aExt1064 = aerExt1064_klett(iGrp, :); - aExt1064(1:hIndBase) = aerExt1064_klett(hIndBase); + aExt1064(1:hIndBase) = aerExt1064_klett(iGrp, hIndBase); aBsc1064 = aerBsc1064_klett(iGrp, :); aOT1064 = nancumsum(aExt1064 .* [data.distance0(1), diff(data.distance0)]); mOT1064 = nancumsum(mExt1064 .* [data.distance0(1), diff(data.distance0)]); @@ -3632,7 +3632,7 @@ % optical thickness (OT) aExt355 = aerExt355_aeronet(iGrp, :); - aExt355(1:hIndBase) = aerExt355_aeronet(hIndBase); + aExt355(1:hIndBase) = aerExt355_aeronet(iGrp, hIndBase); aBsc355 = aerBsc355_aeronet(iGrp, :); aOT355 = nancumsum(aExt355 .* [data.distance0(1), diff(data.distance0)]); mOT355 = nancumsum(mExt355 .* [data.distance0(1), diff(data.distance0)]); @@ -3671,7 +3671,7 @@ % optical thickness (OT) aExt532 = aerExt532_aeronet(iGrp, :); - aExt532(1:hIndBase) = aerExt532_aeronet(hIndBase); + aExt532(1:hIndBase) = aerExt532_aeronet(iGrp, hIndBase); aBsc532 = aerBsc532_aeronet(iGrp, :); aOT532 = nancumsum(aExt532 .* [data.distance0(1), diff(data.distance0)]); mOT532 = nancumsum(mExt532 .* [data.distance0(1), diff(data.distance0)]); @@ -3710,7 +3710,7 @@ % optical thickness (OT) aExt1064 = aerExt1064_aeronet(iGrp, :); - aExt1064(1:hIndBase) = aerExt1064_aeronet(hIndBase); + aExt1064(1:hIndBase) = aerExt1064_aeronet(iGrp, hIndBase); aBsc1064 = aerBsc1064_aeronet(iGrp, :); aOT1064 = nancumsum(aExt1064 .* [data.distance0(1), diff(data.distance0)]); mOT1064 = nancumsum(mExt1064 .* [data.distance0(1), diff(data.distance0)]);