Esempio n. 1
0
 def test_SUFAR4_with_options(self):
     input_dir = os.path.join(WD, 'data_files',
                              'Measurement_Import', 'SUFAR_asc_magic')
     infile = 'sufar4-asc_magic_example.txt'
     program_ran, outfile = ipmag.SUFAR4_magic(infile, meas_output='my_magic_measurements.txt', aniso_output="my_rmag_anisotropy.txt", specnum=2, locname="Here", instrument="INST", static_15_position_mode=True, input_dir_path=input_dir, sample_naming_con='5')
     self.assertTrue(program_ran)
     self.assertEqual(outfile, os.path.join('.', 'my_magic_measurements.txt'))
Esempio n. 2
0
 def test_SUFAR4_with_infile(self):
     input_dir = os.path.join(WD, 'data_files', 'Measurement_Import',
                              'SUFAR_asc_magic')
     infile = 'sufar4-asc_magic_example.txt'
     program_ran, outfile = ipmag.SUFAR4_magic(infile,
                                               input_dir_path=input_dir)
     self.assertTrue(program_ran)
     self.assertEqual(outfile, os.path.join('.', 'magic_measurements.txt'))
Esempio n. 3
0
 def test_SUFAR4_fail_option4(self):
     input_dir = os.path.join(WD, 'data_files',
                              'Measurement_Import', 'SUFAR_asc_magic')
     infile = 'sufar4-asc_magic_example.txt'
     program_ran, error_message = ipmag.SUFAR4_magic(infile,
                                                     input_dir_path=input_dir,
                                                     sample_naming_con='4')
     self.assertFalse(program_ran)
     self.assertEqual(error_message, "option [4] must be in form 4-Z where Z is an integer")
Esempio n. 4
0
 def test_SUFAR4_with_invalid_file(self):
     input_dir = os.path.join(WD, 'data_files', 'Measurement_Import',
                              'SUFAR_asc_magic')
     infile = 'fake_sufar4-asc_magic_example.txt'
     program_ran, error_message = ipmag.SUFAR4_magic(
         infile, input_dir_path=input_dir)
     self.assertFalse(program_ran)
     self.assertEqual(
         error_message,
         'Error opening file: {}'.format(os.path.join(input_dir, infile)))
Esempio n. 5
0
 def test_SUFAR4_with_infile(self):
     input_dir = os.path.join(WD, 'data_files', 'Measurement_Import',
                              'SUFAR_asc_magic')
     infile = 'sufar4-asc_magic_example.txt'
     program_ran, outfile = ipmag.SUFAR4_magic(infile,
                                               input_dir_path=input_dir,
                                               data_model_num=2)
     self.assertTrue(program_ran)
     self.assertEqual(outfile, os.path.join('.', 'magic_measurements.txt'))
     with open(outfile, 'r') as ofile:
         lines = ofile.readlines()
         self.assertEqual(292, len(lines))
Esempio n. 6
0
 def test_SUFAR4_succeed_option4(self):
     input_dir = os.path.join(WD, 'data_files', 'Measurement_Import',
                              'SUFAR_asc_magic')
     print('WD', WD)
     print('input_dir', input_dir)
     infile = 'sufar4-asc_magic_example.txt'
     ofile = 'my_magic_measurements.txt'
     program_ran, outfile = ipmag.SUFAR4_magic(infile,
                                               meas_output=ofile,
                                               input_dir_path=input_dir,
                                               sample_naming_con='4-2')
     self.assertTrue(program_ran)
     self.assertEqual(outfile, os.path.join('.', ofile))
Esempio n. 7
0
 def test_SUFAR4_succeed_data_model3(self):
     input_dir = os.path.join(WD, 'data_files', 'Measurement_Import',
                              'SUFAR_asc_magic')
     infile = 'sufar4-asc_magic_example.txt'
     program_ran, outfile = ipmag.SUFAR4_magic(infile,
                                               input_dir_path=input_dir)
     self.assertTrue(program_ran)
     self.assertEqual(outfile, os.path.join('.', 'measurements.txt'))
     with open(outfile, 'r') as ofile:
         lines = ofile.readlines()
         self.assertEqual(292, len(lines))
         self.assertEqual('measurements', lines[0].split('\t')[1].strip())
     con = nb.Contribution(WD)
     self.assertEqual(
         sorted(con.tables),
         sorted(['measurements', 'specimens', 'samples', 'sites']))
Esempio n. 8
0
 def test_SUFAR4_with_no_files(self):
     with self.assertRaises(TypeError):
         ipmag.SUFAR4_magic()
Esempio n. 9
0
def main():
    """
    NAME
        sufar4-asc_magic.py

    DESCRIPTION
        converts ascii files generated by SUFAR ver.4.0 to MagIC formated
        files for use with PmagPy plotting software

    SYNTAX
        sufar4-asc_magic.py -h [command line options]

    OPTIONS
        -h: prints the help message and quits
        -f FILE: specify .asc input file name
        -fsi SINFILE: specify er_specimens input file
        -F MFILE: specify magic_measurements output file
        -Fa AFILE: specify rmag_anisotropy output file
        -Fr RFILE: specify rmag_results output file
        -Fsi SFILE: specify er_specimens output file with location, sample, site, etc. information
        -usr USER: specify who made the measurements
        -loc LOC: specify location name for study 
        -ins INST: specify instrument used
        -spc SPEC: specify number of characters to specify specimen from sample
        -ncn NCON:  specify naming convention: default is #2 below
        -k15 : specify static 15 position mode - default is spinning
        -new : replace all existing magic files

    DEFAULTS
        AFILE: rmag_anisotropy.txt
        RFILE: rmag_results.txt
        SFILE: default is to create new er_specimen.txt file
        USER: ""
        LOC: "unknown"
        INST: ""
        SPEC: 0  sample name is same as site (if SPEC is 1, sample is all but last character)
        appends to  'er_specimens.txt, er_samples.txt, er_sites.txt' files
       Sample naming convention:
            [1] XXXXY: where XXXX is an arbitrary length site designation and Y
                is the single character sample designation.  e.g., TG001a is the
                first sample from site TG001.    [default]
            [2] XXXX-YY: YY sample from site XXXX (XXX, YY of arbitary length)
            [3] XXXX.YY: YY sample from site XXXX (XXX, YY of arbitary length)
            [4-Z] XXXX[YYY]:  YYY is sample designation with Z characters from site XXX
            [5] site name same as sample
            [6] site is entered under a separate column -- NOT CURRENTLY SUPPORTED
            [7-Z] [XXXX]YYY:  XXXX is site designation with Z characters with sample name XXXXYYYY
            NB: all others you will have to customize your self
                 or e-mail [email protected] for help.
            [8] This is a synthetic
            [9] ODP naming convention

    """

    args = sys.argv
    if '-h' in args:
        print main.__doc__
        sys.exit()

    dataframe = extractor.command_line_dataframe(
        [['WD', False, '.'], ['ID', False, '.'], ['usr', False, ''],
         ['ncn', False, '1'], ['k15', False, False], ['ins', False, ''],
         ['f', True, ''], ['F', False, 'magic_measurements.txt'],
         ['Fa', False, 'rmag_anisotropy.txt'],
         ['Fsi', False, 'er_specimens.txt'], ['loc', False, 'unknown'],
         ['spc', False, 0], ['fsi', False, None]])
    #'WD', 'ID', 'usr', 'ncn', 'k15', 'ins', 'f', 'F', 'Fa', 'Fsi', 'loc', 'spc',
    checked_args = extractor.extract_and_check_args(args, dataframe)
    output_dir_path, input_dir_path, user, sample_naming_con, static_15_position_mode, instrument, ascfile, meas_output, aniso_output, spec_outfile, locname, specnum, spec_infile = extractor.get_vars(
        [
            'WD', 'ID', 'usr', 'ncn', 'k15', 'ins', 'f', 'F', 'Fa', 'Fsi',
            'loc', 'spc', 'fsi'
        ], checked_args)

    ipmag.SUFAR4_magic(ascfile,
                       meas_output,
                       aniso_output,
                       spec_infile,
                       spec_outfile,
                       specnum=specnum,
                       sample_naming_con=sample_naming_con,
                       user=user,
                       locname=locname,
                       instrument=instrument,
                       static_15_position_mode=static_15_position_mode,
                       output_dir_path=output_dir_path,
                       input_dir_path=input_dir_path)