Skip to main content

NatPy

Convert the units of particle physics quantities


Packages needed:

  • astropy
  • numpy

Guided Tutorial

https://github.com/AndreScaffidi/Natpy_pyhep_2021

Basic Usage

Code levarages astropy.units.core.Unit and astropy.units.quantity.Quantity objects.

  1. Run import natpy.

  2. Access physical constants with symbol within const:

    >>> import natpy as nat
    
    >>> nat.const.c
    <class 'astropy.constants.codata2018.CODATA2018'> name='Speed of light in vacuum' value=299792458.0 uncertainty=0.0 unit='m / s' reference='CODATA 2018'>
    
    
    >>> nat.const.hbar
    <class 'astropy.constants.codata2018.CODATA2018'> name='Reduced Planck constant' value=1.0545718176461565e-34 uncertainty=0.0 unit='J s' reference='CODATA 2018'>
    
    
  3. Access units with symbol. Combine with values or numpy objects to form quantities:

    >>> nat.m
    Unit("m")
    
    >>> nat.m / nat.s
    Unit("m / s")
    
    >>> 500 * nat.MeV
    <Quantity 500. MeV>
    
  4. Specify base of natural units with natpy.set_active_units(). Pass a string corresponding to a list of default natural units, or a list of physical constants to set your own. The list of default bases may be found in natpy/default_values.py. The default sets c = ℏ = ε₀ = 1.

  5. Run natpy.convert() to convert between units, including necessary factors of natural units. Pass just unit objects to obtain conversion factors. Pass quantity objects to perform conversions. E.g.

    >>> import natpy as nat
    
    # kg to keV
    >>> nat.convert(nat.kg, nat.keV)
    5.6173581670146864e+32
    
    # Electron mass
    >>> me = nat.convert(9.11e-31 * nat.kg, nat.keV)
    >>> me
    <Quantity 511.74132902 keV>
    
    # Energy of electron with momentum of 1 MeV
    >>> p = 1 * nat.MeV
    >>> E = np.sqrt(p**2 + me**2)
    
    # Convert to SI units
    >>> nat.convert(E, nat.J)
    <Quantity 1.79926309e-13 J>
    

    Note: Summing quantities of compatible units results in a quantity with the first terms units.

  6. natpy.convert() may also be accessed as a method for unit or quantity objects.

    >>> import natpy as nat
    
    >>> nat.GeV.convert( nat.fm**(-1) )
    5.067730716156395
    
    >>> (1 * nat.GeV).convert( nat.fm**(-1) )
    <Quantity 5.06773072 1 / fm>
    
  7. Electromagnetic constants are defined in the SI system by default:

    >>> nat.const.e
    <<class 'astropy.constants.codata2018.EMCODATA2018'> name='Electron charge' value=1.602176634e-19 uncertainty=0.0 unit='C' reference='CODATA 2018'>
    

    Values may be accessed in other systems as attributes of the nat.const.cgs submodule:

    >>> nat.const.cgs.e.gauss
    <<class 'astropy.constants.codata2018.EMCODATA2018'> name='Electron charge' value=4.803204712570263e-10 uncertainty=0.0 unit='Fr' reference='CODATA 2018'>
    

    The default system may be changed using natpy.set_active_em_system(), with arguments si, gauss, esu or emu:

    >>> nat.set_active_em_system('gauss')
    >>> nat.const.e
    <<class 'astropy.constants.codata2018.EMCODATA2018'> name='Electron charge' value=4.803204712570263e-10 uncertainty=0.0 unit='Fr' reference='CODATA 2018'>
    
  8. Dimensionless unscales quantities may be constructed using natpy.dimensionless_unscaled, which is also bound to natpy.dimensionless, natpy.unitless and natpy.one, for added usability.

  9. See examples/conversion.py for more examples.

Metadata

Release files for NatPy 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for NatPy 0.1.4
File Size Uploaded
NatPy-0.1.4.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for NatPy 0.1.4
File Interpreter ABI Platform
NatPy-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 15.7 kB

Release files / NatPy-0.1.4.tar.gz

Download URL NatPy-0.1.4.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
af9c36cd40e91c02ecb84c96da0bb8ab1f89610e103d4740b97eed70d2a0af80
BLAKE2b-256 checksum
How to use checksums
e569d2a7a87f2023187f34fd5a24519886377405af8619f37a09811a6d0a8818
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release files / NatPy-0.1.4-py3-none-any.whl

Download URL NatPy-0.1.4-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
898688835c3875fde6171b4b4453fd4847f5e214f941760c49ddebba33d3d68a
BLAKE2b-256 checksum
How to use checksums
8495f3ab7ebc39342cb9838fe39c0579ca355ac758ec6edc852d5765de995be2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.10.13

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page