Proximate and ultimate analysis

Use the Proximate class to express proximate analysis values as different bases. Bases are as-determined (ad), as-received (ar), dry (d), and dry ash-free (daf).

>>> prox = cm.Proximate([47.26, 40.05, 4.46, 8.23], 'ad')
>>> print(prox)
                ad        ar        d        daf
FC            47.26     39.53     51.50     54.13
VM            40.05     33.50     43.64     45.87
ash            4.46      3.73      4.86         -
moisture       8.23     23.24         -         -
total        100.00    100.00    100.00    100.00
>>> prox = cm.Proximate([39.53, 33.50, 3.73, 23.24], 'ar')
>>> print(prox)
                ad        ar        d        daf
FC            47.26     39.53     51.50     54.13
VM            40.05     33.50     43.64     45.87
ash            4.46      3.73      4.86         -
moisture       8.23     23.24         -         -
total        100.00    100.00    100.00    100.00
>>> prox = cm.Proximate([39.53, 33.50, 3.73, 23.24], 'ar')
>>> prox.daf_basis
array([54.12844037, 45.87155963])

Use the Ultimate class to express ultimate analysis values as different bases. Bases are as-determined (ad), as-received (ar), dry (d), and dry ash-free (daf).

>>> ult = cm.Ultimate([60.08, 5.44, 25.01, 0.88, 0.73, 7.86, 9.00], 'ad')
>>> print(ult)
            ad        ar        d        daf
C         60.08     46.86     66.02     72.26
H          5.44      6.71      4.87      5.33
O         25.01     39.05     18.70     20.47
N          0.88      0.69      0.97      1.06
S          0.73      0.57      0.80      0.88
ash        7.86      6.13      8.64         -
moisture   9.00     29.02         -         -
total    109.00    129.02    100.00    100.00
>>> ult = cm.Ultimate([46.86, 6.70, 39.05, 0.69, 0.57, 6.13, 29.02], 'ar')
>>> print(ult)
            ad        ar        d        daf
C         60.08     46.86     66.02     72.26
H          5.43      6.70      4.86      5.32
O         25.02     39.05     18.71     20.47
N          0.88      0.69      0.97      1.06
S          0.73      0.57      0.80      0.88
ash        7.86      6.13      8.64         -
moisture   9.00     29.02         -         -
total    109.00    129.02    100.00    100.00
>>> ult = cm.Ultimate([46.86, 3.46, 13.27, 0.69, 0.57, 6.13, 29.02], 'ar', HO=False)
>>> print(ult)
            ad        ar        d        daf
C         60.08     46.86     66.02     72.26
H          5.44      3.46      4.87      5.34
O         25.01     13.27     18.70     20.46
N          0.88      0.69      0.97      1.06
S          0.73      0.57      0.80      0.88
ash        7.86      6.13      8.64         -
moisture   9.00     29.02         -         -
total    109.00    100.00    100.00    100.00
>>> ult = cm.Ultimate([46.86, 6.70, 39.05, 0.69, 0.57, 6.13, 29.02], 'ar')
>>> ult.d_basis
array([66.01...,  4.86..., 18.70...,  0.97...,  0.80..., 8.63...])