Skip to content

Commit 0081639

Browse files
committed
Use generated git version in configure.ac. More slight cleanups to docs and examples.
1 parent 2dda878 commit 0081639

File tree

5 files changed

+48
-40
lines changed

5 files changed

+48
-40
lines changed

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ dnl
44
dnl +------------------------
55
dnl | Initialize package info
66
dnl +------------------------
7-
AC_INIT([TIDAS], [0.1.0], [work@theodorekisner.com], [tidas], [https://github.com/hpc4cmb/tidas])
7+
AC_INIT([TIDAS], m4_esyscmd_s([m4/git-version.sh]), [work@theodorekisner.com], [tidas], [https://github.com/hpc4cmb/tidas])
88
AC_CONFIG_SRCDIR([Makefile.am])
99
AM_INIT_AUTOMAKE([foreign])
1010
AC_CONFIG_HEADERS(config.h)

docs/sphinx/group.rst

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@ Groups
66

77
A "group" contains a collection of timestreams with consistent sampling. In other words, each timestream in the group has the same number of samples. Each timestream has a name, a data type, and a string describing the units. This metadata for one timestream is called a "field". The collection of fields used in a group is called the "schema" of the group. A group's schema is fixed at creation time, but the number of samples may be changed as needed. A group is associated with a parent block. Read and write operations on the data in a group is passed off to the "backend" class in use. A group may also have a dictionary of scalar properties associated with it.
88

9-
C++
10-
~~~~~~~~~
11-
12-
.. doxygenclass:: tidas::group
13-
:members:
149

1510
Python
1611
~~~~~~~~~
1712

1813
.. autoclass:: tidas.Group
1914
:members:
2015

16+
17+
C++
18+
~~~~~~~~~
19+
20+
.. doxygenclass:: tidas::group
21+
:members:

docs/sphinx/intervals.rst

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,6 @@ Intervals
66

77
When dealing with time domain data, it is very common to specify ranges of time that have some meaning. These might be spans of good or bad data, or time ranges that enclose some important event or feature. This use case is so common that TIDAS has a built in object for this. An "intervals" object represents a list of time ranges. Each span can also optionally have a range of sample indices, which is useful if the intervals are associated with a particular group.
88

9-
C++
10-
~~~~~~~~~
11-
12-
.. doxygenclass:: tidas::intrvl
13-
:members:
14-
15-
.. doxygenclass:: tidas::intervals
16-
:members:
179

1810
Python
1911
~~~~~~~~~
@@ -25,3 +17,13 @@ Python
2517
:members:
2618

2719

20+
C++
21+
~~~~~~~~~
22+
23+
.. doxygenclass:: tidas::intrvl
24+
:members:
25+
26+
.. doxygenclass:: tidas::intervals
27+
:members:
28+
29+

docs/sphinx/volume.rst

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,20 @@ Volumes
66

77
A volume is the top-level TIDAS object. It defines the "backend" data format and holds a metadata database for fast(er) data selection and query operations. It also contains the root of a hierarchy (a tree) of "blocks".
88

9+
10+
Planning the Layout of a Volume
11+
--------------------------------------
12+
13+
An important feature of TIDAS volumes is the ability to open / copy / link only a subset of the data. This selection operation is performed with a regular expression match on the tree of block names. This means that it is critical to plan out the organization of blocks to make it possible to do any desired data selections.
14+
15+
Most data collected from monitoring systems, experimental apparatuses, etc, have natural ways that the data might be split up into pieces. For example, if the data collection is started fresh each day, you might have a block for each day. If there are different sorts of data within one day which you might want to frequently split up, then you could have sub-blocks in each day for the different data types. Going the other direction up the hierarchy, you might organize the days into blocks for each month, each quarter, each year, etc.
16+
17+
918
Interface
1019
---------------
1120

12-
C++
13-
~~~~~~~~~
21+
Here is a basic reference for the volume interface.
1422

15-
.. doxygenclass:: tidas::volume
16-
:members:
17-
:no-link:
1823

1924
Python
2025
~~~~~~~~~
@@ -23,17 +28,19 @@ Python
2328
:members:
2429

2530

31+
C++
32+
~~~~~~~~~
33+
34+
.. doxygenclass:: tidas::volume
35+
:members:
36+
:no-link:
37+
2638

2739
Blocks
2840
----------------
2941

3042
A "block" is simply a logical collection of data which has a "name" (a string) associated with it. A block can contain data itself, other blocks, or both. A volume contains a special "root" block, which is the top of the tree / hierarchy of blocks in the volume.
3143

32-
C++
33-
~~~~~~~~~
34-
35-
.. doxygenclass:: tidas::block
36-
:members:
3744

3845
Python
3946
~~~~~~~~~
@@ -42,12 +49,11 @@ Python
4249
:members:
4350

4451

45-
Planning the Layout of a Volume
46-
--------------------------------------
47-
48-
An important feature of TIDAS volumes is the ability to open / copy / link only a subset of the data. This selection operation is performed with a regular expression match on the tree of block names. This means that it is critical to plan out the organization of blocks to make it possible to do any desired data selections.
52+
C++
53+
~~~~~~~~~
4954

50-
Most data collected from monitoring systems, experimental apparatuses, etc, have natural ways that the data might be split up into pieces. For example, if the data collection is started fresh each day, you might have a block for each day. If there are different sorts of data within one day which you might want to frequently split up, then you could have sub-blocks in each day for the different data types. Going the other direction up the hierarchy, you might organize the days into blocks for each month, each quarter, each year, etc.
55+
.. doxygenclass:: tidas::block
56+
:members:
5157

5258

5359
MPI Volumes
@@ -64,16 +70,17 @@ see those changes until the synchronization method is called.
6470
Multiple processes writing to the same group or intervals object is not supported, and may corrupt the data files for those objects!
6571

6672

67-
C++
73+
Python
6874
~~~~~~~~~
6975

70-
.. doxygenclass:: tidas::mpi_volume
76+
.. autoclass:: tidas.mpi_volume.MPIVolume
7177
:members:
72-
:no-link:
7378

74-
Python
79+
80+
C++
7581
~~~~~~~~~
7682

77-
.. autoclass:: tidas.mpi_volume.MPIVolume
83+
.. doxygenclass:: tidas::mpi_volume
7884
:members:
85+
:no-link:
7986

examples/demo_weather.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@
7474
# Add a block for this year
7575
yb = root.block_add(year)
7676

77-
for monthnum in range(1, 13):
78-
# Add a block for the month
77+
for monthnum in range(1, 2):
78+
# Add a block for the month. Just use January for now.
7979
month = calendar.month_abbr[monthnum]
8080
mb = yb.block_add(month)
8181

@@ -155,8 +155,6 @@
155155
# interested in the speed, not the direction. Let's extract just the wind
156156
# speed data for the month of January, 2019.
157157

158-
print("Small demo")
159-
160158
file = "demo_weather_small"
161159
if os.path.isdir(file):
162160
shutil.rmtree(file)
@@ -167,6 +165,7 @@
167165

168166
# Take a quick peek at the small data volume:
169167

168+
print("\nSmall volume with just wind speed:\n")
170169
with tidas.Volume(file) as vol:
171170
vol.info()
172171

@@ -176,8 +175,6 @@
176175
# new derived data products. We can make a volume which links to the original
177176
# data and then add new groups to this.
178177

179-
print("Link demo")
180-
181178
file = "demo_weather_link"
182179
if os.path.isdir(file):
183180
shutil.rmtree(file)
@@ -222,5 +219,6 @@
222219
# in this volume. However, note that trying to write to these would fail
223220
# if the filesystem permissions were read-only.
224221

222+
print("\nVolume linked to original with new local Intervals:\n")
225223
with tidas.Volume(file) as vol:
226224
vol.info()

0 commit comments

Comments
 (0)