[cig-commits] [commit] master: Not working yet, but progress (f5dd9f7)

cig_noreply at geodynamics.org cig_noreply at geodynamics.org
Wed Jan 28 22:37:52 PST 2015


Repository : https://github.com/geodynamics/vq

On branch  : master
Link       : https://github.com/geodynamics/vq/compare/4a71dae87966b80bfee7c194773543359a343617...941b3d7e55983967dea392d12aeac9ce3998ca30

>---------------------------------------------------------------

commit f5dd9f7e2c4bb7d87e4248874ca10118de2fe1a0
Author: Kasey Schultz <kwschultz at ucdavis.edu>
Date:   Thu Dec 11 17:51:50 2014 -0800

    Not working yet, but progress


>---------------------------------------------------------------

f5dd9f7e2c4bb7d87e4248874ca10118de2fe1a0
 quakelib/src/QuakeLibIO.cpp | 44 ++++++++++++++++++++++----------------------
 quakelib/src/QuakeLibIO.h   |  6 ++++++
 2 files changed, 28 insertions(+), 22 deletions(-)

diff --git a/quakelib/src/QuakeLibIO.cpp b/quakelib/src/QuakeLibIO.cpp
index e4a6031..0744fbe 100644
--- a/quakelib/src/QuakeLibIO.cpp
+++ b/quakelib/src/QuakeLibIO.cpp
@@ -2886,8 +2886,8 @@ void quakelib::ModelEventSet::read_events_hdf5(const hid_t &data_file) {
     size_t                      *field_offsets;
     size_t                      *field_sizes;
     herr_t                      res;
-    ModelSweeps                 file_sweeps;
 
+    _events.clear();
     descs.clear();
     ModelEvent::get_field_descs(descs);
     num_fields = descs.size();
@@ -2906,15 +2906,15 @@ void quakelib::ModelEventSet::read_events_hdf5(const hid_t &data_file) {
     // TODO: check that num_fields matches the descs
 
     event_data = new EventData[num_events];
-    res = H5TBread_records(data_file, ModelSection::hdf5_table_name().c_str(), 0, num_events, sizeof(EventData), field_offsets, field_sizes, event_data);
+    res = H5TBread_records(data_file, ModelEvent::hdf5_table_name().c_str(), 0, num_events, sizeof(EventData), field_offsets, field_sizes, event_data);
 
     if (res < 0) exit(-1);
 
     // Read section data into the World
-    for (i=0; i<num_sections; ++i) {
+    for (i=0; i<num_events; ++i) {
         ModelEvent  new_event;
         new_event.read_data(event_data[i]);
-        _data.insert(std::make_pair(new_event.getEventNumber(), new_event));
+        _events.push_back(new_event);
     }
 
     // Free memory for HDF5 related data
@@ -2925,10 +2925,12 @@ void quakelib::ModelEventSet::read_events_hdf5(const hid_t &data_file) {
 
 void quakelib::ModelEventSet::read_sweeps_hdf5(const hid_t &data_file) {
     std::vector<FieldDesc>                          descs;
-    std::map<UIndex, ModelElement>::const_iterator  fit;
-    hsize_t                     num_fields, num_elements;
+    ModelEventSet::const_iterator                   fit;
+    hsize_t                     num_fields, num_sweeps;
     unsigned int                i;
-    ElementData                 *element_data;
+    unsigned int                *start_sweep;
+    unsigned int                *end_sweep;
+    ModelSweeps                 *event_sweeps;
     size_t                      *field_offsets;
     size_t                      *field_sizes;
     herr_t                      res;
@@ -2944,28 +2946,26 @@ void quakelib::ModelEventSet::read_sweeps_hdf5(const hid_t &data_file) {
         field_sizes[i] = descs[i].size;
     }
 
-    res = H5TBget_table_info(data_file, ModelElement::hdf5_table_name().c_str(), &num_fields, &num_elements);
+    res = H5TBget_table_info(data_file, ModelSweeps::hdf5_table_name().c_str(), &num_fields, &num_sweeps);
 
     if (res < 0) exit(-1);
 
-    // TODO: check that num_fields matches the descs
-
-    element_data = new ElementData[num_elements];
-    res = H5TBread_records(data_file, ModelElement::hdf5_table_name().c_str(), 0, num_elements, sizeof(ElementData), field_offsets, field_sizes, element_data);
+    event_sweeps = new ModelSweeps[num_sweeps];
+    res = H5TBread_records(data_file, ModelSweeps::hdf5_table_name().c_str(), 0, num_sweeps, sizeof(ModelSweeps), field_offsets, field_sizes, event_sweeps);
     
     if (res < 0) exit(-1);
     
-    // Read element data into the World
-    for (i=0; i<num_elements; ++i) {
-        ModelElement  new_element;
-        new_element.read_data(element_data[i]);
-        _elements.insert(std::make_pair(new_element.id(), new_element));
-    }
+    // Read sweeps data into the ModelEventSet
+    for (fit=_events.begin(); fit!=_events.end(); ++fit) {
+        fit->getStartEndSweep(&start_sweep, &end_sweep);
+        ModelSweeps new_sweeps;
         
-    // Free memory for HDF5 related data
-    delete element_data;
-    delete field_offsets;
-    delete field_sizes;
+        for (i=*start_sweep; i<*end_sweep; i++) {
+            new_sweeps.read_data(event_sweeps[i]);
+        }
+        fit->setSweeps(new_sweeps);
+        
+    }
 }
 #endif
 
diff --git a/quakelib/src/QuakeLibIO.h b/quakelib/src/QuakeLibIO.h
index ecc8d31..feb35b3 100644
--- a/quakelib/src/QuakeLibIO.h
+++ b/quakelib/src/QuakeLibIO.h
@@ -791,6 +791,12 @@ namespace quakelib {
                 _data._start_sweep_rec = start_sweep;
                 _data._end_sweep_rec = end_sweep;
             }
+            void getStartEndSweep(unsigned int &start_sweep, unsigned int &end_sweep) {
+                start_sweep = _data._start_sweep_rec;
+                end_sweep = _data._end_sweep_rec;
+            }
+        
+        
             unsigned int getNumRecordedSweeps(void) const {
                 return _data._end_sweep_rec - _data._start_sweep_rec;
             };



More information about the CIG-COMMITS mailing list