2012 Data Discussion Examples

From canSAS

1D

example of simple 1D SAS data, I(Q)

SASroot
	SASentry
		SASdata
			@Q="Q"
			@Qindices="*"
			@Iindices="Q"
			I: float[100]
			Q: float[100]

(see the Discussion page for an XML representation with the recommended minimum content)

example of simple 1D SAS data in a time series, I(Q, t)

SASroot
	SASentry
		SASdata
			@Q="Q"
			@Qindices="*"
			@Iindices="Q,time"
			I: float[100, ntime]
			Q: float[100]
			t: float[ntime]


example of generic 1D SAS data in a time series, I(Q(t), t)

SASroot
	SASentry
		SASdata
			@Q="Q"
			@Qindices="*,time"
			@Iindices="Q,time"
			I: float[100, ntime]
			Q: float[100, ntime]
			t: float[ntime]



2D

example of simple 2D (image) SAS data, I(Q)

SASroot
	SASentry
		SASdata
			@Q="Qx,Qy"
			@Qindices="*,*"
			@Iindices="Q,Q"
			I: float[100, 512]
			Qx: float[100, 512]
			Qy: float[100, 512]

example of generic 2D SAS data, I(Q)

Could use this model, for example, to describe data from multiple detectors (by listing individual pixels off all detectors). Or, could describe data from one detector of any geometry. This is the most flexible.

SASroot
	SASentry
		SASdata
			@Q="Qx,Qy,Qz"
			@Qindices="*"
			@Iindices="Q"
			I: float[100*512]
			Qx: float[100*512]
			Qy: float[100*512]
			Qz: float[100*512]

example of generic 2D SAS data in a time series, I(Q(t),t)

SASroot
	SASentry
		SASdata
			@Q="Qx,Qy,Qz"
			@Qindices="*,time"
			@Iindices="Q,time"
			I: float[100*512,ntime]
			Qx: float[100*512,ntime]
			Qy: float[100*512,ntime]
			Qz: float[100*512,ntime]
			t: float[ntime]

example of generic 2D SAS data in a time, T, & P series, I(Q(t,T,P),t,T,P)

SASroot
	SASentry
		SASdata
			@Q="Qx,Qy,Qz"
			@Qindices="*,time,T,P"
			@Iindices="Q,time,T,P"
			I: float[100*512,ntime,nT,nP]
			Qx: float[100*512,ntime,nT,nP]
			Qy: float[100*512,ntime,nT,nP]
			Qz: float[100*512,ntime,nT,nP]
			t: float[ntime]
			T: float[nT]
			P: float[nP]

example of generic 2D SAS data in a time, T, & P series, I(T,Q(t),t,P)

SASroot
	SASentry
		SASdata
			@Q="Qx,Qy,Qz"
			@Qindices=",*,*,time,"
			@Iindices="T,Q,Q,time,P"
			I: float[nT,100,512,ntime,nP]
			Qx: float[100,512,ntime]
			Qy: float[100,512,ntime]
			Qz: float[100,512,ntime]
			t: float[ntime]
			T: float[nT]
			P: float[nP]

invalid case

example of **over-simple** 2D (image) SAS data, I(Q)

Invalid because the method of addressing the Q values is different from all the above.


SASroot
	SASentry
		SASdata
			@Q="Qx,Qy"
			@Qindices="*,*"
			@Iindices=" ??? "
			I: float[100, 512]
			Qx: float[100]
			Qy: float[512]

terms

SASroot

same use as original 1D format

SASentry

some changes from the original 1D format

SASdata

different use from original 1D format, refers to a single reduced data set that can be represented thus (such as from one detector)

SASdata has three possible attributes, as shown in this example:

@Q="Qx,Qy,Qz"
@Qindices=",*,*,time,"
@Iindices="T,Q,Q,time,P"

Commas are used as delimiters in all cases.

@Q

Comma-separated list that describes the names of the actual data objects that describe Q.

@Qindices

Comma-separated list that describes which indices are used (from the I object) to reference Q. Leave a position empty if that index is not used to describe Q, Use a "*" to describe an index that uses the Q definition. For other data storage objects, name the object for the position where it should appear.

@Iindices

Comma-separated list that describes which objects correspond to the indices of the I object. For indices that involve Q, use the term "Q" and the @Qindices attribute will provide more information.