## visad.paoloa
Class GoesCollaboration

    java.lang.Object
      visad.paoloa.GoesCollaboration

public class GoesCollaboration
extends Object

GoesCollaboration implements the interactive and collaborative Goes satellite sounding retrieval application using VisAD 2.0. It is rewritten from the IRGS.v application developed for VisAD 1.1 by Paolo Antonelli.

Nested Class Summary
`(package private) class` `GoesCollaboration.diff_colCell` compute diff_col = wfna - wfna_old
`(package private) class` `GoesCollaboration.real_tbcCell` get observed brightness temperatures, as well as temperature, water-vapor mixing-ratio, ozone and pressure profiles
`(package private) class` `GoesCollaboration.wfna_oldCell` save a copy of wfna in wfna_old
`(package private) class` `GoesCollaboration.wfnaCell` compute brightness temperature errors and root mean square
`(package private) class` `GoesCollaboration.wfnbCell` compute weighting function of channel versus vertical level

Field Summary
`(package private) RemoteServer` `client_server` RemoteServer for client this GoesCollaboration is a client if client_server != null
`(package private) RealType` `data_real`
`(package private) RealType` `diff`
`(package private) DataReference` `diff_col_ref`
`(package private) DataReference` `diff_ref`
`(package private) DataReference` `gzen_ref` slider DataReferences
`static int` `HEIGHT`
`(package private) DataReference` `in_dx_ref`
`(package private) RealType` `indx`
`(package private) RealType` `mixr`
`(package private) DataReference` `mixra_ref`
`(package private) RealType` `nchan` declare MathTypes
`(package private) RealType` `nl`
`(package private) RealType` `ozone`
`(package private) DataReference` `ozonea_ref`
`(package private) RealType` `pres`
`(package private) DataReference` `presa_ref`
`(package private) RealType` `pressure`
`(package private) DataReference` `real_tbc_ref`
`(package private) RemoteServerImpl` `server_server` RemoteServerImpl for server this GoesCollaboration is a server if server_server != null
`(package private) DataReference` `smr_ref`
`(package private) RealType` `tbc`
`(package private) RealType` `tbc_d`
`(package private) RealType` `temp`
`(package private) DataReference` `tempa_ref`
`(package private) DataReference` `tskin_ref`
`(package private) RealType` `wfn`
`(package private) DataReference` `wfna_old_ref`
`(package private) DataReference` `wfna_ref` declare DataReferences
`(package private) DataReference` `wfnb_ref`
`static int` `WIDTH` the width and height of the UI frame
`(package private) DataReference` `zero_line_ref`

Constructor Summary
`GoesCollaboration(String[] args)` Construct the GoesCollaboration application, including Data objects, Display objects, Cell (computational) objects, and JFC (slider) user interface objects.

Method Summary
`static void` `main(String[] args)` type 'java visad.paoloa.GoesCollaboration' to run this application; the main thread just exits, since Display, Cell and JFC threads run the application
`(package private) void` `setupClient()` set up as client
`(package private) void` `setupDisplays(DisplayImpl[] displays)` set up Displays; return constructed Displays in displays array
`(package private) void` `setupServer()` set up as server
`(package private) void` `setupUI(DisplayImpl[] displays, DataReference in_dx_ref, DataReference save_config_ref, DataReference gzen_ref, DataReference tskin_ref)` construct user interface using JFC

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### server_server

    RemoteServerImpl server_server

  RemoteServerImpl for server this GoesCollaboration is a server if server_server != null

### client_server

    RemoteServer client_server

  RemoteServer for client this GoesCollaboration is a client if client_server != null

### nchan

    RealType nchan

  declare MathTypes

### indx

    RealType indx

### nl

    RealType nl

### tbc

    RealType tbc

### tbc_d

    RealType tbc_d

### wfn

    RealType wfn

### pres

    RealType pres

### temp

    RealType temp

### mixr

    RealType mixr

### ozone

    RealType ozone

### pressure

    RealType pressure

### data_real

    RealType data_real

### diff

    RealType diff

### wfna_ref

    DataReference wfna_ref

  declare DataReferences

### tempa_ref

    DataReference tempa_ref

### mixra_ref

    DataReference mixra_ref

### ozonea_ref

    DataReference ozonea_ref

### presa_ref

    DataReference presa_ref

### diff_col_ref

    DataReference diff_col_ref

### diff_ref

    DataReference diff_ref

### zero_line_ref

    DataReference zero_line_ref

### smr_ref

    DataReference smr_ref

### real_tbc_ref

    DataReference real_tbc_ref

### wfnb_ref

    DataReference wfnb_ref

### wfna_old_ref

    DataReference wfna_old_ref

### gzen_ref

    DataReference gzen_ref

  slider DataReferences

### tskin_ref

    DataReference tskin_ref

### in_dx_ref

    DataReference in_dx_ref

### WIDTH

    public static int WIDTH

  the width and height of the UI frame

### HEIGHT

    public static int HEIGHT

Constructor Detail

### GoesCollaboration

    public GoesCollaboration(String[] args)
                      throws VisADException,
                             RemoteException

  Construct the GoesCollaboration application, including Data objects, Display objects, Cell (computational) objects, and JFC (slider) user interface objects. The Display, Cell and JFC objects include threads and links to Data objects (via DataReference objects). Display and Cell threads wake up when linked Data objects change. Display and JFC objects wake up on mouse events. Display, Cell and JFC objects cause changes to Data objects.

  Here's a summary of the event logic among Data, Displays, Cells, and JSliders:

        initialization ->
          zero_line = 0                              -> display4

        slider <--> in_dx

        slider <--> gzen

        slider <--> tskin

        slider <--> save_config

        in_dx -> real_tbcCell
          real_tbc = re_read_1_c(in_dx)
          month = 6
          lat = real_tbc[18];
          (tempa, mixra, ozonea, presa) =
            get_profil_c(lat, month)                 -> display2

        direct_manipualtion (in display2) ->
          (tempa, mixra, ozonea)                     -> display2

        gzen, tskin, tempa, mixra, ozonea, presa -> wfnbCell
          wfnb = goesrte_2_c(gzen, tskin, tempa, mixra, ozonea, presa)

        wfnb, real_tbc -> wfnaCell
          wfna = wfnb.wfn                            -> display1
          diff_DATA = wfnb.tbc[nl=1] - real_tbc      -> display4
          smr = RootMeanSquare(diff_DATA)            -> display4

        save_config -> wfna_oldCell
          wfna_old = wfna

        wfna, wfna_old -> diff_colCell
          diff_col = wfna - wfna_old                 -> display3

Method Detail

### main

    public static void main(String[] args)
                     throws VisADException,
                            RemoteException

  type 'java visad.paoloa.GoesCollaboration' to run this application; the main thread just exits, since Display, Cell and JFC threads run the application

  Throws:
    `VisADException`
    `RemoteException`

### setupServer

    void setupServer()
               throws VisADException,
                      RemoteException

  set up as server

  Throws:
    `VisADException`
    `RemoteException`

### setupClient

    void setupClient()
               throws VisADException,
                      RemoteException

  set up as client

  Throws:
    `VisADException`
    `RemoteException`

### setupDisplays

    void setupDisplays(DisplayImpl[] displays)
                 throws VisADException,
                        RemoteException

  set up Displays; return constructed Displays in displays array

  Throws:
    `VisADException`
    `RemoteException`

### setupUI

    void setupUI(DisplayImpl[] displays,
                 DataReference in_dx_ref,
                 DataReference save_config_ref,
                 DataReference gzen_ref,
                 DataReference tskin_ref)
           throws VisADException,
                  RemoteException

  construct user interface using JFC

  Throws:
    `VisADException`
    `RemoteException`