Comments (6)
If you only wish to avoid converting to SI, one option is to use symbolic units: https://github.com/SymbolicML/DynamicQuantities.jl#symbolic-units.
You can also define custom dimensions structs:
DynamicQuantities.jl/test/unittests.jl
Lines 444 to 448 in 87e1eb3
which you could set the default unit system to something else rather than SI.
However, to just register a unit, it's probably safer to just define your own @u_str
macro with the different units you would like to make available in the same scope eval
is executed.
While you could technically do DynamicQuantities.Units.eval(:(const mph = ...))
for every unit, which would make them available to uparse
, this is not at all a safe or robust approach. Globally registering units like this is dangerous so I would recommend the former strategies.
from dynamicquantities.jl.
I'm happy to have all the calculations happen in SI and actually prefer to do so. I'm just looking for the cleanest way to convert things on the way in and on the way out. For example, in a previous life I did a lot of DC motor work, and the input units around torque and inertia can be pretty strange. But even for the output, no human (that I know of) thinks in radians/second
, so that has to get converted to RPM
(which is not of course SI).
P.S. I was happy to see the clever support for fractional powers, as one of my tests for a unit system is if it can handle the motor constant which is in dimensions of torque per sqrt(power).
from dynamicquantities.jl.
Cool! Okay so once #48 merges, we should be good to go if its just conversion. Then you could do, for example,
0.5u"1/s" |> as_u("1/min")
which would display it in symbolic dimensions of 1/minute. But we're still discussing the API over in that PR.
Cheers,
Miles
P.S. I was happy to see the clever support for fractional powers, as one of my tests for a unit system is if it can handle the motor constant which is in dimensions of torque per sqrt(power).
Awesome, I am glad to hear it has found a use-case!
from dynamicquantities.jl.
Thank you for the pointer to that discussion. I think that will probably cover my questions.
from dynamicquantities.jl.
Closed with #48
from dynamicquantities.jl.
@klaff FYI we just added mi
, ft
, and inch
.
from dynamicquantities.jl.
Related Issues (20)
- Further improvements to startup time HOT 1
- Behavior with `missing` HOT 6
- Adding "missing" units HOT 4
- Compatibility with `zero(::Type{T})` HOT 6
- Unitful conversion fails for symbolic units HOT 7
- Sweep: Define `NoDims` for indicating something is not a quantity HOT 2
- `reduce(vcat` returns corrupted result HOT 1
- `map` fails with `QuantityArray` HOT 3
- u"Ω" errors in precompilation HOT 6
- Base.isapprox fails for Vector{Quantity} HOT 14
- Meshes.jl test failure HOT 10
- Round tripping Quantities through String HOT 3
- `bionomial` and `factorial` functions not defined? HOT 5
- Molar units not supported HOT 7
- Why `one(1u"kg")` no dimension? HOT 2
- Pretty print element types of `QuantityArray` HOT 2
- How to cite DynamicQuantities.jl? HOT 2
- Inconsistency between one(x::Quantity) and zero(x::Quantity) HOT 1
- validate_upreferred() destroys performance. Should there be a way to opt out? HOT 15
- unexpected behavior with Set? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dynamicquantities.jl.