当前位置: 首页>>代码示例>>Python>>正文


Python Timeseries.read方法代码示例

本文整理汇总了Python中pthelma.timeseries.Timeseries.read方法的典型用法代码示例。如果您正苦于以下问题:Python Timeseries.read方法的具体用法?Python Timeseries.read怎么用?Python Timeseries.read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在pthelma.timeseries.Timeseries的用法示例。


在下文中一共展示了Timeseries.read方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: setUp

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def setUp(self):
        parms = settings.BITIA_TEST_ENHYDRIS_INSTALLATION
        self.cookies = enhydris_api.login(parms['base_url'],
                                          parms['user'],
                                          parms['password'])

        # Create two time series
        j = {
            'gentity': parms['station_id'],
            'variable': parms['variable_id'],
            'unit_of_measurement': parms['unit_of_measurement_id'],
            'time_zone': parms['time_zone_id'],
        }
        self.ts1_id = enhydris_api.post_model(
            parms['base_url'], self.cookies, 'Timeseries', j)
        self.ts2_id = enhydris_api.post_model(
            parms['base_url'], self.cookies, 'Timeseries', j)
        assert self.ts1_id != self.ts2_id

        # Add some data (all but the last record) to the database
        ts = Timeseries(self.ts1_id)
        ts.read(StringIO(self.timeseries1_top))
        enhydris_api.post_tsdata(parms['base_url'], self.cookies, ts)
        ts = Timeseries(self.ts2_id)
        ts.read(StringIO(self.timeseries2_top))
        enhydris_api.post_tsdata(parms['base_url'], self.cookies, ts)

        # Temporary directory for cache files
        self.tempdir = tempfile.mkdtemp()
开发者ID:openmeteo,项目名称:bitia,代码行数:31,代码来源:test_utils.py

示例2: setUp

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def setUp(self):
        self.parms = json.loads(os.getenv('PTHELMA_TEST_ENHYDRIS_API'))
        self.cookies = enhydris_api.login(self.parms['base_url'],
                                          self.parms['user'],
                                          self.parms['password'])

        # Create two time series
        j = {
            'gentity': self.parms['station_id'],
            'variable': self.parms['variable_id'],
            'unit_of_measurement': self.parms['unit_of_measurement_id'],
            'time_zone': self.parms['time_zone_id'],
            'time_step': 3,
            'timestamp_offset_minutes': 0,
            'timestamp_offset_months': 0,
            'remarks': 'Très importante',
        }
        self.ts1_id = enhydris_api.post_model(
            self.parms['base_url'], self.cookies, 'Timeseries', j)
        self.ts2_id = enhydris_api.post_model(
            self.parms['base_url'], self.cookies, 'Timeseries', j)
        assert self.ts1_id != self.ts2_id

        # Add some data (all but the last record) to the database
        ts = Timeseries(self.ts1_id)
        ts.read(StringIO(self.timeseries1_top))
        enhydris_api.post_tsdata(self.parms['base_url'], self.cookies, ts)
        ts = Timeseries(self.ts2_id)
        ts.read(StringIO(self.timeseries2_top))
        enhydris_api.post_tsdata(self.parms['base_url'], self.cookies, ts)

        # Temporary directory for cache files
        self.tempdir = tempfile.mkdtemp()
        self.savedcwd = os.getcwd()
        os.chdir(self.tempdir)
开发者ID:aptiko,项目名称:pthelma,代码行数:37,代码来源:test_enhydris_cache.py

示例3: test_get_ts_end_date

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def test_get_ts_end_date(self):
        v = json.loads(os.getenv('PTHELMA_TEST_ENHYDRIS_API'))
        cookies = enhydris_api.login(v['base_url'], v['user'], v['password'])

        # Create a time series in the database
        j = {
            'gentity': v['station_id'],
            'variable': v['variable_id'],
            'unit_of_measurement': v['unit_of_measurement_id'],
            'time_zone': v['time_zone_id'],
        }
        ts_id = enhydris_api.post_model(v['base_url'], cookies, 'Timeseries',
                                        j)

        # Get its last date while it has no data
        date = enhydris_api.get_ts_end_date(v['base_url'], cookies, ts_id)
        self.assertEqual(date.isoformat(), '0001-01-01T00:00:00')

        # Now upload some data
        ts = Timeseries(ts_id)
        ts.read(StringIO(self.test_timeseries))
        enhydris_api.post_tsdata(v['base_url'], cookies, ts)

        # Get its last date
        date = enhydris_api.get_ts_end_date(v['base_url'], cookies, ts_id)
        self.assertEqual(date.isoformat(), '2014-01-05T08:00:00')

        # Get the last date of a nonexistent time series
        self.assertRaises(requests.HTTPError, enhydris_api.get_ts_end_date,
                          v['base_url'], cookies, ts_id + 1)
开发者ID:aptiko,项目名称:pthelma,代码行数:32,代码来源:test_enhydris_api.py

示例4: check

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
 def check(self, datadir):
     for parm in self.parameters:
         if not parm['ts_id']:
             continue
         actual_ts = Timeseries(parm['ts_id'])
         enhydris_api.read_tsdata(self.base_url, self.cookies, actual_ts)
         reference_ts = Timeseries()
         with open(os.path.join(
                 datadir, 'generated', parm['expname'] + '.txt')) as f:
             reference_ts.read(f)
             precision = self.guess_precision(f)
         self.assertTimeseriesEqual(actual_ts, reference_ts, precision,
                                    parm['expname'] + '.txt')
开发者ID:aptiko,项目名称:pthelma,代码行数:15,代码来源:test_meteologger.py

示例5: put

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
 def put(self, request, pk, format=None):
     try:
         ts = Timeseries(id=int(pk))
         self.check_object_permissions(request, ts)
         result_if_error = status.HTTP_400_BAD_REQUEST
         ts.read(StringIO(request.DATA['timeseries_records']))
         result_if_error = status.HTTP_409_CONFLICT
         ts.append_to_db(connection, commit=False)
         return HttpResponse(str(len(ts)), content_type="text/plain")
     except ValueError as e:
         return HttpResponse(status=result_if_error,
                             content=str(e),
                             content_type="text/plain")
开发者ID:xpanta,项目名称:enhydris,代码行数:15,代码来源:views.py

示例6: test_update_timeseries_cache

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def test_update_timeseries_cache(self):
        parms = settings.BITIA_TEST_ENHYDRIS_INSTALLATION
        bitia_timeseries_groups = {
            'one': [{'base_url': parms['base_url'],
                     'id': self.ts1_id,
                     'user': parms['user'],
                     'password': parms['password'],
                     },
                    {'base_url': parms['base_url'],
                     'id': self.ts2_id,
                     'user': parms['user'],
                     'password': parms['password'],
                     },
                    ],
        }
        with self.settings(BITIA_TIMESERIES_CACHE_DIR=self.tempdir,
                           BITIA_TIMESERIES_GROUPS=bitia_timeseries_groups):
            # Cache the two timeseries
            update_timeseries_cache()

            # Check that the cached stuff is what it should be
            file1, file2 = [os.path.join(self.tempdir, '{}.hts'.format(x))
                            for x in (self.ts1_id, self.ts2_id)]
            with open(file1) as f:
                self.assertEqual(f.read().replace('\r', ''),
                                 self.timeseries1_top)
            with open(file2) as f:
                self.assertEqual(f.read().replace('\r', ''),
                                 self.timeseries2_top)

            # Append a record to the database for each timeseries
            ts = Timeseries(self.ts1_id)
            ts.read(StringIO(self.timeseries1_bottom))
            enhydris_api.post_tsdata(parms['base_url'], self.cookies, ts)
            ts = Timeseries(self.ts2_id)
            ts.read(StringIO(self.timeseries2_bottom))
            enhydris_api.post_tsdata(parms['base_url'], self.cookies, ts)

            # Update the cache
            update_timeseries_cache()

            # Check that the cached stuff is what it should be
            file1, file2 = [os.path.join(self.tempdir, '{}.hts'.format(x))
                            for x in (self.ts1_id, self.ts2_id)]
            with open(file1) as f:
                self.assertEqual(f.read().replace('\r', ''),
                                 self.test_timeseries1)
            with open(file2) as f:
                self.assertEqual(f.read().replace('\r', ''),
                                 self.test_timeseries2)
开发者ID:openmeteo,项目名称:bitia,代码行数:52,代码来源:test_utils.py

示例7: test_post_tsdata

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def test_post_tsdata(self):
        v = json.loads(os.getenv('PTHELMA_TEST_ENHYDRIS_API'))
        cookies = enhydris_api.login(v['base_url'], v['user'], v['password'])

        # Create a time series in the database
        j = {
            'gentity': v['station_id'],
            'variable': v['variable_id'],
            'unit_of_measurement': v['unit_of_measurement_id'],
            'time_zone': v['time_zone_id'],
        }
        ts_id = enhydris_api.post_model(v['base_url'], cookies, 'Timeseries',
                                        j)

        # Now upload some data
        ts = Timeseries(ts_id)
        ts.read(StringIO(self.test_timeseries_top))
        enhydris_api.post_tsdata(v['base_url'], cookies, ts)

        # Read and check the time series
        url = enhydris_api.urljoin(v['base_url'],
                                   'timeseries/d/{}/download/'.format(ts.id))
        r = requests.get(url, cookies=cookies)
        r.raise_for_status()
        self.assertEqual(get_after_blank_line(r.text),
                         self.test_timeseries_top)

        # Upload more data
        ts = Timeseries(ts_id)
        ts.read(StringIO(self.test_timeseries_bottom))
        enhydris_api.post_tsdata(v['base_url'], cookies, ts)

        # Read and check the time series
        url = enhydris_api.urljoin(v['base_url'],
                                   'timeseries/d/{}/download/'.format(ts.id))
        r = requests.get(url, cookies=cookies)
        r.raise_for_status()
        self.assertEqual(get_after_blank_line(r.text),
                         self.test_timeseries)
开发者ID:aptiko,项目名称:pthelma,代码行数:41,代码来源:test_enhydris_api.py

示例8: TestDst

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
class TestDst(TestCase):
    datafiledict = {'date_format': '%Y-%m-%dT%H:%M',
                    'timezone': 'Europe/Athens'}

    def setUp(self):
        get_server_from_env(self.__dict__)
        self.ref_ts = Timeseries(0)
        if not self.base_url:
            return
        self.cookies = enhydris_api.login(self.base_url, self.user,
                                          self.password)
        self.timeseries_id = create_timeseries(self.cookies, self.__dict__)
        self.ts = Timeseries(self.timeseries_id)

    def tearDown(self):
        if not self.base_url:
            return
        enhydris_api.delete_model(self.base_url, self.cookies,
                                  'Timeseries', self.timeseries_id)

    def run_test(self):
        if not self.base_url:
            return
        d = {'filename': full_testdata_filename(self.filename),
             'datafile_fields': str(self.timeseries_id),
             'datafile_format': 'irrelevant'}
        d.update(self.datafiledict)
        df = Datafile_simple(self.base_url, self.cookies, d)
        df.update_database()
        enhydris_api.read_tsdata(self.base_url, self.cookies, self.ts)
        self.assertEqual(len(self.ts), len(self.ref_ts))
        (items, ritems) = [x.items() for x in (self.ts, self.ref_ts)]
        for item, ritem in zip(items, ritems):
            self.assertEqual(item[0], ritem[0])
            self.assertAlmostEqual(item[1], ritem[1], 4)
            self.assertEqual(item[1].flags, ritem[1].flags)

    @skipUnless(os.getenv('PTHELMA_TEST_ENHYDRIS_API'), "see above")
    def test_to_dst(self):
        self.filename = 'data_at_change_to_dst.txt'
        with open(full_testdata_filename('timeseries_at_change_to_dst.txt')
                  ) as f:
            self.ref_ts.read(f)
        self.run_test()

    @skipUnless(os.getenv('PTHELMA_TEST_ENHYDRIS_API'), "see above")
    def test_from_dst(self):
        self.filename = 'data_at_change_from_dst.txt'
        with open(full_testdata_filename('timeseries_at_change_from_dst.txt')
                  ) as f:
            self.ref_ts.read(f)
        self.run_test()

    def test_fix_dst(self):
        d = {'filename': 'irrelevant',
             'datafile_fields': '0',
             'datafile_format': 'irrelevant'}
        d.update(self.datafiledict)
        df = Datafile_simple('http://irrelevant/', {}, d)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59)),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00)),
                         datetime(2012, 10, 28, 3, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00)),
                         datetime(2012, 10, 28, 4, 00))

        # Now we pretend that the switch from dst hasn't occurred yet.
        # This is the only case when loggertodb should assume that
        # ambiguous times refer to before the switch.
        athens = pytz.timezone('Europe/Athens')
        now = athens.localize(datetime(2012, 10, 28, 3, 59), is_dst=True)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59), now=now),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00), now=now),
                         datetime(2012, 10, 28, 2, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00), now=now),
                         datetime(2012, 10, 28, 4, 00))

        # Once more; the switch from DST has just occurred; now it
        # should be assumed that ambiguous times refer to after the
        # switch.
        now = athens.localize(datetime(2012, 10, 28, 3, 0), is_dst=False)
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 2, 59), now=now),
                         datetime(2012, 10, 28, 1, 59))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 3, 00), now=now),
                         datetime(2012, 10, 28, 3, 00))
        self.assertEqual(df._fix_dst(datetime(2012, 10, 28, 4, 00), now=now),
                         datetime(2012, 10, 28, 4, 00))
开发者ID:aptiko,项目名称:pthelma,代码行数:90,代码来源:test_meteologger.py

示例9: test_update

# 需要导入模块: from pthelma.timeseries import Timeseries [as 别名]
# 或者: from pthelma.timeseries.Timeseries import read [as 别名]
    def test_update(self):
        self.parms = json.loads(os.getenv('PTHELMA_TEST_ENHYDRIS_API'))
        timeseries_group = [{'base_url': self.parms['base_url'],
                             'id': self.ts1_id,
                             'user': self.parms['user'],
                             'password': self.parms['password'],
                             'file': 'file1',
                             },
                            {'base_url': self.parms['base_url'],
                             'id': self.ts2_id,
                             'user': self.parms['user'],
                             'password': self.parms['password'],
                             'file': 'file2',
                             },
                            ]
        # Cache the two timeseries
        cache = TimeseriesCache(timeseries_group)
        cache.update()

        # Check that the cached stuff is what it should be
        with open('file1') as f:
            ts1_before = Timeseries()
            ts1_before.read_file(f)
            self.assertEqual(ts1_before.time_step.length_minutes, 1440)
            self.assertEqual(ts1_before.time_step.length_months, 0)
            c = StringIO()
            ts1_before.write(c)
            self.assertEqual(c.getvalue().replace('\r', ''),
                             self.timeseries1_top)
        with open('file2') as f:
            ts2_before = Timeseries()
            ts2_before.read_file(f)
            self.assertEqual(ts2_before.time_step.length_minutes, 1440)
            self.assertEqual(ts2_before.time_step.length_months, 0)
            c = StringIO()
            ts2_before.write(c)
            self.assertEqual(c.getvalue().replace('\r', ''),
                             self.timeseries2_top)

        # Append a record to the database for each timeseries
        ts = Timeseries(self.ts1_id)
        ts.read(StringIO(self.timeseries1_bottom))
        enhydris_api.post_tsdata(self.parms['base_url'], self.cookies, ts)
        ts = Timeseries(self.ts2_id)
        ts.read(StringIO(self.timeseries2_bottom))
        enhydris_api.post_tsdata(self.parms['base_url'], self.cookies, ts)

        # Update the cache
        cache.update()

        # Check that the cached stuff is what it should be
        with open('file1') as f:
            ts1_after = Timeseries()
            ts1_after.read_file(f)
            self.assertEqual(ts1_after.time_step.length_minutes, 1440)
            self.assertEqual(ts1_after.time_step.length_months, 0)
            c = StringIO()
            ts1_after.write(c)
            self.assertEqual(c.getvalue().replace('\r', ''),
                             self.test_timeseries1)
        with open('file2') as f:
            ts2_after = Timeseries()
            ts2_after.read_file(f)
            self.assertEqual(ts2_after.time_step.length_minutes, 1440)
            self.assertEqual(ts2_after.time_step.length_months, 0)
            c = StringIO()
            ts2_after.write(c)
            self.assertEqual(c.getvalue().replace('\r', ''),
                             self.test_timeseries2)

        # Check that the time series comments are the same before and after
        self.assertEqual(ts1_before.comment, ts1_after.comment)
        self.assertEqual(ts2_before.comment, ts2_after.comment)
开发者ID:aptiko,项目名称:pthelma,代码行数:75,代码来源:test_enhydris_cache.py


注:本文中的pthelma.timeseries.Timeseries.read方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。