# Clutter correction method

**URL:** <https://openradar.discourse.group/t/clutter-correction-method/305>\
**Category:** Corrections/Data Quality\
**Created:** [September 8, 2023, 7:13pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305 "2023-09-08T19:13:28Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jagdish\_jena](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@Jagdish\_jena](https://openradar.discourse.group/u/Jagdish_jena)\
**Post date:** [September 8, 2023, 7:13pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/1 "2023-09-08T19:13:28Z")

</div>

I want to correct ground based clutter using srtm data . I have done beam blockage estimation using wradlib . now i want to mask from my radar data . so what should i do ?

---

<div class="post-metadata">

**Author:** ![syedhamidali](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/syedhamidali/32/377_2.png) [@syedhamidali](https://openradar.discourse.group/u/syedhamidali)\
**Post date:** [September 8, 2023, 10:21pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/2 "2023-09-08T22:21:26Z")

</div>

[https://openradarscience.org/ams-open-radar-2023/notebooks/wradlib/wradlib\_data\_quality.html](https://openradarscience.org/ams-open-radar-2023/notebooks/wradlib/wradlib_data_quality.html)

---

<div class="post-metadata">

**Author:** ![Jagdish\_jena](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@Jagdish\_jena](https://openradar.discourse.group/u/Jagdish_jena)\
**Post date:** [September 9, 2023, 10:11am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/3 "2023-09-09T10:11:19Z")

</div>

i was using that method but following errors are coming .  
swp = vol[sweep\_number]  
clmap = swp.reflectivity\_hh\_clut.pipe(  
extract\_clutter, wsize=5, thrsnorain=0.0, tr1=21.0, n\_p=23, tr2=1.3, rm\_nans=False  
)  
swp = swp.assign({“CMAP”: clmap})  
display(swp)

output:  
AttributeError Traceback (most recent call last)  
Cell In[14], line 2  
1 swp = vol[sweep\_number]  
----\> 2 clmap = swp.reflectivity\_hh\_clut.pipe(  
3 extract\_clutter, wsize=5, thrsnorain=0.0, tr1=21.0, n\_p=23, tr2=1.3, rm\_nans=False  
4 )  
5 swp = swp.assign({“CMAP”: clmap})  
6 display(swp)

File ~\anaconda3\envs\pyart\_env\lib\site-packages\xarray\core\common.py:272, in AttrAccessMixin. **getattr** (self, name)  
270 with suppress(KeyError):  
271 return source[name]  
 → 272 raise AttributeError(  
273 f"{type(self). **name**!r} object has no attribute {name!r}"  
274 )

AttributeError: ‘Dataset’ object has no attribute ‘reflectivity\_hh\_clut’

i have checked there is no reflectivity\_hh\_clut variable in my radar dataset(TERLS C band RADAR). how to get this variable .

---

<div class="post-metadata">

**Author:** ![kmuehlbauer](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/kmuehlbauer/32/439_2.png) [@kmuehlbauer](https://openradar.discourse.group/u/kmuehlbauer)\
**Post date:** [September 10, 2023, 7:43am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/4 "2023-09-10T07:43:44Z")

</div>

Hi @Jagdish_jena,

welcome to openradar discourse.

The `reflectivity_hh_clut` is the radar reflectivity moment in the above used dataset. You would need to use a reflectivity moment from your dataset.

HTH,  
Kai

---

<div class="post-metadata">

**Author:** ![SAMA](https://avatars.discourse-cdn.com/v4/letter/s/7993a0/32.png) [@SAMA](https://openradar.discourse.group/u/SAMA)\
**Post date:** [September 10, 2023, 11:38am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/5 "2023-09-10T11:38:09Z")

</div>

![Screenshot (22)](https://global.discourse-cdn.com/free1/uploads/openradar/original/1X/67208fff6926be70904773b71920c4a71c1cd9f3.png)

reflectivity\_hh\_clut is replaced with DBZ, but I am facing this issue

---

<div class="post-metadata">

**Author:** ![SAMA](https://avatars.discourse-cdn.com/v4/letter/s/7993a0/32.png) [@SAMA](https://openradar.discourse.group/u/SAMA)\
**Post date:** [September 10, 2023, 11:38am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/6 "2023-09-10T11:38:51Z")

</div>

‘str’ object has no attribute ‘sel’

---

<div class="post-metadata">

**Author:** ![jorahu](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/jorahu/32/19_2.png) [@jorahu](https://openradar.discourse.group/u/jorahu)\
**Post date:** [September 10, 2023, 7:38pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/7 "2023-09-10T19:38:41Z")

</div>

This error implies that “vol” is a string. Run type(vol) to see the output. But “sel” is xarray dataset/data array attribute, so for this code to work, the “vol” is supposed to be some xarray data structure. There is probably some minor error in your previous code.

---

<div class="post-metadata">

**Author:** ![Jagdish\_jena](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@Jagdish\_jena](https://openradar.discourse.group/u/Jagdish_jena)\
**Post date:** [September 11, 2023, 10:17pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/8 "2023-09-11T22:17:52Z")

</div>

Thank you , i have tried this and got result . but i want save this result how can i do that.  
i have a file with dimension time \* range =3960\*1600 . The code you have mentioned is taking one sweep at a time . i want to save all sweeps in attributecorrected\_dbz and then save it into cfradial file with other attributes. so that i can use in titan for further processing. how can i do that .

---

<div class="post-metadata">

**Author:** ![syedhamidali](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/syedhamidali/32/377_2.png) [@syedhamidali](https://openradar.discourse.group/u/syedhamidali)\
**Post date:** [September 11, 2023, 10:38pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/9 "2023-09-11T22:38:50Z")

</div>

@Jagdish_jena Can you share the code how you’re reading in your data?

---

<div class="post-metadata">

**Author:** ![Jagdish\_jena](https://avatars.discourse-cdn.com/v4/letter/j/b19c9b/32.png) [@Jagdish\_jena](https://openradar.discourse.group/u/Jagdish_jena)\
**Post date:** [September 12, 2023, 12:15pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/10 "2023-09-12T12:15:46Z")

</div>

![data_reading](https://global.discourse-cdn.com/free1/uploads/openradar/original/1X/bb29b25943fc4c615abc9cc969df9795d08f1055.jpeg)  
 ![cmap](https://global.discourse-cdn.com/free1/uploads/openradar/original/1X/c4558ca61ae5083470f0bfb09975c4a15aacaf74.jpeg)  
here you can see cmap attribute is saved for a single sweep  
 ![clutter_correction](https://global.discourse-cdn.com/free1/uploads/openradar/original/1X/b133e0fa99601a47eb5aeedda0c7d4a21c445984.jpeg)  
pbb is also saved for single sweep which i have fixed at top of the code .  
my doubt is how can i save cmap and pbb for all sweeps in a single dataset . which i can convert into radar nc format. if my input dimension of attribute is 3960_1600 . the code should give output a nc file with orginal dimension and should contain cmap and pbb in dimenison 3960_1600

---

<div class="post-metadata">

**Author:** ![kmuehlbauer](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/kmuehlbauer/32/439_2.png) [@kmuehlbauer](https://openradar.discourse.group/u/kmuehlbauer)\
**Post date:** [September 12, 2023, 1:57pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/11 "2023-09-12T13:57:29Z")

</div>

@Jagdish_jena

Output to CfRadial1 is currently not implemented in xradar. But there is an enhancement proposal by @syedhamidali [Cf/Radial1 writer · Issue #124 · openradar/xradar · GitHub](https://github.com/openradar/xradar/issues/124).

- Kai

---

<div class="post-metadata">

**Author:** ![SAMA](https://avatars.discourse-cdn.com/v4/letter/s/7993a0/32.png) [@SAMA](https://openradar.discourse.group/u/SAMA)\
**Post date:** [September 12, 2023, 4:29pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/12 "2023-09-12T16:29:22Z")

</div>

Thank You. it worked

---

<div class="post-metadata">

**Author:** ![syedhamidali](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/syedhamidali/32/377_2.png) [@syedhamidali](https://openradar.discourse.group/u/syedhamidali)\
**Post date:** [September 13, 2023, 1:51am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/13 "2023-09-13T01:51:51Z")

</div>

Hi @SAMA, @Jagdish_jena  
Have a look at this notebook, I think it should work for now using wradlib and pyart in combination.  
[Notebook](https://github.com/syedhamidali/test_scripts/blob/master/TERLS_Radar_Correction_Wradlib_PyART.ipynb)

---

<div class="post-metadata">

**Author:** ![ankithva](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/ankithva/32/317_2.png) [@ankithva](https://openradar.discourse.group/u/ankithva)\
**Post date:** [February 1, 2024, 8:29pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/14 "2024-02-01T20:29:21Z")

</div>

hey iam having error : module ‘wradlib’ has no attribute ‘clutter’ when iam doing gabella clutter remove in my cfardial files,can you help me with this

 ![Screenshot 2024-02-02 013212](https://global.discourse-cdn.com/free1/uploads/openradar/original/1X/085e49eb386ce1761cf07a1e6a275d6138dc2a74.png)

---

<div class="post-metadata">

**Author:** ![aswin](https://avatars.discourse-cdn.com/v4/letter/a/8baadc/32.png) [@aswin](https://openradar.discourse.group/u/aswin)\
**Post date:** [February 9, 2024, 7:30pm UTC](https://openradar.discourse.group/t/clutter-correction-method/305/15 "2024-02-09T19:30:10Z")

</div>

“wrl.classify.clutter. filter… or wrl.classify.filter…” command will the rigth one for this problem

---

<div class="post-metadata">

**Author:** ![ankithva](https://yyz2.discourse-cdn.com/free1/user_avatar/openradar.discourse.group/ankithva/32/317_2.png) [@ankithva](https://openradar.discourse.group/u/ankithva)\
**Post date:** [February 14, 2024, 9:00am UTC](https://openradar.discourse.group/t/clutter-correction-method/305/16 "2024-02-14T09:00:27Z")

</div>

wrl.classify.filter\_gabella is the right one for the problem (sorry for the late reply)
