Unidata unit conversion library for handling physical units
Unidata unit conversion library
udunits2
$ udunits2 -H '100 m' 'km'
$ udunits2 -H '25 celsius' 'fahrenheit'
$ udunits2 -H '1 hour' 'minute'