src.gov.nasa.worldwindx.examples.Airspaces Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of worldwind Show documentation
Show all versions of worldwind Show documentation
World Wind is a collection of components that interactively display 3D geographic information within Java applications or applets.
/*
* Copyright (C) 2012 United States Government as represented by the Administrator of the
* National Aeronautics and Space Administration.
* All Rights Reserved.
*/
package gov.nasa.worldwindx.examples;
import gov.nasa.worldwind.*;
import gov.nasa.worldwind.avlist.AVKey;
import gov.nasa.worldwind.event.*;
import gov.nasa.worldwind.geom.*;
import gov.nasa.worldwind.layers.AirspaceLayer;
import gov.nasa.worldwind.pick.PickedObjectList;
import gov.nasa.worldwind.render.*;
import gov.nasa.worldwind.render.airspaces.*;
import gov.nasa.worldwind.render.airspaces.Box;
import gov.nasa.worldwind.render.airspaces.Polygon;
import gov.nasa.worldwind.util.*;
import gov.nasa.worldwind.view.orbit.BasicOrbitView;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
/**
* Illustrates how to configure and display World Wind {@link Airspace}
shapes. Airspace shapes are
* extruded 3D volumes defined by geographic coordinates and upper- and lower- altitude boundaries. The interior of
* airspace shapes always conforms to the curvature of the globe, and optionally also conform to the underlying
* terrain.
*
* This shows how to use all 11 types of standard airspace shapes: {@link Orbit}
- a rectangle
* with rounded end caps. {@link Curtain}
- a vertically extruded wall. {@link
* Polygon}
- a vertically extruded polygon. {@link PolyArc}
- a vertically extruded
* polygon with the first and last vertices connected by an arc. {@link Cake}
- one or more
* vertically stacked cylinders. {@link CappedCylinder}
- a vertically extruded cylinder.
* {@link PartialCappedCylinder}
- a vertically extruded cylinder with part of its interior
* removed. {@link SphereAirspace}
- a sphere defined by a geographic location.
* {@link TrackAirspace}
- one or more vertically extruded rectangles defined by pairs of geographic
* locations. {@link Route}
- a sequence of connected and vertically extruded rectangles defined
* by a list of geographic locations. {@link Box}
- a rectangle defined by a pair of geographic
* locations.
*
* @author dcollins
* @version $Id: Airspaces.java 1171 2013-02-11 21:45:02Z dcollins $
*/
public class Airspaces extends ApplicationTemplate
{
public static final String ACTION_COMMAND_ANTIALIAS = "gov.nasa.worldwind.avkey.ActionCommandAntialias";
public static final String ACTION_COMMAND_DEPTH_OFFSET = "gov.nasa.worldwind.avkey.ActionCommandDepthOffset";
public static final String ACTION_COMMAND_DRAW_EXTENT = "gov.nasa.worldwind.avkey.ActionCommandDrawExtent";
public static final String ACTION_COMMAND_DRAW_WIREFRAME = "gov.nasa.worldwind.avkey.ActionCommandDrawWireframe";
public static final String ACTION_COMMAND_LOAD_DATELINE_CROSSING_AIRSPACES
= "ActionCommandLoadDatelineCrossingAirspaces";
public static final String ACTION_COMMAND_LOAD_DEMO_AIRSPACES = "ActionCommandLoadDemoAirspaces";
public static final String ACTION_COMMAND_LOAD_INTERSECTING_AIRSPACES = "ActionCommandLoadIntersectingAirspaces";
public static final String ACTION_COMMAND_ZOOM_TO_DEMO_AIRSPACES = "ActionCommandZoomToDemoAirspaces";
public static final String ACTION_COMMAND_SAVE_AIRSPACES = "ActionCommandSaveAirspaces";
public static final String ACTION_COMMAND_READ_AIRSPACES = "ActionCommandReadAirspaces";
public static class AppFrame extends ApplicationTemplate.AppFrame
{
protected AirspacesController controller;
protected AirspacesPanel airspacesPanel;
protected FlatWorldPanel flatWorldPanel;
public AppFrame()
{
this.controller = new AirspacesController(this);
this.controller.actionPerformed(new ActionEvent(this, 0, ACTION_COMMAND_LOAD_DEMO_AIRSPACES));
this.getLayerPanel().update(this.getWwd());
this.airspacesPanel = new AirspacesPanel();
this.airspacesPanel.addActionListener(this.controller);
this.flatWorldPanel = new FlatWorldPanel(this.getWwd());
javax.swing.Box box = javax.swing.Box.createVerticalBox();
box.add(this.airspacesPanel);
box.add(this.flatWorldPanel);
this.getLayerPanel().add(box, BorderLayout.SOUTH);
this.pack();
}
public LayerPanel getLayerPanel()
{
return this.layerPanel;
}
}
public static class AirspacesPanel extends JPanel implements ActionListener
{
protected EventListenerList eventListeners = new EventListenerList();
public AirspacesPanel()
{
this.makePanel();
}
protected void makePanel()
{
this.setLayout(new GridLayout(0, 1, 0, 5)); // rows, cols, hgap, vgap
this.setBorder(
new CompoundBorder(BorderFactory.createEmptyBorder(9, 9, 9, 9), new TitledBorder("Airspaces")));
JButton btn = new JButton("Load Demo Airspaces");
btn.setActionCommand(ACTION_COMMAND_LOAD_DEMO_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
btn = new JButton("Load Intersecting Airspaces");
btn.setActionCommand(ACTION_COMMAND_LOAD_INTERSECTING_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
btn = new JButton("Load Dateline Crossing Airspaces");
btn.setActionCommand(ACTION_COMMAND_LOAD_DATELINE_CROSSING_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
btn = new JButton("Zoom to Demo Airspaces");
btn.setActionCommand(ACTION_COMMAND_ZOOM_TO_DEMO_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
btn = new JButton("Save Airspaces");
btn.setActionCommand(ACTION_COMMAND_SAVE_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
btn = new JButton("Read Airspaces");
btn.setActionCommand(ACTION_COMMAND_READ_AIRSPACES);
btn.addActionListener(this);
this.add(btn);
JCheckBox cb = new JCheckBox("Antialias", false);
cb.setActionCommand(ACTION_COMMAND_ANTIALIAS);
cb.addActionListener(this);
this.add(cb);
cb = new JCheckBox("Fix Z-Fighting", false);
cb.setActionCommand(ACTION_COMMAND_DEPTH_OFFSET);
cb.addActionListener(this);
this.add(cb);
cb = new JCheckBox("Show Wireframe", false);
cb.setActionCommand(ACTION_COMMAND_DRAW_WIREFRAME);
cb.addActionListener(this);
this.add(cb);
cb = new JCheckBox("Show Bounds", false);
cb.setActionCommand(ACTION_COMMAND_DRAW_EXTENT);
cb.addActionListener(this);
this.add(cb);
}
public void addActionListener(ActionListener listener)
{
this.eventListeners.add(ActionListener.class, listener);
}
public void removeActionListener(ActionListener listener)
{
this.eventListeners.remove(ActionListener.class, listener);
}
public void actionPerformed(ActionEvent actionEvent)
{
this.callActionListeners(actionEvent);
}
protected void callActionListeners(ActionEvent actionEvent)
{
ActionListener[] actionListeners = this.eventListeners.getListeners(ActionListener.class);
if (actionListeners == null)
return;
for (ActionListener listener : actionListeners)
{
listener.actionPerformed(actionEvent);
}
}
}
public static class AirspacesController implements ActionListener
{
protected AppFrame frame;
// AWT/Swing stuff.
protected JFileChooser fileChooser;
// World Wind stuff.
protected AirspaceLayer aglAirspaces;
protected AirspaceLayer amslAirspaces;
protected Airspace lastHighlit;
protected AirspaceAttributes lastAttrs;
protected Annotation lastAnnotation;
protected BasicDragger dragger;
public AirspacesController(AppFrame appFrame)
{
this.frame = appFrame;
// Construct a layer that will hold the airspaces and annotations.
this.aglAirspaces = new AirspaceLayer();
this.amslAirspaces = new AirspaceLayer();
this.aglAirspaces.setName("AGL Airspaces");
this.amslAirspaces.setName("AMSL Airspaces");
this.aglAirspaces.setEnableBatchPicking(false);
this.amslAirspaces.setEnableBatchPicking(false);
insertBeforePlacenames(this.frame.getWwd(), this.aglAirspaces);
insertBeforePlacenames(this.frame.getWwd(), this.amslAirspaces);
this.initializeSelectionMonitoring();
}
public WorldWindow getWwd()
{
return this.frame.getWwd();
}
public void actionPerformed(ActionEvent e)
{
if (ACTION_COMMAND_LOAD_DEMO_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doLoadDemoAirspaces();
}
else if (ACTION_COMMAND_LOAD_DATELINE_CROSSING_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doLoadDatelineCrossingAirspaces();
}
else if (ACTION_COMMAND_LOAD_INTERSECTING_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doLoadIntersectingAirspaces();
}
else if (ACTION_COMMAND_ZOOM_TO_DEMO_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doZoomToAirspaces();
}
else if (ACTION_COMMAND_SAVE_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doSaveAirspaces(e);
}
else if (ACTION_COMMAND_READ_AIRSPACES.equalsIgnoreCase(e.getActionCommand()))
{
this.doReadAirspaces(e);
}
else if (ACTION_COMMAND_ANTIALIAS.equalsIgnoreCase(e.getActionCommand()))
{
JCheckBox cb = (JCheckBox) e.getSource();
this.aglAirspaces.setEnableAntialiasing(cb.isSelected());
this.amslAirspaces.setEnableAntialiasing(cb.isSelected());
this.getWwd().redraw();
}
else if (ACTION_COMMAND_DEPTH_OFFSET.equalsIgnoreCase(e.getActionCommand()))
{
JCheckBox cb = (JCheckBox) e.getSource();
this.aglAirspaces.setEnableDepthOffset(cb.isSelected());
this.amslAirspaces.setEnableDepthOffset(cb.isSelected());
this.getWwd().redraw();
}
else if (ACTION_COMMAND_DRAW_WIREFRAME.equalsIgnoreCase(e.getActionCommand()))
{
JCheckBox cb = (JCheckBox) e.getSource();
this.aglAirspaces.setDrawWireframe(cb.isSelected());
this.amslAirspaces.setDrawWireframe(cb.isSelected());
this.getWwd().redraw();
}
else if (ACTION_COMMAND_DRAW_EXTENT.equalsIgnoreCase(e.getActionCommand()))
{
JCheckBox cb = (JCheckBox) e.getSource();
this.aglAirspaces.setDrawExtents(cb.isSelected());
this.amslAirspaces.setDrawExtents(cb.isSelected());
this.getWwd().redraw();
}
}
public void setAirspaces(Collection airspaces)
{
this.aglAirspaces.removeAllAirspaces();
this.amslAirspaces.removeAllAirspaces();
if (airspaces != null)
{
for (Airspace a : airspaces)
{
if (a == null)
continue;
if (a.getAltitudeDatum()[0].equals(AVKey.ABOVE_MEAN_SEA_LEVEL) &&
a.getAltitudeDatum()[1].equals(AVKey.ABOVE_MEAN_SEA_LEVEL))
{
this.amslAirspaces.addAirspace(a);
}
else
{
this.aglAirspaces.addAirspace(a);
}
}
}
this.getWwd().redraw();
}
public void initializeSelectionMonitoring()
{
this.dragger = new BasicDragger(this.getWwd());
this.getWwd().addSelectListener(new SelectListener()
{
public void selected(SelectEvent event)
{
// Have rollover events highlight the rolled-over object.
if (event.getEventAction().equals(SelectEvent.ROLLOVER) && !dragger.isDragging())
{
if (AirspacesController.this.highlight(event.getTopObject()))
AirspacesController.this.getWwd().redraw();
}
// Have drag events drag the selected object.
else if (event.getEventAction().equals(SelectEvent.DRAG_END)
|| event.getEventAction().equals(SelectEvent.DRAG))
{
// Delegate dragging computations to a dragger.
dragger.selected(event);
// We missed any roll-over events while dragging, so highlight any under the cursor now,
// or de-highlight the dragged shape if it's no longer under the cursor.
if (event.getEventAction().equals(SelectEvent.DRAG_END))
{
PickedObjectList pol = AirspacesController.this.getWwd().getObjectsAtCurrentPosition();
if (pol != null)
{
AirspacesController.this.highlight(pol.getTopObject());
AirspacesController.this.getWwd().redraw();
}
}
}
}
});
}
protected boolean highlight(Object o)
{
if (this.lastHighlit == o)
return false; // Same thing selected
// Turn off highlight if on.
if (this.lastHighlit != null)
{
this.lastHighlit.setAttributes(this.lastAttrs);
this.lastHighlit = null;
this.lastAttrs = null;
}
// Turn on highlight if selected object is a SurfaceImage.
if (o instanceof Airspace)
{
this.lastHighlit = (Airspace) o;
this.lastAttrs = this.lastHighlit.getAttributes();
BasicAirspaceAttributes highlitAttrs = new BasicAirspaceAttributes(this.lastAttrs);
highlitAttrs.setMaterial(Material.WHITE);
this.lastHighlit.setAttributes(highlitAttrs);
}
return true;
}
protected void setupDefaultMaterial(Airspace a, Color color)
{
a.getAttributes().setDrawOutline(true);
a.getAttributes().setMaterial(new Material(color));
a.getAttributes().setOutlineMaterial(new Material(WWUtil.makeColorBrighter(color)));
a.getAttributes().setOpacity(0.8);
a.getAttributes().setOutlineOpacity(0.9);
a.getAttributes().setOutlineWidth(3.0);
}
public void doLoadDatelineCrossingAirspaces()
{
ArrayList airspaces = new ArrayList();
// Curtains of different path types crossing the dateline.
Curtain curtain = new Curtain();
curtain.setLocations(Arrays.asList(LatLon.fromDegrees(27.0, -112.0), LatLon.fromDegrees(35.0, 138.0)));
curtain.setAltitudes(1000.0, 100000.0);
curtain.setTerrainConforming(false, false);
curtain.setValue(AVKey.DISPLAY_NAME, "Great arc Curtain from America to Japan.");
this.setupDefaultMaterial(curtain, Color.MAGENTA);
airspaces.add(curtain);
curtain = new Curtain();
curtain.setLocations(Arrays.asList(LatLon.fromDegrees(27.0, -112.0), LatLon.fromDegrees(35.0, 138.0)));
curtain.setPathType(AVKey.RHUMB_LINE);
curtain.setAltitudes(1000.0, 100000.0);
curtain.setTerrainConforming(false, false);
curtain.setValue(AVKey.DISPLAY_NAME, "Rhumb Curtain from America to Japan.");
this.setupDefaultMaterial(curtain, Color.CYAN);
airspaces.add(curtain);
// Continent sized sphere
SphereAirspace sphere = new SphereAirspace();
sphere.setLocation(LatLon.fromDegrees(0.0, -180.0));
sphere.setAltitude(0.0);
sphere.setTerrainConforming(false);
sphere.setRadius(1000000.0);
this.setupDefaultMaterial(sphere, Color.RED);
airspaces.add(sphere);
this.setAirspaces(airspaces);
}
public void doLoadDemoAirspaces()
{
ArrayList airspaces = new ArrayList();
// Cylinder.
CappedCylinder cyl = new CappedCylinder();
cyl.setCenter(LatLon.fromDegrees(47.7477, -123.6372));
cyl.setRadius(30000.0);
cyl.setAltitudes(5000.0, 10000.0);
cyl.setTerrainConforming(true, true);
cyl.setValue(AVKey.DISPLAY_NAME, "30,000m Radius Cylinder. Top & bottom terrain conformance.");
this.setupDefaultMaterial(cyl, Color.BLUE);
airspaces.add(cyl);
// Continent-sized cylinder.
cyl = new CappedCylinder();
cyl.setCenter(LatLon.fromDegrees(0.0, 0.0));
cyl.setRadii(1000000.0, 3000000.0);
cyl.setAltitudes(100000.0, 500000.0);
cyl.setTerrainConforming(false, false);
cyl.setValue(AVKey.DISPLAY_NAME, "3,000,000m Cylinder.");
this.setupDefaultMaterial(cyl, Color.RED);
airspaces.add(cyl);
// Radarc
PartialCappedCylinder partCyl = new PartialCappedCylinder();
partCyl.setCenter(LatLon.fromDegrees(46.7477, -123.6372));
partCyl.setAltitudes(5000.0, 10000.0);
partCyl.setTerrainConforming(false, false);
// To render a Radarc,
// (1) Specify inner radius and outer radius.
// (2) Specify start and stop azimuth.
partCyl.setRadii(15000.0, 30000.0);
partCyl.setAzimuths(Angle.fromDegrees(0.0), Angle.fromDegrees(90.0));
partCyl.setValue(AVKey.DISPLAY_NAME, "Partial Cylinder from 0 to 90 degrees.");
this.setupDefaultMaterial(partCyl, Color.DARK_GRAY);
airspaces.add(partCyl);
// Radarc
partCyl = new PartialCappedCylinder();
partCyl.setCenter(LatLon.fromDegrees(46.7477, -122.6372));
partCyl.setAltitudes(5000.0, 10000.0);
partCyl.setTerrainConforming(true, true);
// To render a Radarc,
// (1) Specify inner radius and outer radius.
// (2) Specify start and stop azimuth.
partCyl.setRadii(15000.0, 30000.0);
partCyl.setAzimuths(Angle.fromDegrees(90.0), Angle.fromDegrees(0.0));
partCyl.setValue(AVKey.DISPLAY_NAME, "Partial Cylinder from 90 to 0 degrees.");
this.setupDefaultMaterial(partCyl, Color.GRAY);
airspaces.add(partCyl);
// Cake
Cake cake = new Cake();
cake.setLayers(Arrays.asList(
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 10000.0, Angle.fromDegrees(190.0),
Angle.fromDegrees(170.0), 10000.0, 15000.0),
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 15000.0, Angle.fromDegrees(190.0),
Angle.fromDegrees(90.0), 16000.0, 21000.0),
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 12500.0, Angle.fromDegrees(270.0),
Angle.fromDegrees(60.0), 22000.0, 27000.0)));
cake.getLayers().get(0).setTerrainConforming(false, false);
cake.getLayers().get(1).setTerrainConforming(false, false);
cake.getLayers().get(2).setTerrainConforming(false, false);
cake.setValue(AVKey.DISPLAY_NAME, "3 layer Cake.");
this.setupDefaultMaterial(cake, Color.YELLOW);
airspaces.add(cake);
cake = new Cake();
cake.setLayers(Arrays.asList(
new Cake.Layer(LatLon.fromDegrees(36, -121), 10000.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 10000.0, 15000.0),
new Cake.Layer(LatLon.fromDegrees(36.1, -121.1), 15000.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 16000.0, 21000.0),
new Cake.Layer(LatLon.fromDegrees(35.9, -120.9), 12500.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 22000.0, 27000.0)));
cake.getLayers().get(0).setTerrainConforming(true, true);
cake.getLayers().get(1).setTerrainConforming(true, true);
cake.getLayers().get(2).setTerrainConforming(true, true);
cake.setValue(AVKey.DISPLAY_NAME, "3 layer Cake. With disjoint layers.");
this.setupDefaultMaterial(cake, Color.MAGENTA);
airspaces.add(cake);
// Left Orbit
Orbit orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(10000.0, 20000.0);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.LEFT);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "LEFT Orbit.");
this.setupDefaultMaterial(orbit, Color.LIGHT_GRAY);
airspaces.add(orbit);
// Center Orbit
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(15000.0, 25000.0);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.CENTER);
orbit.setTerrainConforming(true, true);
orbit.setValue(AVKey.DISPLAY_NAME, "CENTER Orbit.");
this.setupDefaultMaterial(orbit, Color.GRAY);
airspaces.add(orbit);
// Right Orbit
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(10000.0, 20000.0);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.RIGHT);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "RIGHT Orbit.");
this.setupDefaultMaterial(orbit, Color.DARK_GRAY);
airspaces.add(orbit);
// Orbit from Los Angeles to New York
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(34.0489, -118.2481), LatLon.fromDegrees(40.7137, -74.0065));
orbit.setAltitudes(10000.0, 100000.0);
orbit.setWidth(500000.0);
orbit.setOrbitType(Orbit.OrbitType.CENTER);
orbit.setTerrainConforming(true, true);
orbit.setValue(AVKey.DISPLAY_NAME, "Orbit From L.A. to N.Y.");
this.setupDefaultMaterial(orbit, Color.RED);
airspaces.add(orbit);
// Curtain around Snohomish County, WA
Curtain curtain = new Curtain();
curtain.setLocations(makeLatLon(SNOHOMISH_COUNTY));
curtain.setAltitudes(5000.0, 10000.0);
curtain.setTerrainConforming(true, true);
curtain.setValue(AVKey.DISPLAY_NAME, "Curtain around Snohomish County, WA.");
this.setupDefaultMaterial(curtain, Color.GREEN);
airspaces.add(curtain);
// Curtain around San Juan County, WA
curtain = new Curtain();
curtain.setLocations(makeLatLon(SAN_JUAN_COUNTY_2));
curtain.setAltitudes(5000.0, 10000.0);
curtain.setTerrainConforming(true, true);
curtain.setValue(AVKey.DISPLAY_NAME, "Curtain around San Juan County, WA.");
this.setupDefaultMaterial(curtain, Color.GREEN);
airspaces.add(curtain);
// Polygons of San Juan County, WA
Polygon poly = new Polygon();
poly.setLocations(makeLatLon(SAN_JUAN_COUNTY_1));
poly.setAltitudes(5000.0, 10000.0);
poly.setTerrainConforming(true, true);
poly.setValue(AVKey.DISPLAY_NAME, "Polygon of San Juan County, WA.");
this.setupDefaultMaterial(poly, Color.GREEN);
airspaces.add(poly);
poly = new Polygon();
poly.setLocations(makeLatLon(SAN_JUAN_COUNTY_3));
poly.setAltitudes(5000.0, 10000.0);
poly.setTerrainConforming(true, true);
poly.setValue(AVKey.DISPLAY_NAME, "Polygon of San Juan County, WA.");
this.setupDefaultMaterial(poly, Color.GREEN);
airspaces.add(poly);
// Polygon over the Sierra Nevada mountains.
poly = new Polygon();
poly.setLocations(Arrays.asList(
LatLon.fromDegrees(40.1323, -122.0911),
LatLon.fromDegrees(38.0062, -120.7711),
LatLon.fromDegrees(37.0562, -119.6226),
LatLon.fromDegrees(36.9231, -118.1829),
LatLon.fromDegrees(37.8211, -118.8557),
LatLon.fromDegrees(39.0906, -120.0304),
LatLon.fromDegrees(40.2609, -120.8295)));
poly.setAltitudes(0, 5000);
poly.setAltitudeDatum(AVKey.ABOVE_GROUND_LEVEL, AVKey.ABOVE_GROUND_REFERENCE);
poly.setValue(AVKey.DISPLAY_NAME, "Polygon over the Sierra Nevada mountains.");
this.setupDefaultMaterial(poly, Color.LIGHT_GRAY);
airspaces.add(poly);
// Continent sized polygon.
poly = new Polygon();
poly.setLocations(Arrays.asList(
LatLon.fromDegrees(-40, 60),
LatLon.fromDegrees(-40, 80),
LatLon.fromDegrees(40, 100),
LatLon.fromDegrees(40, 40)
));
poly.setAltitudes(100000.0, 500000.0);
poly.setTerrainConforming(true, true);
this.setupDefaultMaterial(poly, Color.RED);
airspaces.add(poly);
// PolyArc
PolyArc polyArc = new PolyArc();
polyArc.setLocations(Arrays.asList(
LatLon.fromDegrees(45.5, -122.0),
LatLon.fromDegrees(46.0, -122.0),
LatLon.fromDegrees(46.0, -121.0),
LatLon.fromDegrees(45.5, -121.0)));
polyArc.setAltitudes(5000.0, 10000.0);
polyArc.setRadius(30000.0);
polyArc.setAzimuths(Angle.fromDegrees(-45.0), Angle.fromDegrees(135.0));
polyArc.setTerrainConforming(false, false);
this.setupDefaultMaterial(polyArc, Color.GRAY);
airspaces.add(polyArc);
// Route
Route route = new Route();
route.setAltitudes(5000.0, 20000.0);
route.setWidth(20000.0);
route.setLocations(Arrays.asList(
LatLon.fromDegrees(43.0, -121.0),
LatLon.fromDegrees(44.0, -121.0),
LatLon.fromDegrees(44.0, -120.0),
LatLon.fromDegrees(43.0, -120.0)));
route.setTerrainConforming(false, false);
this.setupDefaultMaterial(route, Color.GREEN);
airspaces.add(route);
// Track
TrackAirspace track = new TrackAirspace();
track.setEnableInnerCaps(false);
double leftWidth = 100000d;
double rightWidth = 100000d;
double minAlt = 150000d;
double maxAlt = 250000d;
Box leg;
track.addLeg(LatLon.fromDegrees(40.4705, -117.9242), LatLon.fromDegrees(42.6139, -108.3518), minAlt, maxAlt,
leftWidth, rightWidth);
leg = track.addLeg(LatLon.fromDegrees(42.6139, -108.3518), LatLon.fromDegrees(44.9305, -97.6665),
minAlt / 2, maxAlt / 2, leftWidth, rightWidth);
leg.setTerrainConforming(false, false);
leg = track.addLeg(LatLon.fromDegrees(44.9305, -97.6665), LatLon.fromDegrees(47.0121, -94.9218), minAlt / 2,
maxAlt / 2, leftWidth, rightWidth);
leg.setTerrainConforming(false, false);
leg = track.addLeg(LatLon.fromDegrees(47.0121, -94.9218), LatLon.fromDegrees(44.7964, -68.4230), minAlt / 4,
maxAlt / 4, leftWidth, rightWidth);
leg.setTerrainConforming(false, false);
this.setupDefaultMaterial(track, Color.ORANGE);
airspaces.add(track);
track = new TrackAirspace();
leftWidth = 80000d;
rightWidth = 80000d;
minAlt = 150000d;
maxAlt = 250000d;
track.addLeg(LatLon.fromDegrees(29.9970, -108.6046), LatLon.fromDegrees(33.5132, -107.7544), minAlt / 6,
maxAlt / 6, leftWidth, rightWidth).setTerrainConforming(false, false);
track.addLeg(LatLon.fromDegrees(29.4047, -103.0465), LatLon.fromDegrees(34.4955, -102.2151), minAlt / 4,
maxAlt / 4, leftWidth, rightWidth).setTerrainConforming(false, true);
track.addLeg(LatLon.fromDegrees(28.9956, -99.8026), LatLon.fromDegrees(36.0133, -98.3489), minAlt / 2,
maxAlt / 2, leftWidth, rightWidth).setTerrainConforming(true, true);
track.addLeg(LatLon.fromDegrees(28.5986, -96.6126), LatLon.fromDegrees(36.8515, -95.0324), minAlt, maxAlt,
leftWidth, rightWidth).setTerrainConforming(true, false);
track.addLeg(LatLon.fromDegrees(30.4647, -94.1764), LatLon.fromDegrees(35.5636, -92.9371), minAlt / 2,
maxAlt / 2, leftWidth, rightWidth).setTerrainConforming(false, false);
track.addLeg(LatLon.fromDegrees(31.0959, -90.9424), LatLon.fromDegrees(35.1470, -89.4267), minAlt / 4,
maxAlt / 4, leftWidth, rightWidth).setTerrainConforming(false, true);
track.addLeg(LatLon.fromDegrees(31.5107, -88.5723), LatLon.fromDegrees(34.2444, -87.4563), minAlt / 6,
maxAlt / 6, leftWidth, rightWidth).setTerrainConforming(true, true);
this.setupDefaultMaterial(track, Color.MAGENTA);
airspaces.add(track);
// Sphere
SphereAirspace sphere = new SphereAirspace();
sphere.setLocation(LatLon.fromDegrees(47.7477, -122.6372));
sphere.setAltitude(5000.0);
sphere.setTerrainConforming(true);
sphere.setRadius(5000.0);
this.setupDefaultMaterial(sphere, Color.ORANGE);
airspaces.add(sphere);
sphere = new SphereAirspace();
sphere.setLocation(LatLon.fromDegrees(47.7477, -121.6372));
sphere.setAltitude(0.0);
sphere.setTerrainConforming(true);
sphere.setRadius(5000.0);
this.setupDefaultMaterial(sphere, Color.MAGENTA);
airspaces.add(sphere);
this.setAirspaces(airspaces);
}
public void doLoadIntersectingAirspaces()
{
ArrayList airspaces = new ArrayList();
double minAltitude = 1000;
double maxAltitude = 10000;
// Cylinder.
CappedCylinder cyl = new CappedCylinder();
cyl.setCenter(LatLon.fromDegrees(47.7477, -123.6372));
cyl.setRadius(30000.0);
cyl.setAltitudes(minAltitude, maxAltitude);
cyl.setTerrainConforming(false, false);
cyl.setValue(AVKey.DISPLAY_NAME, "30,000m Radius Cylinder. Top & bottom terrain conformance.");
this.setupDefaultMaterial(cyl, Color.BLUE);
airspaces.add(cyl);
// Radarc
PartialCappedCylinder partCyl = new PartialCappedCylinder();
partCyl.setCenter(LatLon.fromDegrees(46.7477, -123.6372));
partCyl.setAltitudes(minAltitude, maxAltitude);
partCyl.setTerrainConforming(false, false);
// To render a Radarc,
// (1) Specify inner radius and outer radius.
// (2) Specify start and stop azimuth.
partCyl.setRadii(15000.0, 30000.0);
partCyl.setAzimuths(Angle.fromDegrees(0.0), Angle.fromDegrees(90.0));
partCyl.setValue(AVKey.DISPLAY_NAME, "Partial Cylinder from 0 to 90 degrees.");
this.setupDefaultMaterial(partCyl, Color.DARK_GRAY);
airspaces.add(partCyl);
// Radarc
partCyl = new PartialCappedCylinder();
partCyl.setCenter(LatLon.fromDegrees(46.7477, -122.6372));
partCyl.setAltitudes(minAltitude, maxAltitude);
partCyl.setTerrainConforming(false, false);
// To render a Radarc,
// (1) Specify inner radius and outer radius.
// (2) Specify start and stop azimuth.
partCyl.setRadii(15000.0, 30000.0);
partCyl.setAzimuths(Angle.fromDegrees(90.0), Angle.fromDegrees(0.0));
partCyl.setValue(AVKey.DISPLAY_NAME, "Partial Cylinder from 90 to 0 degrees.");
this.setupDefaultMaterial(partCyl, Color.GRAY);
airspaces.add(partCyl);
// Cake
Cake cake = new Cake();
cake.setLayers(Arrays.asList(
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 10000.0, Angle.fromDegrees(190.0),
Angle.fromDegrees(170.0), 10000.0, 15000.0),
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 15000.0, Angle.fromDegrees(190.0),
Angle.fromDegrees(90.0), 16000.0, 21000.0),
new Cake.Layer(LatLon.fromDegrees(46.7477, -121.6372), 12500.0, Angle.fromDegrees(270.0),
Angle.fromDegrees(60.0), 22000.0, 27000.0)));
cake.getLayers().get(0).setTerrainConforming(false, false);
cake.getLayers().get(1).setTerrainConforming(false, false);
cake.getLayers().get(2).setTerrainConforming(false, false);
cake.setValue(AVKey.DISPLAY_NAME, "3 layer Cake.");
this.setupDefaultMaterial(cake, Color.YELLOW);
airspaces.add(cake);
cake = new Cake();
cake.setLayers(Arrays.asList(
new Cake.Layer(LatLon.fromDegrees(36, -121), 10000.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 10000.0, 15000.0),
new Cake.Layer(LatLon.fromDegrees(36.1, -121.1), 15000.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 16000.0, 21000.0),
new Cake.Layer(LatLon.fromDegrees(35.9, -120.9), 12500.0, Angle.fromDegrees(0.0),
Angle.fromDegrees(360.0), 22000.0, 27000.0)));
cake.getLayers().get(0).setTerrainConforming(false, false);
cake.getLayers().get(1).setTerrainConforming(false, false);
cake.getLayers().get(2).setTerrainConforming(false, false);
cake.setValue(AVKey.DISPLAY_NAME, "3 layer Cake. With disjoint layers.");
this.setupDefaultMaterial(cake, Color.MAGENTA);
airspaces.add(cake);
// Left Orbit
Orbit orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(minAltitude, maxAltitude);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.LEFT);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "LEFT Orbit.");
this.setupDefaultMaterial(orbit, Color.LIGHT_GRAY);
airspaces.add(orbit);
// Center Orbit
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(minAltitude, maxAltitude);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.CENTER);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "CENTER Orbit.");
this.setupDefaultMaterial(orbit, Color.GRAY);
airspaces.add(orbit);
// Right Orbit
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(45.7477, -123.6372), LatLon.fromDegrees(45.7477, -122.6372));
orbit.setAltitudes(minAltitude, maxAltitude);
orbit.setWidth(30000.0);
orbit.setOrbitType(Orbit.OrbitType.RIGHT);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "RIGHT Orbit.");
this.setupDefaultMaterial(orbit, Color.DARK_GRAY);
airspaces.add(orbit);
// Orbit from Los Angeles to New York
orbit = new Orbit();
orbit.setLocations(LatLon.fromDegrees(34.0489, -118.2481), LatLon.fromDegrees(40.7137, -74.0065));
orbit.setAltitudes(minAltitude, maxAltitude);
orbit.setWidth(500000.0);
orbit.setOrbitType(Orbit.OrbitType.CENTER);
orbit.setTerrainConforming(false, false);
orbit.setValue(AVKey.DISPLAY_NAME, "Orbit From L.A. to N.Y.");
this.setupDefaultMaterial(orbit, Color.RED);
airspaces.add(orbit);
this.setAirspaces(airspaces);
}
public void doZoomToAirspaces()
{
BasicOrbitView view = (BasicOrbitView) this.getWwd().getView();
Position center = Position.fromDegrees(46.7477, -122.6372, 0.0);
Angle heading = Angle.fromDegrees(0.0);
Angle pitch = Angle.fromDegrees(30.0);
double zoom = 600000.0;
view.addPanToAnimator(center, heading, pitch, zoom, true);
}
public void doSaveAirspaces(final ActionEvent e)
{
if (this.fileChooser == null)
{
this.fileChooser = new JFileChooser();
this.fileChooser.setCurrentDirectory(new File(Configuration.getCurrentWorkingDirectory()));
}
this.fileChooser.setDialogTitle("Choose Directory to Place Airspaces");
this.fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
this.fileChooser.setMultiSelectionEnabled(false);
int status = this.fileChooser.showSaveDialog(null);
if (status != JFileChooser.APPROVE_OPTION)
return;
final File dir = this.fileChooser.getSelectedFile();
if (dir == null)
return;
if (!dir.exists())
{
//noinspection ResultOfMethodCallIgnored
dir.mkdirs();
}
final ArrayList airspaces = new ArrayList();
Iterable iterable = this.aglAirspaces.getAirspaces();
for (Airspace a : iterable)
{
airspaces.add(a);
}
iterable = this.amslAirspaces.getAirspaces();
for (Airspace a : iterable)
{
airspaces.add(a);
}
Thread t = new Thread(new Runnable()
{
public void run()
{
try
{
java.text.DecimalFormat f = new java.text.DecimalFormat("####");
f.setMinimumIntegerDigits(4);
int counter = 0;
for (Airspace a : airspaces)
{
String xmlString = a.getRestorableState();
if (xmlString == null)
continue;
try
{
PrintWriter of = new PrintWriter(
new File(dir, a.getClass().getName() + "-" + f.format(counter++) + ".xml"));
of.write(xmlString);
of.flush();
of.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
finally
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
frame.setCursor(Cursor.getDefaultCursor());
((Component) e.getSource()).setEnabled(true);
}
});
}
}
});
((Component) e.getSource()).setEnabled(false);
frame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
t.start();
}
public void doReadAirspaces(final ActionEvent e)
{
if (this.fileChooser == null)
{
this.fileChooser = new JFileChooser();
this.fileChooser.setCurrentDirectory(new File(Configuration.getCurrentWorkingDirectory()));
}
this.fileChooser.setDialogTitle("Choose Airspace File Directory");
this.fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
this.fileChooser.setMultiSelectionEnabled(false);
int status = this.fileChooser.showOpenDialog(null);
if (status != JFileChooser.APPROVE_OPTION)
return;
final File dir = this.fileChooser.getSelectedFile();
if (dir == null)
return;
Thread t = new Thread(new Runnable()
{
public void run()
{
final ArrayList airspaces = new ArrayList();
try
{
File[] files = dir.listFiles(new FilenameFilter()
{
public boolean accept(File dir, String name)
{
return name.startsWith("gov.nasa.worldwind.render.airspaces") && name.endsWith(".xml");
}
});
for (File file : files)
{
String[] name = file.getName().split("-");
try
{
Class c = Class.forName(name[0]);
Airspace airspace = (Airspace) c.newInstance();
BufferedReader input = new BufferedReader(new FileReader(file));
String s = input.readLine();
airspace.restoreState(s);
airspaces.add(airspace);
AirspaceAttributes attribs = airspace.getAttributes();
if (!attribs.isDrawOutline())
{
Color color = attribs.getMaterial().getDiffuse();
attribs.setDrawOutline(true);
attribs.setOutlineMaterial(new Material(WWUtil.makeColorBrighter(color)));
}
}
catch (ClassNotFoundException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (InstantiationException e)
{
e.printStackTrace();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
finally
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
AirspacesController.this.setAirspaces(airspaces);
getWwd().redraw();
frame.setCursor(Cursor.getDefaultCursor());
((Component) e.getSource()).setEnabled(true);
}
});
}
}
});
((Component) e.getSource()).setEnabled(false);
frame.setCursor(new Cursor(Cursor.WAIT_CURSOR));
t.start();
}
}
public static void main(String[] args)
{
start("World Wind Airspaces", AppFrame.class);
}
protected static Iterable makeLatLon(double[] src, int offset, int length)
{
int numCoords = (int) Math.floor(length / 2.0);
LatLon[] dest = new LatLon[numCoords];
for (int i = 0; i < numCoords; i++)
{
double lonDegrees = src[offset + 2 * i];
double latDegrees = src[offset + 2 * i + 1];
dest[i] = LatLon.fromDegrees(latDegrees, lonDegrees);
}
return Arrays.asList(dest);
}
protected static Iterable makeLatLon(double[] src)
{
return makeLatLon(src, 0, src.length);
}
// Boundary data for San Juan and Snohomish Counties take from
// http://www.census.gov/geo/cob/bdy/co/co00ascii/co53_d00_ascii.zip
protected static final double[] SAN_JUAN_COUNTY_1 =
{
//-0.123026351250109E+03, 0.487022510493827E+02,
-0.123025486000000E+03, 0.487179660000000E+02,
-0.123019699000000E+03, 0.487213120000000E+02,
-0.123009787000000E+03, 0.487222910000000E+02,
-0.123007511000000E+03, 0.487188630000000E+02,
-0.123005086000000E+03, 0.486943420000000E+02,
-0.123014449000000E+03, 0.486849780000000E+02,
-0.123021215000000E+03, 0.486814160000000E+02,
-0.123042337000000E+03, 0.486756630000000E+02,
-0.123041645000000E+03, 0.486786330000000E+02,
-0.123035672000000E+03, 0.486853500000000E+02,
-0.123036360000000E+03, 0.486900800000000E+02,
-0.123047058000000E+03, 0.486957720000000E+02,
-0.123070427000000E+03, 0.486999710000000E+02,
-0.123040179000000E+03, 0.487172960000000E+02,
-0.123025486000000E+03, 0.487179660000000E+02,
};
protected static final double[] SAN_JUAN_COUNTY_2 =
{
//-0.122948050323932E+03, 0.485739411234568E+02,
-0.122906298643435E+03, 0.487142756789313E+02,
-0.122894599000000E+03, 0.487150300000000E+02,
-0.122883606017278E+03, 0.487133157521183E+02,
-0.122879724954535E+03, 0.487127105384329E+02,
-0.122875938000000E+03, 0.487121200000000E+02,
-0.122836802504198E+03, 0.486993713019117E+02,
-0.122834290842953E+03, 0.486985531083446E+02,
-0.122833124000000E+03, 0.486981730000000E+02,
-0.122831410808922E+03, 0.486973051154063E+02,
-0.122825683629670E+03, 0.486944037865925E+02,
-0.122808804479515E+03, 0.486858529865323E+02,
-0.122805788100163E+03, 0.486843249204562E+02,
-0.122802545000000E+03, 0.486826820000000E+02,
-0.122800267000000E+03, 0.486796200000000E+02,
-0.122761393485795E+03, 0.486676429790988E+02,
-0.122744791626046E+03, 0.486625279071718E+02,
-0.122743049000000E+03, 0.486619910000000E+02,
-0.122742776245752E+03, 0.486616237548803E+02,
-0.122742082000000E+03, 0.486606890000000E+02,
-0.122755031000000E+03, 0.486495120000000E+02,
-0.122762709974974E+03, 0.486457601003223E+02,
-0.122774165127982E+03, 0.486401631834124E+02,
-0.122783875000000E+03, 0.486354190000000E+02,
-0.122792147000000E+03, 0.486335020000000E+02,
-0.122806316669653E+03, 0.486217713784910E+02,
-0.122807583040252E+03, 0.486207229903106E+02,
-0.122809622000000E+03, 0.486190350000000E+02,
-0.122809583303260E+03, 0.486188448346238E+02,
-0.122808864000000E+03, 0.486153100000000E+02,
-0.122799010000000E+03, 0.486046830000000E+02,
-0.122798770000000E+03, 0.486023520000000E+02,
-0.122800217000000E+03, 0.486016900000000E+02,
-0.122801521572817E+03, 0.486000752686420E+02,
-0.122804869000000E+03, 0.485959320000000E+02,
-0.122804736685678E+03, 0.485955635328447E+02,
-0.122802617338743E+03, 0.485896616038081E+02,
-0.122801096000000E+03, 0.485854250000000E+02,
-0.122796913105296E+03, 0.485828999845133E+02,
-0.122787753320193E+03, 0.485773706559316E+02,
-0.122786586000000E+03, 0.485766660000000E+02,
-0.122771206000000E+03, 0.485624260000000E+02,
-0.122770349000000E+03, 0.485581060000000E+02,
-0.122772384000000E+03, 0.485521430000000E+02,
-0.122782618000000E+03, 0.485451910000000E+02,
-0.122788503000000E+03, 0.485303930000000E+02,
-0.122787596684858E+03, 0.485246062248558E+02,
-0.122787347000000E+03, 0.485230120000000E+02,
-0.122777467000000E+03, 0.485177990000000E+02,
-0.122779073275586E+03, 0.485091830812273E+02,
-0.122779124000000E+03, 0.485089110000000E+02,
-0.122799155517055E+03, 0.484953208059023E+02,
-0.122799759583816E+03, 0.484949109824973E+02,
-0.122800414000000E+03, 0.484944670000000E+02,
-0.122809344417182E+03, 0.484907496395120E+02,
-0.122816332000000E+03, 0.484878410000000E+02,
-0.122816392492828E+03, 0.484876896530700E+02,
-0.122817912000000E+03, 0.484838880000000E+02,
-0.122818113811431E+03, 0.484811078199731E+02,
-0.122818435504082E+03, 0.484766761409594E+02,
-0.122818482000648E+03, 0.484760355983364E+02,
-0.122819730000000E+03, 0.484588430000000E+02,
-0.122813100000000E+03, 0.484528560000000E+02,
-0.122810699656295E+03, 0.484489394154454E+02,
-0.122807708000000E+03, 0.484440580000000E+02,
-0.122806716195520E+03, 0.484419671792455E+02,
-0.122802509000000E+03, 0.484330980000000E+02,
-0.122803004619265E+03, 0.484309676207466E+02,
-0.122803326834080E+03, 0.484295826064757E+02,
-0.122803521000000E+03, 0.484287480000000E+02,
-0.122806510124273E+03, 0.484265382433425E+02,
-0.122812173045928E+03, 0.484223518403418E+02,
-0.122812208000000E+03, 0.484223260000000E+02,
-0.122825307995692E+03, 0.484240652785748E+02,
-0.122825803000000E+03, 0.484241310000000E+02,
-0.122852542484940E+03, 0.484208474850799E+02,
-0.122863360429977E+03, 0.484195190793902E+02,
-0.122866475017092E+03, 0.484191366190217E+02,
-0.122866865338919E+03, 0.484190886888710E+02,
-0.122867939205531E+03, 0.484189568218194E+02,
-0.122867996814560E+03, 0.484189497476327E+02,
-0.122874135000000E+03, 0.484181960000000E+02,
-0.122874527604161E+03, 0.484182203541858E+02,
-0.122883759000000E+03, 0.484187930000000E+02,
-0.122888474856222E+03, 0.484206350791676E+02,
-0.122893646000000E+03, 0.484226550000000E+02,
-0.122889016000000E+03, 0.484359470000000E+02,
-0.122903214000000E+03, 0.484369790000000E+02,
-0.122913888000000E+03, 0.484432310000000E+02,
-0.122917771000000E+03, 0.484397810000000E+02,
-0.122927683717092E+03, 0.484399602096806E+02,
-0.122928004000000E+03, 0.484399660000000E+02,
-0.122927964788402E+03, 0.484400111660268E+02,
-0.122916460000000E+03, 0.484532630000000E+02,
-0.122920099000000E+03, 0.484584280000000E+02,
-0.122926901000000E+03, 0.484608740000000E+02,
-0.122937881000000E+03, 0.484562210000000E+02,
-0.122950555015899E+03, 0.484535630706048E+02,
-0.122962009000000E+03, 0.484511610000000E+02,
-0.123001288000000E+03, 0.484556628590224E+02,
-0.123026267878952E+03, 0.484585258619868E+02,
-0.123029013724265E+03, 0.484588405698076E+02,
-0.123033178635901E+03, 0.484593179201736E+02,
-0.123038888830654E+03, 0.484599723790898E+02,
-0.123039156000000E+03, 0.484600030000000E+02,
-0.123058154000000E+03, 0.484715220000000E+02,
-0.123067675000000E+03, 0.484794970000000E+02,
-0.123070563309358E+03, 0.484802266082759E+02,
-0.123070833040893E+03, 0.484802947444538E+02,
-0.123076030355349E+03, 0.484816076244710E+02,
-0.123099948917862E+03, 0.484876496300162E+02,
-0.123119451000000E+03, 0.484925760000000E+02,
-0.123129287766067E+03, 0.484982542349179E+02,
-0.123134915117353E+03, 0.485015026015408E+02,
-0.123141478000000E+03, 0.485052910000000E+02,
-0.123144822701730E+03, 0.485083136865329E+02,
-0.123148640952156E+03, 0.485117643302889E+02,
-0.123150537321568E+03, 0.485134781244465E+02,
-0.123151065000000E+03, 0.485139550000000E+02,
-0.123152147442285E+03, 0.485153416540207E+02,
-0.123152738173008E+03, 0.485160984048828E+02,
-0.123163234000000E+03, 0.485295440000000E+02,
-0.123164057000000E+03, 0.485356220000000E+02,
-0.123161853000000E+03, 0.485392550000000E+02,
-0.123161750942688E+03, 0.485414834733667E+02,
-0.123161470000000E+03, 0.485476180000000E+02,
-0.123167656573858E+03, 0.485526319405021E+02,
-0.123172412000000E+03, 0.485564860000000E+02,
-0.123176266000000E+03, 0.485621310000000E+02,
-0.123176243708612E+03, 0.485624730166654E+02,
-0.123175852000000E+03, 0.485684830000000E+02,
-0.123171958000000E+03, 0.485722550000000E+02,
-0.123173061000000E+03, 0.485790860000000E+02,
-0.123184941000000E+03, 0.485869700000000E+02,
-0.123195467450664E+03, 0.485863505553890E+02,
-0.123196697396232E+03, 0.485862781774168E+02,
-0.123197754000000E+03, 0.485862160000000E+02,
-0.123198045125962E+03, 0.485864522812820E+02,
-0.123202680000000E+03, 0.485902140000000E+02,
-0.123203026000000E+03, 0.485961780000000E+02,
-0.123195725000000E+03, 0.486070550000000E+02,
-0.123179996129946E+03, 0.486207472995959E+02,
-0.123178425000000E+03, 0.486221150000000E+02,
-0.123151643000000E+03, 0.486236860000000E+02,
-0.123139705244805E+03, 0.486227863453916E+02,
-0.123135644582323E+03, 0.486201710055677E+02,
-0.123131377372596E+03, 0.486205150057834E+02,
-0.123107362000000E+03, 0.486224510000000E+02,
-0.123101647918870E+03, 0.486162765822218E+02,
-0.123098626049648E+03, 0.486130112657825E+02,
-0.123098462000000E+03, 0.486128340000000E+02,
-0.123098254000000E+03, 0.486100920000000E+02,
-0.123102074000000E+03, 0.486040350000000E+02,
-0.123101552000000E+03, 0.485978200000000E+02,
-0.123100979011718E+03, 0.485976923053470E+02,
-0.123087991970190E+03, 0.485947980476233E+02,
-0.123079379694944E+03, 0.485928787387418E+02,
-0.123079368517922E+03, 0.485928762478604E+02,
-0.123079334903513E+03, 0.485928687566419E+02,
-0.123078354245955E+03, 0.485926502098924E+02,
-0.123078029433353E+03, 0.485925778230151E+02,
-0.123077161967252E+03, 0.485923845018144E+02,
-0.123074727135920E+03, 0.485918418817440E+02,
-0.123074611000000E+03, 0.485918160000000E+02,
-0.123060040000000E+03, 0.485821050000000E+02,
-0.123056818600556E+03, 0.485785370170628E+02,
-0.123055637295811E+03, 0.485772286182611E+02,
-0.123049834129163E+03, 0.485708011012966E+02,
-0.123048403000000E+03, 0.485692160000000E+02,
-0.123037067007025E+03, 0.485647482308128E+02,
-0.123033669000000E+03, 0.485634090000000E+02,
-0.123025587194622E+03, 0.485622858881320E+02,
-0.123015046000000E+03, 0.485608210000000E+02,
-0.123014957175286E+03, 0.485608244377565E+02,
-0.123005887152572E+03, 0.485611754721491E+02,
-0.122994982694655E+03, 0.485615975041420E+02,
-0.122987296000000E+03, 0.485618950000000E+02,
-0.122986110000000E+03, 0.485699840000000E+02,
-0.122989649000000E+03, 0.485746680000000E+02,
-0.122995026000000E+03, 0.485781620000000E+02,
-0.123001291973563E+03, 0.485798454915671E+02,
-0.123003071284953E+03, 0.485803235426935E+02,
-0.123004800000000E+03, 0.485807880000000E+02,
-0.123016647000000E+03, 0.485802440000000E+02,
-0.123023206615953E+03, 0.485845746092944E+02,
-0.123028982347697E+03, 0.485883877041088E+02,
-0.123033093576815E+03, 0.485911019067628E+02,
-0.123034101000000E+03, 0.485917670000000E+02,
-0.123024902000000E+03, 0.485944840000000E+02,
-0.123023433000000E+03, 0.485994770000000E+02,
-0.123041189000000E+03, 0.486119470000000E+02,
-0.123046453150843E+03, 0.486114965755598E+02,
-0.123046530000000E+03, 0.486114900000000E+02,
-0.123048652000000E+03, 0.486210020000000E+02,
-0.123040078194353E+03, 0.486254322142389E+02,
-0.123023495000000E+03, 0.486340010000000E+02,
-0.123015592000000E+03, 0.486425670000000E+02,
-0.123014829000000E+03, 0.486475030000000E+02,
-0.123009977399319E+03, 0.486549816855750E+02,
-0.123009924000000E+03, 0.486550640000000E+02,
-0.123001295006939E+03, 0.486600601213626E+02,
-0.122999889835340E+03, 0.486608737050326E+02,
-0.122988884000000E+03, 0.486672460000000E+02,
-0.122984853000000E+03, 0.486726860000000E+02,
-0.122970595802002E+03, 0.486809490071059E+02,
-0.122949116000000E+03, 0.486933980000000E+02,
-0.122941316000000E+03, 0.487029040000000E+02,
-0.122942367000000E+03, 0.487067230000000E+02,
-0.122927109877131E+03, 0.487110138483226E+02,
-0.122918837934242E+03, 0.487133402143466E+02,
-0.122918252000000E+03, 0.487135050000000E+02,
-0.122908658361456E+03, 0.487141235388230E+02,
-0.122907454714043E+03, 0.487142011426071E+02,
-0.122906298643435E+03, 0.487142756789313E+02,
};
protected static final double[] SAN_JUAN_COUNTY_3 =
{
//-0.123174473648561E+03, 0.486648342044502E+02,
-0.123172066000000E+03, 0.486798660000000E+02,
-0.123147990000000E+03, 0.486680010000000E+02,
-0.123133285875321E+03, 0.486583191438863E+02,
-0.123130962000000E+03, 0.486567890000000E+02,
-0.123122016049879E+03, 0.486470646274710E+02,
-0.123106165000000E+03, 0.486334730000000E+02,
-0.123119677246557E+03, 0.486329724058636E+02,
-0.123134956336931E+03, 0.486372395392956E+02,
-0.123170932260699E+03, 0.486515091289271E+02,
-0.123197404105632E+03, 0.486620089945159E+02,
-0.123215917000000E+03, 0.486693520000000E+02,
-0.123229744313989E+03, 0.486785441581480E+02,
-0.123233070031572E+03, 0.486807550374269E+02,
-0.123237148000000E+03, 0.486834660000000E+02,
-0.123237135383772E+03, 0.486835850832961E+02,
-0.123236567000000E+03, 0.486889500000000E+02,
-0.123213499856684E+03, 0.486896934099409E+02,
-0.123212892000000E+03, 0.486897130000000E+02,
-0.123212464368268E+03, 0.486895683569085E+02,
-0.123202992056872E+03, 0.486863644216061E+02,
-0.123197953000000E+03, 0.486846600000000E+02,
-0.123186997647353E+03, 0.486848970569698E+02,
-0.123186076000000E+03, 0.486849170000000E+02,
-0.123184143390981E+03, 0.486842202399606E+02,
-0.123183803136584E+03, 0.486840975686572E+02,
-0.123172066000000E+03, 0.486798660000000E+02,
};
protected static final double[] SNOHOMISH_COUNTY =
{
//-0.121733244893996E+03, 0.482266785925926E+02,
-0.121835846000000E+03, 0.482980130000000E+02,
-0.121706923000000E+03, 0.482980520000000E+02,
-0.121684141000000E+03, 0.482985310000000E+02,
-0.121636515000000E+03, 0.482985310000000E+02,
-0.121577636000000E+03, 0.482992320000000E+02,
-0.121577236000000E+03, 0.482974320000000E+02,
-0.121568862000000E+03, 0.482972670000000E+02,
-0.121560180000000E+03, 0.482970960000000E+02,
-0.121534083000000E+03, 0.482963750000000E+02,
-0.121534083000000E+03, 0.482963750000000E+02,
-0.121526720000000E+03, 0.482962360000000E+02,
-0.121526720000000E+03, 0.482962360000000E+02,
-0.121428086000000E+03, 0.482959340000000E+02,
-0.121414025000000E+03, 0.482959340000000E+02,
-0.121414025000000E+03, 0.482959340000000E+02,
-0.121413600000000E+03, 0.482959340000000E+02,
-0.121413600000000E+03, 0.482959340000000E+02,
-0.121126218000000E+03, 0.482960420000000E+02,
-0.121014631000000E+03, 0.482956020000000E+02,
-0.121014631000000E+03, 0.482956020000000E+02,
-0.121001414000000E+03, 0.482955480000000E+02,
-0.121001414000000E+03, 0.482955480000000E+02,
-0.121000315000000E+03, 0.482947480000000E+02,
-0.121000315000000E+03, 0.482941480000000E+02,
-0.121001215000000E+03, 0.482895470000000E+02,
-0.121002615000000E+03, 0.482859470000000E+02,
-0.121009915000000E+03, 0.482845470000000E+02,
-0.121011315000000E+03, 0.482830470000000E+02,
-0.121011615000000E+03, 0.482804470000000E+02,
-0.121010115000000E+03, 0.482781470000000E+02,
-0.121004314000000E+03, 0.482729470000000E+02,
-0.121004614000000E+03, 0.482699470000000E+02,
-0.121003914000000E+03, 0.482672470000000E+02,
-0.120999864000000E+03, 0.482624520000000E+02,
-0.120991213000000E+03, 0.482558470000000E+02,
-0.120986913000000E+03, 0.482543480000000E+02,
-0.120982613000000E+03, 0.482515480000000E+02,
-0.120980813000000E+03, 0.482495480000000E+02,
-0.120980613000000E+03, 0.482470480000000E+02,
-0.120980113000000E+03, 0.482461480000000E+02,
-0.120972213000000E+03, 0.482351480000000E+02,
-0.120964613000000E+03, 0.482306480000000E+02,
-0.120962013000000E+03, 0.482301480000000E+02,
-0.120959613000000E+03, 0.482282480000000E+02,
-0.120959313000000E+03, 0.482270480000000E+02,
-0.120962613000000E+03, 0.482208470000000E+02,
-0.120964613000000E+03, 0.482145470000000E+02,
-0.120963912000000E+03, 0.482110470000000E+02,
-0.120963184000000E+03, 0.482107330000000E+02,
-0.120963184000000E+03, 0.482107330000000E+02,
-0.120951312000000E+03, 0.482091470000000E+02,
-0.120946812000000E+03, 0.482014470000000E+02,
-0.120940338000000E+03, 0.481999570000000E+02,
-0.120932512000000E+03, 0.481972480000000E+02,
-0.120923112000000E+03, 0.481913480000000E+02,
-0.120919512000000E+03, 0.481881480000000E+02,
-0.120916112000000E+03, 0.481796480000000E+02,
-0.120911411000000E+03, 0.481760480000000E+02,
-0.120908811000000E+03, 0.481728480000000E+02,
-0.120906211000000E+03, 0.481638480000000E+02,
-0.120906211000000E+03, 0.481638480000000E+02,
-0.120915811000000E+03, 0.481594470000000E+02,
-0.120923511000000E+03, 0.481606470000000E+02,
-0.120927712000000E+03, 0.481618470000000E+02,
-0.120930812000000E+03, 0.481616470000000E+02,
-0.120933112000000E+03, 0.481592460000000E+02,
-0.120932512000000E+03, 0.481571460000000E+02,
-0.120932812000000E+03, 0.481569460000000E+02,
-0.120939112000000E+03, 0.481551460000000E+02,
-0.120941712000000E+03, 0.481555460000000E+02,
-0.120947212000000E+03, 0.481551460000000E+02,
-0.120954512000000E+03, 0.481525460000000E+02,
-0.120955012000000E+03, 0.481518450000000E+02,
-0.120955112000000E+03, 0.481498450000000E+02,
-0.120959312000000E+03, 0.481457450000000E+02,
-0.120962412000000E+03, 0.481438450000000E+02,
-0.120964612000000E+03, 0.481411450000000E+02,
-0.120964112000000E+03, 0.481333450000000E+02,
-0.120961612000000E+03, 0.481309450000000E+02,
-0.120958112000000E+03, 0.481292450000000E+02,
-0.120956112000000E+03, 0.481263450000000E+02,
-0.120956377000000E+03, 0.481245810000000E+02,
-0.120956377000000E+03, 0.481245810000000E+02,
-0.120956712000000E+03, 0.481236450000000E+02,
-0.120955611000000E+03, 0.481211450000000E+02,
-0.120951411000000E+03, 0.481165450000000E+02,
-0.120948511000000E+03, 0.481155450000000E+02,
-0.120945973000000E+03, 0.481153350000000E+02,
-0.120945973000000E+03, 0.481153350000000E+02,
-0.120946411000000E+03, 0.481134450000000E+02,
-0.120947611000000E+03, 0.481121440000000E+02,
-0.120950611000000E+03, 0.481116440000000E+02,
-0.120952911000000E+03, 0.481105440000000E+02,
-0.120952911000000E+03, 0.481105440000000E+02,
-0.120954211000000E+03, 0.481089440000000E+02,
-0.120956611000000E+03, 0.481081440000000E+02,
-0.120961976000000E+03, 0.481093480000000E+02,
-0.120962911000000E+03, 0.481097440000000E+02,
-0.120971012000000E+03, 0.481092440000000E+02,
-0.120971812000000E+03, 0.481083440000000E+02,
-0.120970812000000E+03, 0.481067440000000E+02,
-0.120971811000000E+03, 0.481035430000000E+02,
-0.120974911000000E+03, 0.481019430000000E+02,
-0.120979712000000E+03, 0.480970430000000E+02,
-0.120980011000000E+03, 0.480954430000000E+02,
-0.120980911000000E+03, 0.480944430000000E+02,
-0.120984212000000E+03, 0.480932430000000E+02,
-0.120985812000000E+03, 0.480937430000000E+02,
-0.120998412000000E+03, 0.480885420000000E+02,
-0.121004012000000E+03, 0.480812420000000E+02,
-0.121015012000000E+03, 0.480752410000000E+02,
-0.121022612000000E+03, 0.480782410000000E+02,
-0.121031412000000E+03, 0.480782400000000E+02,
-0.121035612000000E+03, 0.480765400000000E+02,
-0.121036412000000E+03, 0.480753400000000E+02,
-0.121040012000000E+03, 0.480731400000000E+02,
-0.121047812000000E+03, 0.480704390000000E+02,
-0.121052112000000E+03, 0.480702390000000E+02,
-0.121052112000000E+03, 0.480702390000000E+02,
-0.121062436000000E+03, 0.480702140000000E+02,
-0.121062436000000E+03, 0.480702140000000E+02,
-0.121071913000000E+03, 0.480673380000000E+02,
-0.121080613000000E+03, 0.480618380000000E+02,
-0.121082313000000E+03, 0.480618380000000E+02,
-0.121089213000000E+03, 0.480648380000000E+02,
-0.121094513000000E+03, 0.480646370000000E+02,
-0.121099513000000E+03, 0.480631370000000E+02,
-0.121100513000000E+03, 0.480626370000000E+02,
-0.121101713000000E+03, 0.480604370000000E+02,
-0.121103813000000E+03, 0.480581370000000E+02,
-0.121107913000000E+03, 0.480567370000000E+02,
-0.121114413000000E+03, 0.480577360000000E+02,
-0.121116913000000E+03, 0.480571360000000E+02,
-0.121120013000000E+03, 0.480516360000000E+02,
-0.121122913000000E+03, 0.480499360000000E+02,
-0.121128626000000E+03, 0.480479250000000E+02,
-0.121131500000000E+03, 0.480439860000000E+02,
-0.121138507000000E+03, 0.480438970000000E+02,
-0.121153476000000E+03, 0.480407030000000E+02,
-0.121153248000000E+03, 0.480385970000000E+02,
-0.121149034000000E+03, 0.480338950000000E+02,
-0.121149001000000E+03, 0.480303410000000E+02,
-0.121141174000000E+03, 0.480254900000000E+02,
-0.121130671000000E+03, 0.480203750000000E+02,
-0.121129399000000E+03, 0.480184260000000E+02,
-0.121128654000000E+03, 0.480152360000000E+02,
-0.121125737000000E+03, 0.480104310000000E+02,
-0.121123536000000E+03, 0.480083950000000E+02,
-0.121118123000000E+03, 0.480064710000000E+02,
-0.121117212000000E+03, 0.479998350000000E+02,
-0.121118112000000E+03, 0.479976350000000E+02,
-0.121119612000000E+03, 0.479967350000000E+02,
-0.121121213000000E+03, 0.479965350000000E+02,
-0.121124313000000E+03, 0.479943350000000E+02,
-0.121130413000000E+03, 0.479870340000000E+02,
-0.121134260000000E+03, 0.479855460000000E+02,
-0.121134260000000E+03, 0.479855460000000E+02,
-0.121139988000000E+03, 0.479833340000000E+02,
-0.121147013000000E+03, 0.479814340000000E+02,
-0.121148382000000E+03, 0.479785260000000E+02,
-0.121148382000000E+03, 0.479785260000000E+02,
-0.121148715000000E+03, 0.479777300000000E+02,
-0.121148613000000E+03, 0.479701330000000E+02,
-0.121155413000000E+03, 0.479618330000000E+02,
-0.121158813000000E+03, 0.479592330000000E+02,
-0.121163213000000E+03, 0.479579330000000E+02,
-0.121164613000000E+03, 0.479562330000000E+02,
-0.121164713000000E+03, 0.479536330000000E+02,
-0.121163313000000E+03, 0.479518330000000E+02,
-0.121161413000000E+03, 0.479476330000000E+02,
-0.121161913000000E+03, 0.479447330000000E+02,
-0.121166313000000E+03, 0.479381330000000E+02,
-0.121170213000000E+03, 0.479370330000000E+02,
-0.121170913000000E+03, 0.479364330000000E+02,
-0.121172713000000E+03, 0.479337320000000E+02,
-0.121172813000000E+03, 0.479315320000000E+02,
-0.121172813000000E+03, 0.479315320000000E+02,
-0.121170813000000E+03, 0.479249320000000E+02,
-0.121178913000000E+03, 0.479195320000000E+02,
-0.121179513000000E+03, 0.479188320000000E+02,
-0.121179413000000E+03, 0.479175320000000E+02,
-0.121173013000000E+03, 0.479149320000000E+02,
-0.121171913000000E+03, 0.479140320000000E+02,
-0.121171213000000E+03, 0.479126320000000E+02,
-0.121172813000000E+03, 0.479087320000000E+02,
-0.121175613000000E+03, 0.479066320000000E+02,
-0.121180113000000E+03, 0.478992320000000E+02,
-0.121178113000000E+03, 0.478958320000000E+02,
-0.121176813000000E+03, 0.478950320000000E+02,
-0.121175113000000E+03, 0.478857320000000E+02,
-0.121166012000000E+03, 0.478792320000000E+02,
-0.121163112000000E+03, 0.478792320000000E+02,
-0.121160112000000E+03, 0.478807320000000E+02,
-0.121157812000000E+03, 0.478788330000000E+02,
-0.121157912000000E+03, 0.478766330000000E+02,
-0.121157512000000E+03, 0.478757330000000E+02,
-0.121155007000000E+03, 0.478718290000000E+02,
-0.121152512000000E+03, 0.478699330000000E+02,
-0.121151712000000E+03, 0.478679330000000E+02,
-0.121151649000000E+03, 0.478662060000000E+02,
-0.121151649000000E+03, 0.478662060000000E+02,
-0.121150012000000E+03, 0.478618330000000E+02,
-0.121147612000000E+03, 0.478594330000000E+02,
-0.121147012000000E+03, 0.478569330000000E+02,
-0.121150712000000E+03, 0.478545330000000E+02,
-0.121152612000000E+03, 0.478521320000000E+02,
-0.121153712000000E+03, 0.478458320000000E+02,
-0.121149212000000E+03, 0.478438320000000E+02,
-0.121138612000000E+03, 0.478429330000000E+02,
-0.121133212000000E+03, 0.478403330000000E+02,
-0.121126611000000E+03, 0.478392330000000E+02,
-0.121123211000000E+03, 0.478381330000000E+02,
-0.121121311000000E+03, 0.478370330000000E+02,
-0.121121211000000E+03, 0.478331330000000E+02,
-0.121120511000000E+03, 0.478317330000000E+02,
-0.121119111000000E+03, 0.478310330000000E+02,
-0.121119111000000E+03, 0.478310330000000E+02,
-0.121107411000000E+03, 0.478288330000000E+02,
-0.121091611000000E+03, 0.478324340000000E+02,
-0.121078011000000E+03, 0.478343340000000E+02,
-0.121076611000000E+03, 0.478320340000000E+02,
-0.121075211000000E+03, 0.478311340000000E+02,
-0.121070111000000E+03, 0.478301340000000E+02,
-0.121070710000000E+03, 0.478260340000000E+02,
-0.121075011000000E+03, 0.478216340000000E+02,
-0.121078706000000E+03, 0.478187090000000E+02,
-0.121078706000000E+03, 0.478187090000000E+02,
-0.121081711000000E+03, 0.478155340000000E+02,
-0.121082111000000E+03, 0.478126340000000E+02,
-0.121086345000000E+03, 0.478073260000000E+02,
-0.121086345000000E+03, 0.478073260000000E+02,
-0.121093611000000E+03, 0.477997330000000E+02,
-0.121099711000000E+03, 0.477969330000000E+02,
-0.121103211000000E+03, 0.477967330000000E+02,
-0.121106411000000E+03, 0.477950330000000E+02,
-0.121109211000000E+03, 0.477923330000000E+02,
-0.121109211000000E+03, 0.477887330000000E+02,
-0.121111511000000E+03, 0.477876330000000E+02,
-0.121115711000000E+03, 0.477872330000000E+02,
-0.121120411000000E+03, 0.477841330000000E+02,
-0.121120511000000E+03, 0.477824330000000E+02,
-0.121119010000000E+03, 0.477799330000000E+02,
-0.121119010000000E+03, 0.477799330000000E+02,
-0.121187140000000E+03, 0.477801070000000E+02,
-0.121192721333333E+03, 0.477797896666667E+02,
-0.121195512000000E+03, 0.477791310000000E+02,
-0.121232875000000E+03, 0.477792970000000E+02,
-0.121232875000000E+03, 0.477792970000000E+02,
-0.121243947000000E+03, 0.477793470000000E+02,
-0.121243947000000E+03, 0.477793470000000E+02,
-0.121455615000000E+03, 0.477803280000000E+02,
-0.121455715000000E+03, 0.477783280000000E+02,
-0.121485155000000E+03, 0.477779400000000E+02,
-0.121500513000000E+03, 0.477777330000000E+02,
-0.121584519000000E+03, 0.477775260000000E+02,
-0.121584537000000E+03, 0.477767260000000E+02,
-0.121610457000000E+03, 0.477767880000000E+02,
-0.121610457000000E+03, 0.477767880000000E+02,
-0.121645526000000E+03, 0.477768710000000E+02,
-0.121645526000000E+03, 0.477768710000000E+02,
-0.121666777000000E+03, 0.477769220000000E+02,
-0.121751227000000E+03, 0.477771230000000E+02,
-0.121751227000000E+03, 0.477771230000000E+02,
-0.121763454000000E+03, 0.477769110000000E+02,
-0.121763454000000E+03, 0.477769110000000E+02,
-0.121838850000000E+03, 0.477771630000000E+02,
-0.121838850000000E+03, 0.477771630000000E+02,
-0.121849653000000E+03, 0.477772230000000E+02,
-0.121850431000000E+03, 0.477772150000000E+02,
-0.121863172000000E+03, 0.477772230000000E+02,
-0.121863172000000E+03, 0.477772230000000E+02,
-0.121864759000000E+03, 0.477772230000000E+02,
-0.121864759000000E+03, 0.477772230000000E+02,
-0.121887572000000E+03, 0.477765440000000E+02,
-0.121922989000000E+03, 0.477769250000000E+02,
-0.121928146000000E+03, 0.477769710000000E+02,
-0.121928146000000E+03, 0.477769710000000E+02,
-0.121932762000000E+03, 0.477768940000000E+02,
-0.121932762000000E+03, 0.477768940000000E+02,
-0.121943467000000E+03, 0.477766740000000E+02,
-0.121943467000000E+03, 0.477766740000000E+02,
-0.121960557000000E+03, 0.477763290000000E+02,
-0.121960557000000E+03, 0.477763290000000E+02,
-0.121967149000000E+03, 0.477761380000000E+02,
-0.121967149000000E+03, 0.477761380000000E+02,
-0.121967576000000E+03, 0.477761920000000E+02,
-0.121967576000000E+03, 0.477761920000000E+02,
-0.121967660000000E+03, 0.477761880000000E+02,
-0.121967660000000E+03, 0.477761880000000E+02,
-0.121967910000000E+03, 0.477761770000000E+02,
-0.121968079000000E+03, 0.477761690000000E+02,
-0.121968079000000E+03, 0.477761690000000E+02,
-0.121975389000000E+03, 0.477758870000000E+02,
-0.121975389000000E+03, 0.477758870000000E+02,
-0.121999651000000E+03, 0.477752840000000E+02,
-0.121999651000000E+03, 0.477752840000000E+02,
-0.122001512000000E+03, 0.477752840000000E+02,
-0.122001512000000E+03, 0.477752840000000E+02,
-0.122010148000000E+03, 0.477753390000000E+02,
-0.122010148000000E+03, 0.477753390000000E+02,
-0.122014113000000E+03, 0.477753640000000E+02,
-0.122014113000000E+03, 0.477753640000000E+02,
-0.122023485000000E+03, 0.477754310000000E+02,
-0.122036019000000E+03, 0.477757070000000E+02,
-0.122045062000000E+03, 0.477755640000000E+02,
-0.122053927000000E+03, 0.477754290000000E+02,
-0.122053927000000E+03, 0.477754290000000E+02,
-0.122054706000000E+03, 0.477754290000000E+02,
-0.122067798000000E+03, 0.477756200000000E+02,
-0.122074267000000E+03, 0.477757340000000E+02,
-0.122076342000000E+03, 0.477757650000000E+02,
-0.122080600000000E+03, 0.477757260000000E+02,
-0.122080600000000E+03, 0.477757260000000E+02,
-0.122082232000000E+03, 0.477756730000000E+02,
-0.122083026000000E+03, 0.477756420000000E+02,
-0.122083026000000E+03, 0.477756420000000E+02,
-0.122091044000000E+03, 0.477756720000000E+02,
-0.122093211000000E+03, 0.477756710000000E+02,
-0.122093211000000E+03, 0.477756710000000E+02,
-0.122094518000000E+03, 0.477756700000000E+02,
-0.122094518000000E+03, 0.477756700000000E+02,
-0.122095362000000E+03, 0.477756700000000E+02,
-0.122095362000000E+03, 0.477756700000000E+02,
-0.122100848000000E+03, 0.477756670000000E+02,
-0.122100848000000E+03, 0.477756670000000E+02,
-0.122101443000000E+03, 0.477756670000000E+02,
-0.122101443000000E+03, 0.477756670000000E+02,
-0.122102608000000E+03, 0.477756660000000E+02,
-0.122102608000000E+03, 0.477756660000000E+02,
-0.122105900000000E+03, 0.477756640000000E+02,
-0.122107258000000E+03, 0.477756640000000E+02,
-0.122108921000000E+03, 0.477756640000000E+02,
-0.122108921000000E+03, 0.477756640000000E+02,
-0.122111873000000E+03, 0.477756620000000E+02,
-0.122111873000000E+03, 0.477756620000000E+02,
-0.122112797000000E+03, 0.477756610000000E+02,
-0.122116410000000E+03, 0.477756580000000E+02,
-0.122116410000000E+03, 0.477756580000000E+02,
-0.122118122000000E+03, 0.477756570000000E+02,
-0.122118122000000E+03, 0.477756570000000E+02,
-0.122131641000000E+03, 0.477757940000000E+02,
-0.122131641000000E+03, 0.477757940000000E+02,
-0.122151767000000E+03, 0.477760190000000E+02,
-0.122151767000000E+03, 0.477760190000000E+02,
-0.122152866000000E+03, 0.477760200000000E+02,
-0.122152866000000E+03, 0.477760200000000E+02,
-0.122153636000000E+03, 0.477760200000000E+02,
-0.122153636000000E+03, 0.477760200000000E+02,
-0.122154036000000E+03, 0.477760200000000E+02,
-0.122154536000000E+03, 0.477761200000000E+02,
-0.122154836000000E+03, 0.477760200000000E+02,
-0.122154836000000E+03, 0.477760200000000E+02,
-0.122158036000000E+03, 0.477760200000000E+02,
-0.122158036000000E+03, 0.477760200000000E+02,
-0.122164036000000E+03, 0.477760200000000E+02,
-0.122166936000000E+03, 0.477761200000000E+02,
-0.122169564000000E+03, 0.477761200000000E+02,
-0.122169836000000E+03, 0.477761200000000E+02,
-0.122171921000000E+03, 0.477761200000000E+02,
-0.122171921000000E+03, 0.477761200000000E+02,
-0.122175429000000E+03, 0.477761200000000E+02,
-0.122181537000000E+03, 0.477763200000000E+02,
-0.122187252000000E+03, 0.477762360000000E+02,
-0.122191037000000E+03, 0.477762200000000E+02,
-0.122191037000000E+03, 0.477762200000000E+02,
-0.122201737000000E+03, 0.477764200000000E+02,
-0.122201737000000E+03, 0.477764200000000E+02,
-0.122203237000000E+03, 0.477764200000000E+02,
-0.122203237000000E+03, 0.477764200000000E+02,
-0.122207037000000E+03, 0.477764200000000E+02,
-0.122212437000000E+03, 0.477765200000000E+02,
-0.122212437000000E+03, 0.477765200000000E+02,
-0.122216937000000E+03, 0.477765200000000E+02,
-0.122220261000000E+03, 0.477765740000000E+02,
-0.122223137000000E+03, 0.477766200000000E+02,
-0.122223137000000E+03, 0.477766200000000E+02,
-0.122226137000000E+03, 0.477766200000000E+02,
-0.122226137000000E+03, 0.477766200000000E+02,
-0.122227282000000E+03, 0.477766370000000E+02,
-0.122227282000000E+03, 0.477766370000000E+02,
-0.122231138000000E+03, 0.477766940000000E+02,
-0.122231138000000E+03, 0.477766940000000E+02,
-0.122232937000000E+03, 0.477767200000000E+02,
-0.122232937000000E+03, 0.477767200000000E+02,
-0.122237537000000E+03, 0.477768200000000E+02,
-0.122237537000000E+03, 0.477768200000000E+02,
-0.122237596000000E+03, 0.477768200000000E+02,
-0.122237596000000E+03, 0.477768200000000E+02,
-0.122243862000000E+03, 0.477768910000000E+02,
-0.122245475000000E+03, 0.477768170000000E+02,
-0.122248692000000E+03, 0.477766710000000E+02,
-0.122248692000000E+03, 0.477766710000000E+02,
-0.122249137000000E+03, 0.477768190000000E+02,
-0.122249137000000E+03, 0.477768190000000E+02,
-0.122253138000000E+03, 0.477769190000000E+02,
-0.122257838000000E+03, 0.477769190000000E+02,
-0.122257838000000E+03, 0.477769190000000E+02,
-0.122260738000000E+03, 0.477769190000000E+02,
-0.122260738000000E+03, 0.477769190000000E+02,
-0.122263338000000E+03, 0.477769190000000E+02,
-0.122263338000000E+03, 0.477769190000000E+02,
-0.122265175000000E+03, 0.477768320000000E+02,
-0.122265175000000E+03, 0.477768320000000E+02,
-0.122265438000000E+03, 0.477768190000000E+02,
-0.122265438000000E+03, 0.477768190000000E+02,
-0.122266838000000E+03, 0.477770190000000E+02,
-0.122271038000000E+03, 0.477770190000000E+02,
-0.122281539000000E+03, 0.477770190000000E+02,
-0.122281539000000E+03, 0.477770190000000E+02,
-0.122284239000000E+03, 0.477770190000000E+02,
-0.122287039000000E+03, 0.477771190000000E+02,
-0.122288478000000E+03, 0.477772360000000E+02,
-0.122290339000000E+03, 0.477773190000000E+02,
-0.122293739000000E+03, 0.477772190000000E+02,
-0.122297939000000E+03, 0.477773190000000E+02,
-0.122303039000000E+03, 0.477774190000000E+02,
-0.122304039000000E+03, 0.477774190000000E+02,
-0.122305739000000E+03, 0.477773190000000E+02,
-0.122305739000000E+03, 0.477773190000000E+02,
-0.122308339000000E+03, 0.477774190000000E+02,
-0.122309640000000E+03, 0.477774190000000E+02,
-0.122309640000000E+03, 0.477774190000000E+02,
-0.122313740000000E+03, 0.477774190000000E+02,
-0.122318040000000E+03, 0.477775190000000E+02,
-0.122323040000000E+03, 0.477775190000000E+02,
-0.122324640000000E+03, 0.477775190000000E+02,
-0.122326540000000E+03, 0.477776190000000E+02,
-0.122329940000000E+03, 0.477776190000000E+02,
-0.122335340000000E+03, 0.477776190000000E+02,
-0.122337541000000E+03, 0.477776190000000E+02,
-0.122346241000000E+03, 0.477777190000000E+02,
-0.122347641000000E+03, 0.477777190000000E+02,
-0.122347641000000E+03, 0.477777190000000E+02,
-0.122351741000000E+03, 0.477777190000000E+02,
-0.122351741000000E+03, 0.477777190000000E+02,
-0.122356141000000E+03, 0.477777190000000E+02,
-0.122358041000000E+03, 0.477778190000000E+02,
-0.122358041000000E+03, 0.477778190000000E+02,
-0.122361541000000E+03, 0.477777190000000E+02,
-0.122364141000000E+03, 0.477778190000000E+02,
-0.122364141000000E+03, 0.477778190000000E+02,
-0.122366842000000E+03, 0.477778190000000E+02,
-0.122372142000000E+03, 0.477778190000000E+02,
-0.122372142000000E+03, 0.477778190000000E+02,
-0.122377442000000E+03, 0.477779190000000E+02,
-0.122377442000000E+03, 0.477779190000000E+02,
-0.122380042000000E+03, 0.477779190000000E+02,
-0.122380042000000E+03, 0.477779190000000E+02,
-0.122382742000000E+03, 0.477779190000000E+02,
-0.122386961000000E+03, 0.477779190000000E+02,
-0.122386961000000E+03, 0.477779190000000E+02,
-0.122388142000000E+03, 0.477779190000000E+02,
-0.122388142000000E+03, 0.477779190000000E+02,
-0.122389442000000E+03, 0.477779190000000E+02,
-0.122389442000000E+03, 0.477779190000000E+02,
-0.122393142000000E+03, 0.477780190000000E+02,
-0.122394543000000E+03, 0.477779190000000E+02,
-0.122396421740573E+03, 0.477779275945007E+02,
-0.122396421740573E+03, 0.477779275945007E+02,
-0.122397043000000E+03, 0.477797190000000E+02,
-0.122396534465244E+03, 0.477854364424491E+02,
-0.122394944000000E+03, 0.478033180000000E+02,
-0.122392044000000E+03, 0.478077180000000E+02,
-0.122384862811656E+03, 0.478138072035186E+02,
-0.122380307756354E+03, 0.478176696086589E+02,
-0.122374217477324E+03, 0.478228337885573E+02,
-0.122360724049282E+03, 0.478342753808922E+02,
-0.122353244000000E+03, 0.478406180000000E+02,
-0.122350684564244E+03, 0.478413056096062E+02,
-0.122348752434043E+03, 0.478418246893617E+02,
-0.122346544000000E+03, 0.478424180000000E+02,
-0.122341304034102E+03, 0.478458319171763E+02,
-0.122339944000000E+03, 0.478467180000000E+02,
-0.122339827791549E+03, 0.478468805870871E+02,
-0.122339804214125E+03, 0.478469135742284E+02,
-0.122337511417390E+03, 0.478501214230407E+02,
-0.122336387866290E+03, 0.478516933818662E+02,
-0.122335950000000E+03, 0.478523060000000E+02,
-0.122335784639446E+03, 0.478527477876357E+02,
-0.122335125173180E+03, 0.478545096591012E+02,
-0.122333337627946E+03, 0.478592853771399E+02,
-0.122333244646775E+03, 0.478595337914727E+02,
-0.122333166059793E+03, 0.478597437493864E+02,
-0.122331377698213E+03, 0.478645216484286E+02,
-0.122329545000000E+03, 0.478694180000000E+02,
-0.122330145000000E+03, 0.478753180000000E+02,
-0.122332898615630E+03, 0.478793114719903E+02,
-0.122333512967759E+03, 0.478802024452958E+02,
-0.122333543000000E+03, 0.478802460000000E+02,
-0.122333519287997E+03, 0.478803298532730E+02,
-0.122333419884438E+03, 0.478806813762436E+02,
-0.122329940049111E+03, 0.478929871937493E+02,
-0.122328546000000E+03, 0.478979170000000E+02,
-0.122327964226333E+03, 0.478991241434502E+02,
-0.122327508748944E+03, 0.479000692301347E+02,
-0.122325851976752E+03, 0.479035069273256E+02,
-0.122324721848515E+03, 0.479058518717186E+02,
-0.122322126419367E+03, 0.479112372225398E+02,
-0.122321988336234E+03, 0.479115237362806E+02,
-0.122321847000000E+03, 0.479118170000000E+02,
-0.122321670246555E+03, 0.479120287856595E+02,
-0.122317894659318E+03, 0.479165526874842E+02,
-0.122313758740151E+03, 0.479215083383773E+02,
-0.122311922524155E+03, 0.479237084890754E+02,
-0.122310747000000E+03, 0.479251170000000E+02,
-0.122309747000000E+03, 0.479291170000000E+02,
-0.122311148000000E+03, 0.479367170000000E+02,
-0.122308432988273E+03, 0.479449282549786E+02,
-0.122307396400753E+03, 0.479480633001614E+02,
-0.122307048000000E+03, 0.479491170000000E+02,
-0.122304783815130E+03, 0.479496947375965E+02,
-0.122292823906295E+03, 0.479527464711706E+02,
-0.122291553132752E+03, 0.479530707263417E+02,
-0.122278047000000E+03, 0.479565170000000E+02,
-0.122265513875538E+03, 0.479578074284483E+02,
-0.122260369648484E+03, 0.479583370854350E+02,
-0.122259748739263E+03, 0.479584010151379E+02,
-0.122249007000000E+03, 0.479595070000000E+02,
-0.122240423047546E+03, 0.479646724921948E+02,
-0.122240210295359E+03, 0.479648005182721E+02,
-0.122233273935967E+03, 0.479689745523765E+02,
-0.122231285123904E+03, 0.479701713429279E+02,
-0.122230046000000E+03, 0.479709170000000E+02,
-0.122226346000000E+03, 0.479764170000000E+02,
-0.122228793923343E+03, 0.479809913163084E+02,
-0.122229977428044E+03, 0.479832028744728E+02,
-0.122229988452089E+03, 0.479832234745734E+02,
-0.122232135020607E+03, 0.479872346636528E+02,
-0.122232141937724E+03, 0.479872475893342E+02,
-0.122232229101693E+03, 0.479874104684412E+02,
-0.122232391000000E+03, 0.479877130000000E+02,
-0.122230220000000E+03, 0.480071540000000E+02,
-0.122228767000000E+03, 0.480124680000000E+02,
-0.122225088297986E+03, 0.480165060261282E+02,
-0.122224979000000E+03, 0.480166260000000E+02,
-0.122225798126625E+03, 0.480182263284835E+02,
-0.122230710998705E+03, 0.480278246114484E+02,
-0.122231761000000E+03, 0.480298760000000E+02,
-0.122232321504034E+03, 0.480301023219974E+02,
-0.122254599886597E+03, 0.480390979540272E+02,
-0.122262767321792E+03, 0.480423958254700E+02,
-0.122281087000000E+03, 0.480497930000000E+02,
-0.122283631375812E+03, 0.480522213158429E+02,
-0.122288294092955E+03, 0.480566713463202E+02,
-0.122293714987741E+03, 0.480618449706844E+02,
-0.122298354311474E+03, 0.480662726748267E+02,
-0.122305396518801E+03, 0.480729936566653E+02,
-0.122305838000000E+03, 0.480734150000000E+02,
-0.122305965092455E+03, 0.480735118308217E+02,
-0.122321709000000E+03, 0.480855070000000E+02,
-0.122326119000000E+03, 0.480928770000000E+02,
-0.122343241000000E+03, 0.480976310000000E+02,
-0.122363352984442E+03, 0.481233057283549E+02,
-0.122363842000000E+03, 0.481239300000000E+02,
-0.122365078000000E+03, 0.481258220000000E+02,
-0.122365061393677E+03, 0.481260415638450E+02,
-0.122365057215413E+03, 0.481260968076112E+02,
-0.122364525958075E+03, 0.481331209337108E+02,
-0.122364098326614E+03, 0.481387749493718E+02,
-0.122363797000000E+03, 0.481427590000000E+02,
-0.122363828056996E+03, 0.481430392344557E+02,
-0.122364744000000E+03, 0.481513040000000E+02,
-0.122365735739464E+03, 0.481537351928586E+02,
-0.122367846276966E+03, 0.481589090554402E+02,
-0.122368583107934E+03, 0.481607153546274E+02,
-0.122370144073460E+03, 0.481645419727863E+02,
-0.122370204412539E+03, 0.481646898906043E+02,
-0.122370224407165E+03, 0.481647389062914E+02,
-0.122370253000000E+03, 0.481648090000000E+02,
-0.122369253922575E+03, 0.481662291530152E+02,
-0.122364124285504E+03, 0.481735207496130E+02,
-0.122363479000000E+03, 0.481744380000000E+02,
-0.122362044000000E+03, 0.481875680000000E+02,
-0.122372492000000E+03, 0.481930220000000E+02,
-0.122372500330439E+03, 0.481930342087307E+02,
-0.122372618769131E+03, 0.481932077873503E+02,
-0.122376763295846E+03, 0.481992818262957E+02,
-0.122378057879514E+03, 0.482011791120790E+02,
-0.122382102000000E+03, 0.482071060000000E+02,
-0.122385703000000E+03, 0.482178110000000E+02,
-0.122387682622564E+03, 0.482199814020855E+02,
-0.122388193386812E+03, 0.482205413895339E+02,
-0.122388771591929E+03, 0.482211753172402E+02,
-0.122390597938308E+03, 0.482231776716597E+02,
-0.122394813168535E+03, 0.482277991306402E+02,
-0.122395512417791E+03, 0.482285657677103E+02,
-0.122395512417791E+03, 0.482285657677103E+02,
-0.122394763000000E+03, 0.482301100000000E+02,
-0.122394763000000E+03, 0.482301100000000E+02,
-0.122392536000000E+03, 0.482345740000000E+02,
-0.122392612000000E+03, 0.482378770000000E+02,
-0.122394565000000E+03, 0.482396240000000E+02,
-0.122399113000000E+03, 0.482420050000000E+02,
-0.122404259000000E+03, 0.482494520000000E+02,
-0.122404259000000E+03, 0.482494520000000E+02,
-0.122405756181268E+03, 0.482521938138136E+02,
-0.122405756181268E+03, 0.482521938138136E+02,
-0.122395328000000E+03, 0.482571870000000E+02,
-0.122392058000000E+03, 0.482696280000000E+02,
-0.122371693000000E+03, 0.482878390000000E+02,
-0.122376818000000E+03, 0.482960990000000E+02,
-0.122378210535294E+03, 0.482975904179386E+02,
-0.122378210535294E+03, 0.482975904179386E+02,
-0.122365650000000E+03, 0.482976130000000E+02,
-0.122365650000000E+03, 0.482976130000000E+02,
-0.122365342000000E+03, 0.482976130000000E+02,
-0.122365342000000E+03, 0.482976130000000E+02,
-0.122352970000000E+03, 0.482975530000000E+02,
-0.122335067000000E+03, 0.482974850000000E+02,
-0.122335067000000E+03, 0.482974850000000E+02,
-0.122324656000000E+03, 0.482975320000000E+02,
-0.122304895000000E+03, 0.482977150000000E+02,
-0.122304895000000E+03, 0.482977150000000E+02,
-0.122304450000000E+03, 0.482977150000000E+02,
-0.122304450000000E+03, 0.482977150000000E+02,
-0.122292087000000E+03, 0.482977590000000E+02,
-0.122292087000000E+03, 0.482977590000000E+02,
-0.122275001000000E+03, 0.482976750000000E+02,
-0.122253010000000E+03, 0.482975670000000E+02,
-0.122253010000000E+03, 0.482975670000000E+02,
-0.122251997000000E+03, 0.482975610000000E+02,
-0.122251997000000E+03, 0.482975610000000E+02,
-0.122226185000000E+03, 0.482973750000000E+02,
-0.122205616000000E+03, 0.482973270000000E+02,
-0.122205616000000E+03, 0.482973270000000E+02,
-0.122204964000000E+03, 0.482973260000000E+02,
-0.122204964000000E+03, 0.482973260000000E+02,
-0.122201531000000E+03, 0.482973150000000E+02,
-0.122187400000000E+03, 0.482972600000000E+02,
-0.122187400000000E+03, 0.482972600000000E+02,
-0.122184618000000E+03, 0.482972580000000E+02,
-0.122184618000000E+03, 0.482972580000000E+02,
-0.122175875000000E+03, 0.482972610000000E+02,
-0.122175875000000E+03, 0.482972610000000E+02,
-0.122170401000000E+03, 0.482973200000000E+02,
-0.122170401000000E+03, 0.482973200000000E+02,
-0.122169406000000E+03, 0.482973310000000E+02,
-0.122169406000000E+03, 0.482973310000000E+02,
-0.122164651000000E+03, 0.482974030000000E+02,
-0.122164651000000E+03, 0.482974030000000E+02,
-0.122140276000000E+03, 0.482977690000000E+02,
-0.122035569000000E+03, 0.482976920000000E+02,
-0.122000900000000E+03, 0.482975270000000E+02,
-0.122000900000000E+03, 0.482975270000000E+02,
-0.122000793000000E+03, 0.482975430000000E+02,
-0.122000793000000E+03, 0.482975430000000E+02,
-0.121998002000000E+03, 0.482975500000000E+02,
-0.121981660000000E+03, 0.482975960000000E+02,
-0.121981660000000E+03, 0.482975960000000E+02,
-0.121972070000000E+03, 0.482976240000000E+02,
-0.121972070000000E+03, 0.482976240000000E+02,
-0.121945086000000E+03, 0.482976750000000E+02,
-0.121935720000000E+03, 0.482976960000000E+02,
-0.121924030000000E+03, 0.482977220000000E+02,
-0.121924030000000E+03, 0.482977220000000E+02,
-0.121915424000000E+03, 0.482976980000000E+02,
-0.121915424000000E+03, 0.482976980000000E+02,
-0.121905052000000E+03, 0.482976510000000E+02,
-0.121876247000000E+03, 0.482975180000000E+02,
-0.121859728000000E+03, 0.482979430000000E+02,
-0.121859728000000E+03, 0.482979430000000E+02,
-0.121857286000000E+03, 0.482979510000000E+02,
-0.121857286000000E+03, 0.482979510000000E+02,
-0.121856480000000E+03, 0.482979530000000E+02,
-0.121835921000000E+03, 0.482980130000000E+02,
-0.121835921000000E+03, 0.482980130000000E+02,
-0.121835846000000E+03, 0.482980130000000E+02,
};
}