def __init__(self, **kwargs): Notice.title() Notice.hr_header("Initializing") params = kwargs.get('params') layers = kwargs.get('layers') potfields = kwargs.get('potfields') data = kwargs.get('data') velocity = kwargs.get('velocity') super(TransectContainer, self).__init__(params) print "Starting {}, id {}, file {}".format(self.title, self.id, self.config_file) # Set up 'data' — the transect line — from shapefile. self.data = None with fiona.open(data['transect_file']) as c: for line in c: if line['properties']['id'] == self.id: self.data = shape(line['geometry']) if not self.data: Notice.fail("No transect with ID "+self.id) # self.data.length holds the length of the transect in metres # But often we want ints, and sometimes the number of samples. # This will give us a nice linspace. Put them in params. params['length'] = self.length = int(np.floor(self.data.length)) params['nsamples'] = self.nsamples = self.length + 1 params['linspace'] = self.linspace = np.linspace(0, self.length, self.nsamples) self.time = time.strftime("%Y/%m/%d %H:%M", time.localtime()) self.tops_file = data['tops_file'] self.log = LogContainer(data['well_dir'], params) self.velocity = self.__velocity_factory(velocity, params) self.seismic = SeismicContainer(data['seismic_dir'], self.velocity, params) self.horizons = HorizonContainer(data['horizon_dir'], self.velocity, params) self.elevation = ElevationContainer(data['elevation_file'], params) self.bedrock = BedrockContainer(data['bedrock_dir'], params) self.potfield = PotfieldContainer(potfields, params) self.locmap = LocmapContainer(layers, params)
def __init__(self, **kwargs): Notice.title() Notice.hr_header("Initializing") params = kwargs.get('params') layers = kwargs.get('layers') potfields = kwargs.get('potfields') data = kwargs.get('data') velocity = kwargs.get('velocity') super(TransectContainer, self).__init__(params) print "Starting {}, id {}, file {}".format(self.title, self.id, self.config_file) # Set up 'data' — the transect line — from shapefile. self.data = None with fiona.open(data['transect_file']) as c: for line in c: if line['properties']['id'] == self.id: self.data = shape(line['geometry']) if not self.data: Notice.fail("No transect with ID " + self.id) # self.data.length holds the length of the transect in metres # But often we want ints, and sometimes the number of samples. # This will give us a nice linspace. Put them in params. params['length'] = self.length = int(np.floor(self.data.length)) params['nsamples'] = self.nsamples = self.length + 1 params['linspace'] = self.linspace = np.linspace( 0, self.length, self.nsamples) self.time = time.strftime("%Y/%m/%d %H:%M", time.localtime()) self.tops_file = data['tops_file'] self.log = LogContainer(data['well_dir'], params) self.velocity = self.__velocity_factory(velocity, params) self.seismic = SeismicContainer(data['seismic_dir'], self.velocity, params) self.horizons = HorizonContainer(data['horizon_dir'], self.velocity, params) self.elevation = ElevationContainer(data['elevation_file'], params) self.bedrock = BedrockContainer(data['bedrock_dir'], params) self.potfield = PotfieldContainer(potfields, params) self.locmap = LocmapContainer(layers, params)
help= 'The number of dimensions of the input seismic, usually 2 or 3. Overrides config file.' ) parser.add_argument('-d', '--demo', action='store_true', help='Run with the demo file, data/31_81_PR.png.') parser.add_argument('-v', '--version', action='store_true', help='Get the version number.') args = parser.parse_args() if args.version: Notice.info(__version__) sys.exit() Notice.title() target = args.filename with args.config as f: cfg = yaml.safe_load(f) Notice.hr_header("Initializing") Notice.info("config {}".format(args.config.name)) # Fill in 'missing' fields in cfg. cfg = {k: cfg.get(k, v) for k, v in utils.DEFAULTS.items()} cfg['outfile'] = args.out cfg['ndim'] = args.ndim or cfg['ndim'] if args.demo: target = './data/31_81_PR.sgy' # Go do it!
utils.stain_paper(stupid_image) utils.add_rings(stupid_image, cfg['coffee_rings']) if cfg['scribble']: utils.add_scribble(stupid_image) stupid_image.save(stem + ".stupid.png") s = "Saved stupid file stupid.png in {:.1f} s" t4 = time.time() Notice.ok(s.format(t4-t3)) return if __name__ == "__main__": Notice.title() parser = argparse.ArgumentParser(description='Plot a SEGY file.') parser.add_argument("-c", "--config", metavar="config file", type=argparse.FileType('r'), default="config.yaml", nargs="?", help="The name of a YAML config file.") parser.add_argument('filename', metavar='SEGY file', type=str, nargs='?', help='The path to a SEGY file.') parser.add_argument('-o', '--out', metavar='Output file', type=str,