From ce00e97c00557175a33211db86c1481b797c2452 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:24:53 -0400 Subject: [PATCH 01/43] Fix line endings --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 3b8be0b..82a1977 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -94,7 +94,7 @@ def open_(*args,**argv): 'ADDED CALCULATION OF THE ISO_ID TABLE ON STARTUP (ver. 1.2.1.0)', 'ADDED SUPPORT FOR TIPS-2021 (ver. 1.2.2.0)', 'FIXED BUG WITH WAVENUMBERGRID (ver. 1.2.2.1)', -] +] # version header print('HAPI version: %s' % HAPI_VERSION) From 762e27c43a739043923f96f6776b91a37c56f666 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:09:23 -0400 Subject: [PATCH 02/43] spelling: absent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 82a1977..7954d9e 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -883,7 +883,7 @@ def formatString(par_format,par_value,lang='FORTRAN'): # . - decimal ceparator (optional) # N - number of digits after . (optional) # P - [dfs] int/float/string - # PYTHON RULE: if N is abcent, default value is 6 + # PYTHON RULE: if N is absent, default value is 6 regex = FORMAT_PYTHON_REGEX (lng,trail,lngpnt,ty) = re.search(regex,par_format).groups() if type(par_value) is np.ma.core.MaskedConstant: From 726376fb501c3e98124304965aecf2708c3f5369 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:10:24 -0400 Subject: [PATCH 03/43] spelling: absorption Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 7954d9e..d178e12 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4315,7 +4315,7 @@ def print_data_tutorial(): /////////////////////////////////////////////////////////////////// Let's calculate an absorption, transmittance, and radiance -spectra on the basis of apsorption coefficient. In order to be consistent +spectra on the basis of absorption coefficient. In order to be consistent with internal API's units, we need to have an absorption coefficient cm-1: >>> nu,coef = absorptionCoefficient_Lorentz(SourceTables='CO2',HITRAN_units=False) From ee8c495210056e0101217ae5a0a11b22d69f5fe9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:09:05 -0400 Subject: [PATCH 04/43] spelling: abundance Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index d178e12..174a066 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4679,7 +4679,7 @@ def abundance(M,I): M: HITRAN molecule number I: HITRAN isotopologue number OUTPUT PARAMETERS: - Abbundance: natural abundance + Abundance: natural abundance --- DESCRIPTION: Return natural (Earth) abundance of HITRAN isotolopogue. From 8ce69a5f739141fabd2c455d36cf690df06a5e91 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:10:11 -0400 Subject: [PATCH 05/43] spelling: advanced Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 174a066..652bcf6 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -1830,7 +1830,7 @@ def operationBIND(parname,Expression,VarDictionary): # when make the language parser is implemented. # For more ideas and info see LANGUAGE_REFERENCE -# more advansed version of expression evaluator +# more advanced version of expression evaluator def evaluateExpressionPAR(ParameterNames,VarDictionary=None): # RETURN: 1) Upper-level Expression names # 2) Upper-level Expression values From 736f27fcaee28ec0af47e44ef1df1bfe3c8b18df Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:10:02 -0400 Subject: [PATCH 06/43] spelling: ascending Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 652bcf6..0baee12 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -2263,7 +2263,7 @@ def compareLESS(RowObject1,RowObject2,ParameterNames): Flag = row1 < row2 return Flag -def quickSort(index,TableName,ParameterNames,Accending=True): +def quickSort(index,TableName,ParameterNames,Ascending=True): # ParameterNames: names of parameters which are # taking part in the sorting if index == []: @@ -2279,21 +2279,21 @@ def quickSort(index,TableName,ParameterNames,Accending=True): lesser_index += [RowID] else: greater_index += [RowID] - lesser = quickSort(lesser_index,TableName,ParameterNames,Accending) - greater = quickSort(greater_index,TableName,ParameterNames,Accending) - if Accending: + lesser = quickSort(lesser_index,TableName,ParameterNames,Ascending) + greater = quickSort(greater_index,TableName,ParameterNames,Ascending) + if Ascending: return lesser + [PivotID] + greater else: return greater + [PivotID] + lesser # Sorting must work well on the table itself! -def sort(TableName,DestinationTableName=None,ParameterNames=None,Accending=True,Output=False,File=None): +def sort(TableName,DestinationTableName=None,ParameterNames=None,Ascending=True,Output=False,File=None): """ INPUT PARAMETERS: TableName: name of source table (required) DestinationTableName: name of resulting table (optional) ParameterNames: list of parameters or expressions to sort by (optional) - Accending: sort in ascending (True) or descending (False) order (optional) + Ascending: sort in ascending (True) or descending (False) order (optional) Output: enable (True) or suppress (False) text output (optional) File: enable (True) or suppress (False) file output (optional) OUTPUT PARAMETERS: @@ -2316,7 +2316,7 @@ def sort(TableName,DestinationTableName=None,ParameterNames=None,Accending=True, ParameterNames = LOCAL_TABLE_CACHE[TableName]['header']['order'] elif type(ParameterNames) not in set([list,tuple]): ParameterNames = [ParameterNames] # fix of stupid bug where ('p1',) != ('p1') - index_sorted = quickSort(index,TableName,ParameterNames,Accending) + index_sorted = quickSort(index,TableName,ParameterNames,Ascending) arrangeTable(TableName,DestinationTableName,index_sorted) if Output: outputTable(DestinationTableName,File=File) @@ -2346,7 +2346,7 @@ def group(TableName,DestinationTableName=QUERY_BUFFER,ParameterNames=None,GroupP DestinationTableName: name of resulting table (optional) ParameterNames: list of parameters or expressions to take (optional) GroupParameterNames: list of parameters or expressions to group by (optional) - Accending: sort in ascending (True) or descending (False) order (optional) + Ascending: sort in ascending (True) or descending (False) order (optional) Output: enable (True) or suppress (False) text output (optional) OUTPUT PARAMETERS: none From ab7bce0f013266bad4cb07ac1a194066383f7ef8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:10:41 -0400 Subject: [PATCH 07/43] spelling: bindings Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 0baee12..b36041d 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -35256,7 +35256,7 @@ def EnvironmentDependency_Eta(EtaDB,Gamma0,Shift0,Diluent,C): # C=>CONTEXT # ------------------------------- /PARAMETER DEPENDENCIES -------------------------------- -# ------------------------------- BINGINGS -------------------------------- +# ------------------------------- BINDINGS -------------------------------- # default parameter bindings DefaultParameterBindings = {} @@ -35264,7 +35264,7 @@ def EnvironmentDependency_Eta(EtaDB,Gamma0,Shift0,Diluent,C): # C=>CONTEXT # default temperature dependencies DefaultEnvironmentDependencyBindings = {} -# ------------------------------- /BINGINGS -------------------------------- +# ------------------------------- /BINDINGS -------------------------------- # default values for intensity threshold DefaultIntensityThreshold = 0. # cm*molec From df288999ddf512b3d0c3d2c597c4beb05105df7f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:11:15 -0400 Subject: [PATCH 08/43] spelling: choices Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index b36041d..4371d12 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4288,7 +4288,7 @@ def print_data_tutorial(): HITRAN_units: (optional parameter) Logical flag for units, in which the absorption coefficient shoould be - calculated. Currently, the choises are: cm^2/molec (if True) and + calculated. Currently, the choices are: cm^2/molec (if True) and cm-1 (if False). NOTE: to calculate other spectral functions like transmitance, radiance and absorption spectra, user should set HITRAN_units to False. From 05659baa29e889ca9f698b9ef2401ab065df9694 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:21:49 -0400 Subject: [PATCH 09/43] spelling: columns Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 4371d12..6aa9b2b 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3889,7 +3889,7 @@ def print_python_tutorial(): getColumns(...) The first one returns just one column at a time. The second one returns -a list of solumns. +a list of columns. So, here are some examples of how to use both: From 4530e368cbc53388d30143896b14dec582154633 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:11:28 -0400 Subject: [PATCH 10/43] spelling: convention Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 6aa9b2b..34c3f00 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -2463,7 +2463,7 @@ def extractColumns(TableName,SourceParameterName,ParameterFormats,ParameterNames # if ParameterNames is empty, fill it with #1-2-3-... if not ParameterNames: ParameterNames = [] - # using naming convension #i, i=0,1,2,3... + # using naming convention #i, i=0,1,2,3... for par_format in ParameterFormats: while True: i+=1 From 805bba8cf42d539eeb5d61ea69c764910158d9b9 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:12:25 -0400 Subject: [PATCH 11/43] spelling: currently Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 34c3f00..c69acb3 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3756,7 +3756,7 @@ def print_python_tutorial(): gpp %7.1f ----------------------------------------- -This output tells how many rows are currenty in the table H2O, which +This output tells how many rows are currently in the table H2O, which wavenumber range was used by fetch(). Also this gives a basic information about parameters stored in the table. From c948cc4d234067e9cab2a111bb37e4bf14470e43 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:12:49 -0400 Subject: [PATCH 12/43] spelling: default Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index c69acb3..31d8dab 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4231,7 +4231,7 @@ def print_data_tutorial(): Func(M,I,T), where Func - numae of function, (M,I) - HITRAN numbers for molecule and isotopologue, T - temperature. Function must return only one output - value of partition sum. - NOTE: Deafult value is PYTIPS - python version of TIPS-2011 + NOTE: Default value is PYTIPS - python version of TIPS-2011 Environment: (optional parameter) From e2303cd653e1602df83a2d91510289fe16dbdaaf Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:12:40 -0400 Subject: [PATCH 13/43] spelling: detailed Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 31d8dab..d0062e7 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4395,7 +4395,7 @@ def print_data_tutorial(): For instance, >>> getHelp(SLIT_MICHELSON) -... will give a datailed info about Michelson's instrumental function. +... will give a detailed info about Michelson's instrumental function. The function convolveSpectrum() convolutes a high-resulution spectrum From d3f93332e6bef3fd746b9f05882b1eaa07b60b76 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:13:01 -0400 Subject: [PATCH 14/43] spelling: difference Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index d0062e7..561dee9 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4527,7 +4527,7 @@ def print_spectra_tutorial(): >>> legend(['Voigt','Lorentz']) # show legend >>> title('Voigt and Lorentz profiles') # show title >>> subplot(2,1,2) # lower panel ->>> plot(wn,diff) # plot diffenence +>>> plot(wn,diff) # plot difference >>> title('Voigt-Lorentz residual') # show title >>> show() # show all figures From 4fa3d3534067f0af6c7666e25bd3eb595872b0a0 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:13:16 -0400 Subject: [PATCH 15/43] spelling: existence Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 561dee9..b0b17b7 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -35292,7 +35292,7 @@ def getDefaultValuesForXsect(Components,SourceTables,Environment,OmegaRange, if Components == [None]: CompDict = {} for TableName in SourceTables: - # check table existance + # check table existence if TableName not in LOCAL_TABLE_CACHE.keys(): raise Exception('%s: no such table. Check tableList() for more info.' % TableName) mol_ids = LOCAL_TABLE_CACHE[TableName]['data']['molec_id'] From 6d1f3097ef713b3a3641fa6c992be520bfcf4fb3 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:13:24 -0400 Subject: [PATCH 16/43] spelling: expression Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index b0b17b7..9545834 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -1825,7 +1825,7 @@ def operationBIND(parname,Expression,VarDictionary): # For parsing use the function evaluateExpression # Get names from expression. -# Must merge this one with evaluateExrpression. +# Must merge this one with evaluateExpression. # This is VERY LIMITED version of what will be # when make the language parser is implemented. # For more ideas and info see LANGUAGE_REFERENCE From cf89324ee0280ea687513da52f0f4eed0043747f Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:13:50 -0400 Subject: [PATCH 17/43] spelling: following Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 9545834..4bf4252 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4399,7 +4399,7 @@ def print_data_tutorial(): The function convolveSpectrum() convolutes a high-resulution spectrum -with one of supplied instrumental (slit) functions. The folowing +with one of supplied instrumental (slit) functions. The following parameters of this function are provided: Wavenumber (required parameter) From 75ca13f9883f167a25d3872cb46a5630d78bc9a8 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:13:40 -0400 Subject: [PATCH 18/43] spelling: format Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 4bf4252..ed662c8 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4245,7 +4245,7 @@ def print_data_tutorial(): List containing minimum and maximum value of wavenumber to consider in cross-section calculation. All lines that are out of htese bounds - will be skipped. The firmat is as follows: WavenumberRange=[wn_low,wn_high] + will be skipped. The format is as follows: WavenumberRange=[wn_low,wn_high] NOTE: If this parameter os skipped, then min and max are taken from the data from SourceTables. Deprecated name is OmegaRange. From 15ebe9933c18a28c377a4b57ec8b227cf5f5646b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:14:14 -0400 Subject: [PATCH 19/43] spelling: global Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index ed662c8..414e94a 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -2891,7 +2891,7 @@ def getLinelist(local_name,query,api_key): # ------------------------------------------------------------------- # ------------------------------------------------------------------- -# / GLOBABL API FUNCTIONS +# / GLOBAL API FUNCTIONS # ------------------------------------------------------------------- # ------------------------------------------------------------------- From 290a57e94f8f8790644e931e7cbf3e492c17a306 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:14:52 -0400 Subject: [PATCH 20/43] spelling: including Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 414e94a..8954704 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -1806,7 +1806,7 @@ def checkRowObject(RowObject,Conditions,VarDictionary): # ---------------------------------------------------- -# PARAMETER NAMES (includeing creation of new ones) +# PARAMETER NAMES (including creation of new ones) # ---------------------------------------------------- # Bind an expression to a new parameter From 32d4615971f89b2918a1639038defd17c120bbc4 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:15:07 -0400 Subject: [PATCH 21/43] spelling: intensity Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 8954704..a7d1b4f 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -35503,7 +35503,7 @@ def absorptionCoefficient_Generic(Components=None,SourceTables=None,partitionFun # filter by molecule and isotopologue if (TRANS['molec_id'],TRANS['local_iso_id']) not in ABUNDANCES: continue - # FILTER by LineIntensity: compare it with IntencityThreshold + # FILTER by LineIntensity: compare it with IntensityThreshold TRANS['SigmaT'] = partitionFunction(TRANS['molec_id'],TRANS['local_iso_id'],TRANS['T']) TRANS['SigmaT_ref'] = partitionFunction(TRANS['molec_id'],TRANS['local_iso_id'],TRANS['T_ref']) LineIntensity = calculate_parameter_Sw(None,TRANS) From 31fb90be296ce780f1766f75b5bbc48b3edae801 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:15:44 -0400 Subject: [PATCH 22/43] spelling: isotopologue Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index a7d1b4f..1dc522e 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4682,7 +4682,7 @@ def abundance(M,I): Abundance: natural abundance --- DESCRIPTION: - Return natural (Earth) abundance of HITRAN isotolopogue. + Return natural (Earth) abundance of HITRAN isotopologue. --- EXAMPLE OF USAGE: ab = abundance(1,1) # H2O @@ -4703,7 +4703,7 @@ def molecularMass(M,I): MolMass: molecular mass --- DESCRIPTION: - Return molecular mass of HITRAN isotolopogue. + Return molecular mass of HITRAN isotopologue. --- EXAMPLE OF USAGE: mass = molecularMass(1,1) # H2O @@ -4744,7 +4744,7 @@ def isotopologueName(M,I): IsoMass: isotopologue mass --- DESCRIPTION: - Return name of HITRAN isotolopogue. + Return name of HITRAN isotopologue. --- EXAMPLE OF USAGE: isoname = isotopologueName(1,1) # H2O From 7dbf5438beae8bb60974793dd474863df96b81c2 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:16:16 -0400 Subject: [PATCH 23/43] spelling: logical Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 1dc522e..2694dfc 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -2181,7 +2181,7 @@ def select(TableName,DestinationTableName=QUERY_BUFFER,ParameterNames=None,Condi TableName: name of source table (required) DestinationTableName: name of resulting table (optional) ParameterNames: list of parameters or expressions (optional) - Conditions: list of logincal expressions (optional) + Conditions: list of logical expressions (optional) Output: enable (True) or suppress (False) text output (optional) File: enable (True) or suppress (False) file output (optional) OUTPUT PARAMETERS: From 4a39202b0a7f0889855776ea5f58d41aa3128cd7 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:16:47 -0400 Subject: [PATCH 24/43] spelling: matlab Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 2694dfc..f64a2fa 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4494,7 +4494,7 @@ def print_spectra_tutorial(): To do so, we will do all necessary steps to download, filter and calculate cross sections "from scratch". To demonstrate the different possibilities of matplotlib, we will mostly use Pylab - a part of -Matplotlib with the interface similar to Matlab. Please note, that it's +Matplotlib with the interface similar to MATLAB. Please note, that it's not the only way to use Matplotlib. More information can be found on it's site. The next part is a step-by-step guide, demonstrating basic possilities From 62442425f0a633f941b6daa8e829f72cd14a1ff1 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:17:02 -0400 Subject: [PATCH 25/43] spelling: minimum Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index f64a2fa..d07c2ef 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -34112,7 +34112,7 @@ def volumeConcentration(p,T): # ------------------------------- PARAMETER DEPENDENCIES -------------------------------- -# THE LOGIC OF THIS SECTION IS THAT NOTHING (OR AT LEAST MINUMUM) SHOULD BE HARD-CODED INTO THE GENERIC ABSCOEF ROUTINES +# THE LOGIC OF THIS SECTION IS THAT NOTHING (OR AT LEAST MINIMUM) SHOULD BE HARD-CODED INTO THE GENERIC ABSCOEF ROUTINES # TRYING TO AVOID THE OBJECT ORIENTED APPROACH HERE IN ORDER TO CORRESPOND TO THE OVERALL STYLE OF THE PACKAGE def ladder(parname,species,envdep_presets,TRANS,flag_exception=False): # priority search for the parameters From ab30169fa1b36fd24bbb080e233673db92b2f33a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:24:57 -0400 Subject: [PATCH 26/43] spelling: much Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index d07c2ef..b2b9f4c 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3584,7 +3584,7 @@ def __init__(self, arg1): EPILOGUE This tutorial is not meant to be an exhaustive list of all (or even a subset) of Python. -Python has a vast array of libraries and much much more functionality which you will +Python has a vast array of libraries and much, much more functionality which you will have to discover through other means, such as the excellent book Dive into Python. I hope I have made your transition in Python easier. Please leave comments if you believe there is something that could be improved or added or if there is anything else From cb0ab95462fb3e86d13f0c1e95abc74e3f6a61e7 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:18:44 -0400 Subject: [PATCH 27/43] spelling: name Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index b2b9f4c..ef3e435 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4228,7 +4228,7 @@ def print_data_tutorial(): partitionFunction: (optional parameter) Instance of partition function of the following format: - Func(M,I,T), where Func - numae of function, (M,I) - HITRAN numbers + Func(M,I,T), where Func - name of function, (M,I) - HITRAN numbers for molecule and isotopologue, T - temperature. Function must return only one output - value of partition sum. NOTE: Default value is PYTIPS - python version of TIPS-2011 From 01b6bc6322202aa414e7f314b9ebc1b43f5f21ab Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:19:23 -0400 Subject: [PATCH 28/43] spelling: overridden Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index ef3e435..d4b4bda 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3681,7 +3681,7 @@ def print_python_tutorial(): 3) Wavenumber range (nu_min and nu_max) N.B. If you specify the name which already exists in the database, -the existing table with that name will be overrided. +the existing table with that name will be overridden. To get additional information on function fetch, call getHelp: From c5ecdcfb8d75ada7f080aa061521172673992849 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:19:39 -0400 Subject: [PATCH 29/43] spelling: partition Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index d4b4bda..bbda08f 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4121,7 +4121,7 @@ def print_data_tutorial(): >>> Q = partitionSum(1,1,[70,80,90]) Usecase 2: temperature is defined by bounds and the step: ->>> T,Q = partiionSum(1,1,[70,3000],step=1.0) +>>> T,Q = partitionSum(1,1,[70,3000],step=1.0) In the latter example we calculate a partition sum on a range of temperatures from 70K to 3000K using a step 1.0 K, and having arrays From 4b7b6ae017fda9072b4f9143a0e7baf1abdefe9b Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:20:00 -0400 Subject: [PATCH 30/43] spelling: possibilities Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index bbda08f..fe480b5 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4497,7 +4497,7 @@ def print_spectra_tutorial(): Matplotlib with the interface similar to MATLAB. Please note, that it's not the only way to use Matplotlib. More information can be found on it's site. -The next part is a step-by-step guide, demonstrating basic possilities +The next part is a step-by-step guide, demonstrating basic possibilities of HITRANonline API in conjunction with Matplotlib. First, do some preliminary imports: From 8e52a56c75c889ea426d5136ff8e29f47d964338 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:20:08 -0400 Subject: [PATCH 31/43] spelling: previous Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index fe480b5..06043f6 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4435,7 +4435,7 @@ def print_data_tutorial(): advices and remarks: 1) Quality of a convolution depends on many things: quality of calculated spectra, width of AF_wing and WavenumberRange, Resolution, WavenumberStep etc ... -Most of these factors are taken from previus stages of spectral calculation. +Most of these factors are taken from previous stages of spectral calculation. Right choise of all these factors is crucial for the correct computation. 2) Dispersion, Diffraction and Michelson AF's don't work well in narrow wavenumber range because of their broad wings. From ce25287f8d468b741a3d33621e5b87b77d739cad Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:20:21 -0400 Subject: [PATCH 32/43] spelling: queries Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 06043f6..780fead 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3812,7 +3812,7 @@ def print_python_tutorial(): of parameters". So far it worth mentioning that this parameter is a part of a powerful tool for displaying and processing tables from database. -In the next section we will show how to create quieries +In the next section we will show how to create queries with more complex conditions. From a61f332d3a68b15ca2ba740fe4cb6fb26547d4a7 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:20:40 -0400 Subject: [PATCH 33/43] spelling: reason Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 780fead..23e1394 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4145,7 +4145,7 @@ def print_data_tutorial(): As it well known, the spectral functions such as absorption, transmittance, and radiance spectra, are calculated on the basis -of the absorption coefficient. By that resaon, absorption coefficient +of the absorption coefficient. By that reason, absorption coefficient is the most important part of simulating a cross section. This part of tutorial is devoted to demonstration how to calculate absorption coefficient from the HITRAN line-by-line data. Here we give a brief From 87205f1723fb14b22daa92b53ef1047d1c252ce1 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:20:49 -0400 Subject: [PATCH 34/43] spelling: resolution Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 23e1394..2ae6db0 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4398,7 +4398,7 @@ def print_data_tutorial(): ... will give a detailed info about Michelson's instrumental function. -The function convolveSpectrum() convolutes a high-resulution spectrum +The function convolveSpectrum() convolutes a high-resolution spectrum with one of supplied instrumental (slit) functions. The following parameters of this function are provided: From 80f4edaf5340fcdbd06eb06d3b247088556fcdba Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:10:57 -0400 Subject: [PATCH 35/43] spelling: separator Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 2ae6db0..04383d8 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -880,7 +880,7 @@ def formatString(par_format,par_value,lang='FORTRAN'): # %M.NP # M - total field length (optional) # (minus sign included in M) - # . - decimal ceparator (optional) + # . - decimal separator (optional) # N - number of digits after . (optional) # P - [dfs] int/float/string # PYTHON RULE: if N is absent, default value is 6 From a05579f91aa22bdf696110b644d6573ebca93247 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:21:08 -0400 Subject: [PATCH 36/43] spelling: should Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 04383d8..bb88e46 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4287,7 +4287,7 @@ def print_data_tutorial(): HITRAN_units: (optional parameter) - Logical flag for units, in which the absorption coefficient shoould be + Logical flag for units, in which the absorption coefficient should be calculated. Currently, the choices are: cm^2/molec (if True) and cm-1 (if False). NOTE: to calculate other spectral functions like transmitance, From 24813ab1202ce0edd0c51ae6ce7160b346f1f5cc Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:21:17 -0400 Subject: [PATCH 37/43] spelling: simultaneously Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index bb88e46..4625ff5 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4085,7 +4085,7 @@ def print_data_tutorial(): As it was mentioned in the preface to this tutorial, the partition sums are taken from the TIPS-2011 (the link is given above). Partition sums are taken for those isotopologues, which are present in HITRAN and in -TIPS-2011 simultaneousely. +TIPS-2011 simultaneously. N.B. Partition sums are omitted for the following isotopologues which are in HITRAN at the moment: From c483385f80c2b03d1067f07361e95315102b331c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:21:32 -0400 Subject: [PATCH 38/43] spelling: skippable Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- README.md | 2 +- hapi/hapi.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index dad4ce9..f69f611 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Current version: 1.2.2.1 9) FIXED A "LONELY HEADER" BUG IN CACHE2STORAGE (ver. 1.1.0.7.1) 10) ADDED SUPPORT FOR PHOSGENE AND CYANOGEN (ver. 1.1.0.7.2) 11) OPTIMIZED STORAGE2CACHE (by Nils-Holger Loeber) (ver. 1.1.0.7.3) - 12) ADDED SKIPABLE PARAMETERS IN HEADERS (ver. 1.1.0.7.4) + 12) ADDED SKIPPABLE PARAMETERS IN HEADERS (ver. 1.1.0.7.4) 13) ADDED SUPPORT FOR FORTRAN D-NOTATION (ver. 1.1.0.7.5) 14) ADDED SUPPORT FOR WEIRD-FORMATTED INTENSITY VALUES E.G. "2.700-164" (ver. 1.1.0.7.6) 15) ADDED TIPS-2017 (ver. 1.1.0.8) diff --git a/hapi/hapi.py b/hapi/hapi.py index 4625ff5..f4c6857 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -67,7 +67,7 @@ def open_(*args,**argv): 'FIXED A "LONELY HEADER" BUG IN CACHE2STORAGE (ver. 1.1.0.7.1)', 'ADDED SUPPORT FOR PHOSGENE AND CYANOGEN (ver. 1.1.0.7.2)', 'OPTIMIZED STORAGE2CACHE (by Nils-Holger Loeber) (ver. 1.1.0.7.3)', -'ADDED SKIPABLE PARAMETERS IN HEADERS (ver. 1.1.0.7.4)', +'ADDED SKIPPABLE PARAMETERS IN HEADERS (ver. 1.1.0.7.4)', 'ADDED SUPPORT FOR FORTRAN D-NOTATION (ver. 1.1.0.7.5)', 'ADDED SUPPORT FOR WEIRD-FORMATTED INTENSITY VALUES E.G. "2.700-164" (ver. 1.1.0.7.6)', 'ADDED TIPS-2017 (ver. 1.1.0.8)', From 6210f00603ab3d06b3b69240e09e10264f65461a Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:22:06 -0400 Subject: [PATCH 39/43] spelling: suppose Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index f4c6857..0de9c61 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -3863,7 +3863,7 @@ def print_python_tutorial(): Count within group: 'COUNT' : ('COUNT','local_iso_id') --------------------------------------------------------------------------------- -Let's create a query with more complex condition. Suppese that we are +Let's create a query with more complex condition. Suppose that we are interested in all lines between 3500 and 4000 with 1e-19 intensity cutoff. The query will look like this: From 41e4f88a79d242eaa75fd628d0f6e40cfba1a597 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:22:27 -0400 Subject: [PATCH 40/43] spelling: temperature Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 0de9c61..9510545 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4117,7 +4117,7 @@ def print_data_tutorial(): HITRAN molecule-isotopologue notation, T - definition of temperature range. -Usecase 1: temperatuer is defined by a list: +Usecase 1: temperature is defined by a list: >>> Q = partitionSum(1,1,[70,80,90]) Usecase 2: temperature is defined by bounds and the step: From b391d6a2ded79f78a9e3d7fa3303101e78e3f65c Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:14:39 -0400 Subject: [PATCH 41/43] spelling: these Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 9510545..300416a 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4244,7 +4244,7 @@ def print_data_tutorial(): WavenumberRange: (optional parameter) List containing minimum and maximum value of wavenumber to consider - in cross-section calculation. All lines that are out of htese bounds + in cross-section calculation. All lines that are out of these bounds will be skipped. The format is as follows: WavenumberRange=[wn_low,wn_high] NOTE: If this parameter os skipped, then min and max are taken from the data from SourceTables. Deprecated name is OmegaRange. From 5178c15638aa7e7b2dd55346005a923dbcc4ca18 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:22:38 -0400 Subject: [PATCH 42/43] spelling: transmittance Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 300416a..8cfa76c 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4290,7 +4290,7 @@ def print_data_tutorial(): Logical flag for units, in which the absorption coefficient should be calculated. Currently, the choices are: cm^2/molec (if True) and cm-1 (if False). - NOTE: to calculate other spectral functions like transmitance, + NOTE: to calculate other spectral functions like transmittance, radiance and absorption spectra, user should set HITRAN_units to False. File: (optional parameter) From c5a0a006816f92e99765e195ca8ca6415987f091 Mon Sep 17 00:00:00 2001 From: Josh Soref <2119212+jsoref@users.noreply.github.com> Date: Sun, 6 Aug 2023 02:22:50 -0400 Subject: [PATCH 43/43] spelling: unique Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --- hapi/hapi.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hapi/hapi.py b/hapi/hapi.py index 8cfa76c..b67882c 100644 --- a/hapi/hapi.py +++ b/hapi/hapi.py @@ -4033,7 +4033,7 @@ def print_data_tutorial(): 6) Speed-dependent Rautian profile 7) HT profile (Hartmann-Tran) -Each profile has it's own uniwue set of parameters. Normally one should +Each profile has it's own unique set of parameters. Normally one should use profile parameters only in conjunction with their "native" profiles. So, let's start exploring the available profiles using getHelp: