XGEOPLOT

From ICE Enterprises
Jump to navigation Jump to search

ALPHA! - An incomplete drop-in replacement for X-Midas XGEOPLOT

<SITE>     - Site file
<SV>       - State Vectors for platform A
<UNKNOWN>  -
<REFTIME>  - Reference time of interest in seconds (initial)

This primitive is NOT COMPLETE but is the start of a replacement for the
X-Midas XGEOPLOT primitive.

Messages:
  NAME     -  DESCRIPTION  (Note: all messages are INcoming)
  -----------------------------------------------------------------------
  OVERLAY  -  General Information:
                  This message is used to overlay a file onto the current file.
                  If an overlay message arrives which specifies a file that has
                  already been loaded, that file will be reread. To set additional
                  arguments or to update the viewable area of the plot when opening, 
                  use the optional message field QUALS=<table>. For more details, see
                  the plot explain file.

                  INFO = 3-layers 4-events
                  DATA = <filename.ext>

           -  Optional Fields:
                  QUALS = {OUTERLIMITS={}, VIEWLIMITS={}}

  T5REC    -  General Information:
                  This message is a somewhat raw method of altering a LAYERT5 
                  record.  All type 5000 files are stored internally with a 
                  record structure closely resembling the T5REC message fields.

                  INFO = modmask (i.e. bitmask of fields to modify).  Note: This
                         information can also be supplied in String form by 
                         having a MODMASK key in the DATA table (MODMASK Data 
                         Field/Table entry will override INFO).
                         Only those items whose bit in the modmasks field is set
                         will be updated when the message is received.  For 
                         short, modmask=0 modifies nothing, modmask=-1 modifies
                         everything.  Bits are numeric starting at 1 for alt, 2
                         for lat, and so on.  Bit 0 is unused.
                         Example modmasks:
                         14=alt,lat,lon  16=name   224=azim,elev,roll 1792=r,a,b
                         2048=color  12288=symbol,size  49152=cone,invert

           -  Required Data Fields:
                  L:LAYER  -  The <layer> refers to the layer number associated 
                              with the type5000 data.  If <layer> is negative, 
                              it is the index counting from the last, backward. 
                              (i.e. -1 is the last, -2 is 2nd from the last)  If
                              <layer> = 0, it refers to the marker record and 
                              index is ignored.
                  L:INDEX  -  The <index> refers to the record index within the 
                              layer.  If <index> is negative, it is the index 
                              counting from the last, backward. If <index> = 0,
                              it refers to the entire layer.

           -  Optional Data Fields:
                  D:ALT    -  Altitude (Geodetic coordinates of the point)
                  D:LAT    -  Latitude
                  D:LON    -  Longitude
                  D:NAME   -  8 character label for the point
                  D:R      -  Meaning varies and affects interpretation of other
                              fields as well (see next section)
                  S:MODMASK-  String representation of bit mask (fields that are
                              listed will be modified).  Full list:
                              |ALT|LAT|LON|NAME|AZIM|ELEV|ROLL|R|A|B|COLOR|
                              SYMBOL|SIZE|CONE|INVERT|
                  Flag fields:
                  L:COLOR  - T5 Color number:
                             1 - Gray (MPlot.T5_INDEX_GRAY)
                             2 - dark green (MPlot.T5_INDEX_DARK_GREEN)
                             3 - red (MPlot.T5_INDEX_RED)
                             4 - yellow (MPlot.T5_INDEX_YELLOW)
                             5 - green (MPlot.T5_INDEX_GREEN)
                  B:SYMBOL - 1:DOT, 2:CIRCLE, 3:PLUS, 4:CROSS, 5:UTRI, 6:DTRI
                  B:SIZE   - diameter of symbol in pixels
                  B:CONE   - specifies the type of conic to plot:
                             -9: uses XGEOPLOTs current/default CONELEV
                             -1: map cone to intersection with geosphere
                              0: off - no conic
                              N: number of sections (rings) along cone centerline
                  B:INVERT -  the cone is inverted, ie. the base of the cone
                              and the vertex are swapped.
                              (saved, but not used at this time)

           -  Optional Data Fields Where Interpretation depends value of R:
              [R > 1 or not specified case - WARNING: Currently Unimplemented]:
                  D:AZIM   - Azimuth   | Used along with ELEV and ROLL to apply
                  D:ELEV   - Elevation | a coordinate reorientation at the 
                  D:ROLL   - Roll      | geodetic position.  If all are zero, Z 
                                       | points up, X points east, and Y north.
                                       | Conics are formed along the Z axis.
                  D:R      - Height of the conic
                  D:A      - Major half angle for the cone
                             (saved, but not used at this time)
                  D:B      - Minor half angle for the cone
                             (saved, but not used at this time)
              R = -1 case (cone):
                  D:AZIM   - ALT2 | Used along with LAT2 and LON2 to define
                  D:ELEV   - LAT2 | a second point. If any flag data fields are
                  D:ROLL   - LON2 | set, this point is the position the cone is 
                                  | originating from (the viewer) and the first
                                  | point is the target location (the point the
                                  | viewer is looking at).  If no flag fields
                                  | are set, the points are reversed (this point
                                  | is the target and the first point the
                                  | viewer)
              R = 0 case (error ellipses):
                  D:AZIM   - ellipse orientation  | An error ellipse is a 
                  D:A      - ellipse major radius | special case of a conic. 
                  D:B      - ellipse minor radius |

  T5TEXT   -  General Information:
                  This is a special case of the T5REC used to plot text strings.

                  INFO = modmask (i.e. bitmask of fields to modify).  Note: This
                         information can also be supplied in String form by 
                         having a MODMASK key in the DATA table (MODMASK Data 
                         Field/Table entry will override INFO).
                         Only those items whose bit in the modmasks field is set
                         will be updated when the message is received.  For 
                         short, modmask=0 modifies nothing, modmask=-1 modifies
                         everything.  Bits are numeric starting at 1 for alt, 2
                         for lat, and so on.  Bit 0 is unused.
                         Example modmasks:
                         14=alt,lat,lon  16=name  32=text  64=color
                         384=symbol,size

           -  Required Data Fields:
                  L:LAYER  -  The <layer> refers to the layer number associated 
                              with the type5000 data.  If <layer> is negative, 
                              it is the index counting from the last, backward. 
                              (i.e. -1 is the last, -2 is 2nd from the last)  If
                              <layer> = 0, it refers to the marker record and 
                              index is ignored.
                  L:INDEX  -  The <index> refers to the record index within the 
                              layer.  If <index> = 0, it refers to the entire
                              layer. If <index> is negative, it refers to the 
                              last index.
                              (NOT IMPLEMENTED: If <index> is negative,
                              it is the index counting from the last, backward.)

           -  Optional Data Fields:
                  D:ALT    -  Altitude (Geodetic coordinates of the point)
                  D:LAT    -  Latitude
                  D:LON    -  Longitude
                  D:NAME   -  8 character label for the point
                  S:TEXT   -  text string 
                              (saved, but not displayed)
                              [Also NOT implemented: An "@" in the text is 
                              treated as a CR/LF and the remaining text is 
                              displayed on the next line.]
                  S:MODMASK-  String representation of bit mask (fields that are
                              listed will be modified).  Full list:
                              |ALT|LAT|LON|NAME|TEXT|COLOR|SYMBOL|SIZE|CONE|
                              INVERT|

  T5LAYER  -  General Information:
                  This message is used to modify the structure of a type 5000
                  layer

                  INFO = layer number

           -  Data Fields:
                  S:ACTION - "DELETE" deletes points indexed P1 through P2
                                      P2 = -1 refers to the last point
                                      <TODO>
                             "COPY"   copies point index P1 to P2
                                      <p2> = 0 appends the point to the end
                                      <TODO>
                             "CREATE" creates a layer with P1 points
                                      INFO=0 is one after the last layer
                  L:P1     - first point  (1 indexed) / number of points
                  L:P2     - second point (inclusive & 1 indexed) / <not used>

  SETVIEW  -  General Information:
                  Set the view

                  INFO = View:
                                  1: LATLON
                                  2: PERSP        <unsupported>
                                  3: SVA          <unsupported>
                                  4: SVB          <unsupported>
                           negative: split mode   <unsupported>

           -  Required Data Fields:
                  D:VAL1 = longitude min
                  D:VAL2 = longitude max
                  D:VAL3 = latitude min
                  D:VAL4 = latitude max

           -  Optional Data Fields <UNSUPPORTED>
                  eyelat/lon/dis = viewing lat/lon/distance for perspective mode

Examples:

  1. Use T5REC message to add/merge Point 1 with Error Ellipse component on 
     Layer 2. (uses String MODMASK)

  message FUNC=SEND ID=^XGEOID INFO=0 NAME="T5REC" &
     DATA={Layer=2,INDEX=1,&
     ModMask="ALT|LAT|LON|R|AZIM|A|B|COLOR|CONE|NAME|SYMBOL|SIZE", &
     ALT=45.0,LAT=0.5,LON=0.5,R=0,AZIM=15.0,A=300000.0,B=70000.0,COLOR=2, &
     CONE=-9, SYMBOL=5,SIZE=3,NAME=PNT1REC}

  2. Use T5REC message to add/merge Point 2 with Cone component on Layer 3
     (uses String MODMASK)

  invoke red nxm.sys.libg.MColor.T5_INDEX_RED
  message FUNC=SEND ID=^XGEOID INFO=0 NAME="T5REC" &
     DATA={Layer=3,INDEX=2, &
     ModMask="ALT|LAT|LON|R|AZIM|ELEV|ROLL|COLOR|CONE|NAME|SYMBOL|SIZE",&
     ALT=1000000.0,LAT=1,LON=5,R=-1,AZIM=7.0,ELEV=5.0,ROLL=0.0,COLOR=^red, &
     CONE=-9, SYMBOL=5,SIZE=3,NAME=PNT2REC}

  4. Use T5REC message to modify all points in the Layer to have Longitude 6.0
     and have the color gray. (uses INFO for modmask)

  invoke gray  nxm.sys.libg.MColor.T5_INDEX_GRAY
  message FUNC=SEND ID=^XGEOID INFO=72 NAME="T5REC" &
             DATA={Layer=4,INDEX=0,LON=6.0,COLOR=1}

  5. Use T5TEXT message to add Point with TEXT/NOTE component on third LayerT5

  message FUNC=SEND ID=^XGEOID INFO=-1 NAME="T5TEXT", DATA={Layer=4,INDEX=3, &
     ModMask="ALT|LAT|LON|NAME|COLOR|SYMBOL|TEXT|SIZE|INVERT",ALT=55.0,LAT=2, &
     LON=2,COLOR=4,SYMBOL=2,SIZE=3,INVERT=1,NAME=PNT3TEXT, TEXT=NoteToDisplay}

  6. Use T5LAYER ACTION=CREATE message to create a LayerT5

  message FUNC=SEND ID=^XGEOID INFO=1 NAME="T5LAYER" &
              DATA={ACTION="CREATE",P1=1}

  7. Use T5LAYER ACTION=DELETE message to delete Points 1 to 2 in Layer 1

  message FUNC=SEND ID=^XGEOID INFO=1 NAME="T5LAYER" &
              DATA={ACTION="DELETE",P1=1,P2=2}

  8. Use T5LAYER ACTION=DELETE message to delete Points 4 to the end in the
     layer defined as citiesLayer

  set L:layNum ^citiesLayer
  message FUNC=SEND ID=^XGEOID INFO=^layNum NAME="T5LAYER" &
              DATA={ACTION="DELETE",P1=4,P2=-1}

  9. Use T5LAYER ACTION=COPY to make Point 1 a copy of Point 3

  message FUNC=SEND ID=^XGEOID INFO=3 NAME="T5LAYER" &
              DATA={ACTION="COPY",P1=3,P2=1}

  10. Use T5LAYER ACTION=COPY to append copy of Point 3 to the existing points

  message FUNC=SEND ID=^XGEOID INFO=3 NAME="T5LAYER" &
              DATA={ACTION="COPY",P1=3,P2=0}

  11. Use SETVIEW to zoom in

  set box {MINLON=-1,MAXLON=8,MINLAT=-3,MAXLAT=5}
  message FUNC=SEND ID=^XGEOID INFO=1 NAME="SETVIEW" &
     DATA={VAL1=^box.minLon,VAL2=^box.maxLon,VAL3=^box.minLat,VAL4=^box.maxLat} 
     
  12. Use OVERLAY message to add a file to the current file.
  
  message FUNC=SEND ID=^XGEOID NAME=OVERLAY INFO=3 DATA="temp_xgeo_cities" QUALS={OUTERLIMITS={x1=-100}}

Switches:
  /DEBUG - Switch description
  /XN    - Window title
  /MTAG  - Switch description
  /MSGID - Switch description