SharcScan, SharcHeader, SharcFrame:


	   Interface	   abstract	           abstract
	   Instrument	-> Telescope	->  CSO	-> [CSOInstrument]  -> SHARC2

								    -> Bolocam
						   
						   abstract
					-> IRAM -> [IRAMInstrument] -> AZTEC

								         ^
	      		   Interface				         |
			-> ArrayInstrument ------------------------------+


			-> [...]



	   Channel	-> ArrayPixel	  -> Bolometer -> SemiConductorBolometer  -> SharcBolometer
			   .getArrayOffset()




			   
	   Frame	-> TelescopeFrame -> CSOFrame -> SharcFrame 
							      ^
			   InterFace	     Interface        |
			-> ArrayFrame	  -> BolometerFrame --+

			-> EmptyFrame



t
           InstrumentData -> TelescopeData -> CSOScan -> SharcScan
							    ^
			     Interface	   Interface	    |
			  -> ArrayData	-> BolometerData ---+
			  

			  -> [TimeSeriesData...]
	   


		
InstrumentData.Instrument	TelescopeData.Telescope		CSOScan.CSOInstrument	SharcScan.SHARC2
	      .Frame[]			     .TelescopeFrame[]	       .CSOFrame[]	         .SharcFrame[]
	      .Channel[]		     .Channel[]	       .        Channel[]		 .SharcPixel[]

(time-series data)		has telescope information       fills telescope info     has SHARC-2 information
assumes regular sampling					with CSO data.
but can have empty frames					has CSO specific info
emtry frames may be
randomly inserted for
smaller gaps.

				sky position (frame, channel)
				frequency position (frame, channel)
				telescope beam

can splice into smaller
blocks



			        ArrayData.ArrayInstrument
				         .ArrayFrame[]		            
					 .ArrayPixel[]			.   


			        has channel positions	       	
				Frame can FFT.		      



Iterator structure allows generic extract/inject/getRMS routines...

Iterator PipelineElement.getParameterIterator();
Iterator ParameterIterator.getDataIterator();
				 .

* Data Iterator will skip thuogh all unwanted (such as flagged points).


PipelineElement -> Model

		-> Test




Test  -> SpikeTest

      -> TemporalTest

      -> SpectralTest

      -> GainTest



(Generic data model. Assumes only time series of channels).

Model -> ChannelWeights (using Model.parmsForChannel)

      -> FrameWeights (using Model.parmsForFrame)

      -> DriftModel -> DriftMedians

      -> CorrelatedModel -> InstrumentMedians (frame.offset)

      -> GainModel (from frame.offset)

      -> NonlinearityModel (from frame.offset)

      -> BlockCorrelationsModel -> BlockMedians (Intrument provides blocks, uses CorrelatedModel or IntrumentMedians)
      


(Assumes channels are arranged in a 2-D format)

      -> {ArrayModel} 
		      -> Polynomial2DModel (ArrayPixel provides layout)

		      -> RegionalCorellations (via FFT provided by ArrayInstrument)	    

		      -> SourceModel
		      
(These are very specific to SHARC2)

       
		      -> {SharcModel} -> RowPolynomials

				      -> RowMedians

				      -> MUXModel -> MUXMedians

		      -> {TelescopeModel} 				      
				     
				     -> ChoppingResidualsModel



DataPoint

GridData
(has value,weight,rms,integrationTime)
(Implement mathematical functions, e.g. smooth etc.)

ImageData -> [SkyImage] (dx, dy) in local coordinates.
(FITS compliant style, implements display functionalities...)

ImageComponent



				> Planar, Equatorial, Horizontal (Galactic).
Coordinates
	reference
	

packages:


jaws.crush
          .models
		 .sharc
		 .aztec [...]
jaws.util
