Exemple #1
0
 def _get_data_set_urls(self, list_of_timeseries, is_preview=False):
     """
     Returns a list of lists. Each list contains the urls to the files
     containing the data for a certain array wrapper.
     """
     base_urls = []
     time_set_urls = []
     total_pages_set = []
     if is_preview is False:
         page_size = self.page_size
         for timeseries in list_of_timeseries:
             overall_shape = timeseries.read_data_shape()
             total_pages = overall_shape[0] // self.page_size
             if overall_shape[0] % self.page_size > 0:
                 total_pages += 1
             timeline_urls = []
             ts_gid = timeseries.gid.load().hex
             for i in range(total_pages):
                 current_max_size = min((i + 1) * self.page_size, overall_shape[0]) - i * self.page_size
                 params = "current_page=" + str(i) + ";page_size=" + str(self.page_size) + \
                          ";max_size=" + str(current_max_size)
                 timeline_urls.append(URLGenerator.build_h5_url(ts_gid, 'read_time_page', parameter=params))
             base_urls.append(URLGenerator.build_base_h5_url(ts_gid))
             time_set_urls.append(timeline_urls)
             total_pages_set.append(total_pages)
     else:
         ts_gid = list_of_timeseries[0].gid.load().hex
         base_urls.append(URLGenerator.build_base_h5_url(ts_gid))
         total_pages_set.append(1)
         page_size = self.preview_page_size
         params = "current_page=0;page_size=" + str(self.preview_page_size) + ";max_size=" + \
                  str(min(self.preview_page_size, list_of_timeseries[0].read_data_shape()[0]))
         time_set_urls.append([URLGenerator.build_h5_url(ts_gid, 'read_time_page', parameter=params)])
     return base_urls, page_size, total_pages_set, time_set_urls
Exemple #2
0
    def _launch(self, view_model, figsize, preview=False):
        time_series_index = self.load_entity_by_gid(view_model.time_series)
        h5_file = h5.h5_file_for_index(time_series_index)
        assert isinstance(h5_file, TimeSeriesH5)
        shape = list(h5_file.read_data_shape())
        ts = h5_file.storage_manager.get_data('time')
        state_variables = time_series_index.get_labels_for_dimension(1)
        labels = self.get_space_labels(h5_file)

        # Assume that the first dimension is the time since that is the case so far
        if preview and shape[0] > self.MAX_PREVIEW_DATA_LENGTH:
            shape[0] = self.MAX_PREVIEW_DATA_LENGTH

        # when surface-result, the labels will be empty, so fill some of them,
        # but not all, otherwise the viewer will take ages to load.
        if shape[2] > 0 and len(labels) == 0:
            for n in range(min(self.MAX_PREVIEW_DATA_LENGTH, shape[2])):
                labels.append("Node-" + str(n))

        pars = {'baseURL': URLGenerator.build_base_h5_url(time_series_index.gid),
                'labels': labels, 'labels_json': json.dumps(labels),
                'ts_title': time_series_index.title, 'preview': preview, 'figsize': figsize,
                'shape': repr(shape), 't0': ts[0],
                'dt': ts[1] - ts[0] if len(ts) > 1 else 1,
                'labelsStateVar': state_variables, 'labelsModes': list(range(shape[3]))
                }
        pars.update(self.build_params_for_subselectable_ts(h5_file))
        h5_file.close()

        return self.build_display_result("time_series/view", pars, pages=dict(controlPage="time_series/control"))