# \[ANN\] DimensionfulAngles.jl: An extension of Unitful.jl to include angles as a dimension

**URL:** <https://discourse.julialang.org/t/ann-dimensionfulangles-jl-an-extension-of-unitful-jl-to-include-angles-as-a-dimension/92484>\
**Category:** Package Announcements\
**Tags:** package, unitful\
**Created:** [January 4, 2023, 6:08am UTC](https://discourse.julialang.org/t/ann-dimensionfulangles-jl-an-extension-of-unitful-jl-to-include-angles-as-a-dimension/92484 "2023-01-04T06:08:15Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![cmichelenstrofer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cmichelenstrofer/32/44392_2.png) [@cmichelenstrofer](https://discourse.julialang.org/u/cmichelenstrofer)\
**Post date:** [January 4, 2023, 6:08am UTC](https://discourse.julialang.org/t/ann-dimensionfulangles-jl-an-extension-of-unitful-jl-to-include-angles-as-a-dimension/92484/1 "2023-01-04T06:08:15Z")

</div>

I wrote a package to include angles as a dimension when using Unitful.jl. It allows for dispatching on Angle quantities.

> **[GitHub - cmichelenstrofer/DimensionfulAngles.jl: 📐 An extension of Unitful.jl...](https://github.com/cmichelenstrofer/DimensionfulAngles.jl)**
>
> 📐 An extension of Unitful.jl to include angles as a dimension. - GitHub - cmichelenstrofer/DimensionfulAngles.jl: 📐 An extension of Unitful.jl to include angles as a dimension.

Angles not having a dimension has been the cause of many issues:  
[#570](https://github.com/PainterQubits/Unitful.jl/issues/570) [#531](https://github.com/PainterQubits/Unitful.jl/issues/531) [#537](https://github.com/PainterQubits/Unitful.jl/issues/537) [#392](https://github.com/PainterQubits/Unitful.jl/issues/392) [#216](https://github.com/PainterQubits/Unitful.jl/issues/216) [#38](https://github.com/PainterQubits/Unitful.jl/issues/38).

The basic usage is as follows:

```julia
julia> using Unitful

julia> using DimensionfulAngles

julia> dimensionless_angle = 1u"rad"

1 rad

julia> dimensionful_angle = 1u"radᵃ"
1 rad

julia> typeof(dimensionless_angle)
Quantity{Int64, NoDims, Unitful.FreeUnits{(rad,), NoDims, nothing}}

julia> typeof(dimensionful_angle)
Quantity{Int64, 𝐀, Unitful.FreeUnits{(rad,), 𝐀, nothing}}

```

You can then dispatch functions on angle quantities. One example included in the package is an `Equivalence` using [UnitfulEquivalences.jl](https://github.com/sostock/UnitfulEquivalences.jl/tree/main/src) that converts between period, frequency, and [angular frequency](https://en.wikipedia.org/wiki/Angular_frequency):

f = \frac{1}{T}=\frac{ω}{2π}

```julia
julia> using Unitful

julia> using DimensionfulAngles

julia> uconvert(u"s", 10u"Hz", Periodic())
0.1 s

julia> uconvert(u"radᵃ/s", 1u"Hz", Periodic())
6.283185307179586 rad s⁻¹

```

I hope some find it useful!

It is also my first Julia package which I used to try to learn all aspects of package creation (testing, documentation, registering, etc.). And I am still very new to Julia. So I could use feedback on any aspect of the project! 🤓
