# Filtering 2D data in Julia

**URL:** <https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122>\
**Category:** Signal and Image Processing\
**Tags:** package, dsp, digital-filters\
**Created:** [February 6, 2023, 8:32am UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122 "2023-02-06T08:32:53Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![marianoarnaiz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marianoarnaiz/32/19377_2.png) [@marianoarnaiz](https://discourse.julialang.org/u/marianoarnaiz)\
**Post date:** [February 6, 2023, 8:32am UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/1 "2023-02-06T08:32:53Z")

</div>

Hi all.  
Is there are packaga that I can use to filter 2D data? Things like butterworth filtering, derivatives, poly fitting, spectrum computation, etc?  
I know a lot of this is implemente in GMT.jl by @joa-quim but the grdfft is not working in julia hehehe

---

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [February 6, 2023, 9:35am UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/2 "2023-02-06T09:35:57Z")

</div>

ImageFiltering.jl has a lot of features for 2d filtering

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [February 6, 2023, 10:05am UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/3 "2023-02-06T10:05:23Z")

</div>

Fyi, a simple way to use a “radial frequency” coordinate to build a 2D filter from a 1D filter (as available in DSP.jl), is provided in this [help page](https://www.originlab.com/doc/Origin-Help/2DFFT-Filter-Algorithm).

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [February 6, 2023, 12:09pm UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/4 "2023-02-06T12:09:48Z")

</div>

> [@marianoarnaiz](#):
>
> but the grdfft is not working in julia hehehe

What is the problem? Please open issues with examples of non-functioning.

---

<div class="post-metadata">

**Author:** ![marianoarnaiz](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/marianoarnaiz/32/19377_2.png) [@marianoarnaiz](https://discourse.julialang.org/u/marianoarnaiz)\
**Post date:** [February 6, 2023, 6:52pm UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/5 "2023-02-06T18:52:38Z")

</div>

Hello @joa-quim  
I do not think is an issue but I can´t get the wrapper to work on the new syntaix for doing somthing like:

output\_matrix = xyz2grd some\_table  
dtrend\_matrix = grdtred the output\_matrix  
result = grdfft low pass filter dtrend\_matrix

I can do this in GMT in my system but I need all the variables in Julia. Could you give me an example 🙂  
Thanks

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [February 6, 2023, 7:31pm UTC](https://discourse.julialang.org/t/filtering-2d-data-in-julia/94122/6 "2023-02-06T19:31:49Z")

</div>

Seems pretty simple but I’ll need ofc the exact CLI commands that you want translated into the `GMT.jl` syntax. Anyway, steps [1](https://www.generic-mapping-tools.org/GMTjl_doc/documentation/modules/xyz2grd/index.html#xyz2grd) & [2](https://www.generic-mapping-tools.org/GMTjl_doc/documentation/modules/grdtrend/index.html#grdtrend) are fully documented.
