def __init__(self,grid,data,start,end,output,t_ref,**kw):
        self.grid=grid
        self.data=data
        self.start=start
        self.end=end
        self.output=output
        self.t_ref=t_ref

        # optional arguments
        utils.set_keywords(self,kw)

        # Do the deed
        # DWAQ segment files are written as binary, with each time step as:
        # <4-byte little-endian time in seconds since reference time>
        # <4-byte little-endian floating> * N_segments
        #    data is in segment order, all surface segments, then all segments on the
        #    next layer down, and so on.
        with open(output,'wb') as fp:
            for t in self.time_steps():
                log.info("Processing %s"%( utils.to_datetime(t).strftime('%Y-%m-%d %H:%M')))
                t_sec=(t-self.t_ref)/np.timedelta64(1,'s')
                t_sec=np.array([t_sec],'<i4')
                data2d=self.field_2d(t)
                assert np.all(np.isfinite(data2d)),"Error -- getting some non-finite values"
                data3d=self.extrude_to_3d(data2d)
                fp.write( t_sec.tobytes() )
                fp.write(data3d.astype('<f4'))
                self.post_frame(t,data2d,data3d)
Example #2
0
    def __init__(self, **kw):
        utils.set_keywords(self, kw)
        super(SwampyBump1D, self).__init__(**kw)

        # record timeseries
        self.history = np.zeros(0,
                                dtype=[('t', np.float64),
                                       ('eta_var', np.float64),
                                       ('Q_max_error', np.float64),
                                       ('phi_range', np.float64)])
Example #3
0
    def __init__(self, **kw):
        utils.set_keywords(self, kw)
        if self.base_path is None:
            self.base_path = self.calc_base_path()

            if self.start_offset != np.timedelta64(75, 'D'):
                # yuck.  dates.
                yyyymmdd = utils.to_datetime(
                    utils.to_dt64(self.hydro.t_dn[0]) +
                    self.start_offset).strftime('%Y%m%d')
                self.base_path += "_%s" % (yyyymmdd)

            log.info("base_path defaults to %s" % self.base_path)
Example #4
0
    def __init__(self,**kw):
        utils.set_keywords(self,kw)

        self.A=( (self.d0+self.eta0)**2 - self.d0**2 )/( (self.d0+self.eta0)**2 + self.d0**2)
        self.L=np.sqrt( (8*9.8*self.d0) / ( self.omega**2-self.f**2) )
        self.period=2*np.pi/self.omega

        super().__init__(**kw)

        # set a scale for eta, used to make eta errors relative
        # this is approximately the high water elevation
        self.eta_scale=self.eta0
        self.max_rel_error=0.0

        self.get_fu=self.get_fu_orig
Example #5
0
    def __init__(self, fnA, fnB, label="n/a", **kw):
        self.fnA = fnA
        self.fnB = fnB
        self.label = label

        utils.set_keywords(self, kw)

        self.parse_data()
        self.trim_to_common()
        self.get_pings()
        self.tune_shifts()
        self.select_good_transits()
        self.figure_matches()
        self.calc_travel_and_skew()
        self.figure_transit_and_skew()
    def __init__(self, **kw):
        utils.set_keywords(self, kw)
        self.omega = np.sqrt(2 * 9.8 * self.h0) / self.r0
        self.period = 2 * np.pi / self.omega

        self.U = self.eta * self.r0 * self.omega
        dx = self.L / float(self.nx)
        if 'dt' not in kw:
            dt = 0.5 * dx / self.U
            kw['dt'] = dt

        super(SubgridThacker1D, self).__init__(**kw)

        # set a scale for eta, used to make eta errors relative
        # this is approximately the high water elevation
        self.eta_scale = self.eta * self.h0 * (2 - self.eta)
        self.max_rel_error = 0.0

        print("Testing with no advection")
        self.get_fu = self.get_fu_no_adv
Example #7
0
 def __init__(self, **kw):
     utils.set_keywords(self, kw)
     super(TwoCell, self).__init__(**kw)
Example #8
0
 def __init__(self,**kw):
     utils.set_keywords(self,kw)
     self.all_detects=[]
Example #9
0
 def __init__(self, **kw):
     utils.set_keywords(self, kw)
Example #10
0
 def __init__(self, **kw):
     utils.set_keywords(self, kw)
     self.bcs = []
     # Default advection
     self.get_fu = self.get_fu_orig