X

NV5 Geospatial Blog

Each month, NV5 Geospatial posts new blog content across a variety of categories. Browse our latest posts below to learn about important geospatial information or use the search bar to find a specific topic or author. Stay informed of the latest blog posts, events, and technologies by joining our email list!



16838 Rate this article:
2.0

Dimensional Analysis, Unit Conversions, and Physical Constants

Anonym

Physical Constants

When I was in college, I memorized most of the common physical constants, such as Plank's Constant or Earth's mass. To be honest, today I don't remember most of these without looking them up. Although this isn't too difficult to do in the era of the internet where I can copy and paste the search result of "Plank's Constant" from my browser into the IDL editor, IDL makes it much easier by storing many of these physical constants in the !CONST system variable. For example, if I am writing code that calculates gravitational forces using the Gravitation Constant, I can simply use !CONST.G. More convenient than just saving me a few seconds of typing a long number as a variable, however, is the fact that IDL automatically stores these values as double precision, ensuring maximum accuracy each time they are used.

Unit Conversion in IDL

Another helpful tool when developing code that involves processing dimensional data is IDLUNIT, which can perform unit conversion, calculate simple mathematical expressions, and much more. Similar to !CONST, all values and calculations are kept in double precision for maximum accuracy.

Here is an example of how you may convert PSI to Pascals:

PsiToPa = (IDLUnit('psi -> Pa')).Quantity

PaValue = psiValue * psiToPa

IDLUNIT even allows a user to add custom units, which is helpful when using non-standard units. For example, how many Olympic sized swimming pools does it take to fill Sydney Harbour? Let's define a unit of 'pool' as 50 x 25 x 2 meters = 2500 m3, and let's define Sydney Harbour as 494 Gigaliters (source: Wikipedia: List of unusual units of measurement).

IDLUnit.AddUnit, 'pool', '2500 m^3', PLURAL='pools'

IDLUnit.AddUnit, 'Sydharb', '494 Gl', PLURAL='Sydharbs'

IDLUnit('1 Sydharb -> pools')

IDL tells us that 197,600 pools could fill Sydney Harbour.

IDL's help page for the IDLUNIT topic contains many additional examples.

Unit Converter Widget

In addition to performing unit conversions in code or at the command line, IDL has an interactive unit converter. To launch this converter, run 'idl_convert' or select 'IDL Converter' from the IDL Workbench's Macros menu. Notice that the custom units defined in the example above are included in this tool.

 

Please login or register to post comments.
«May 2025»
SunMonTueWedThuFriSat
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567
Digital Number, Radiance, and...

Number of views (169402)

Push Broom and Whisk Broom Sensors

Number of views (150635)

The Many Band Combinations of Landsat 8

Number of views (118590)

What Type of Loop Should I Use?

Number of views (78602)

Mapping Coastal Erosion Using LiDAR

Number of views (58465)