Merge "Issue #2122 Committing Geostationary projection for GOES-R fixed grid as well as cleanup to SatResource code." into development
Former-commit-id: d679aae13498d67d79a1134275f1016699583e1f
This commit is contained in:
commit
679bf314e0
12 changed files with 444 additions and 137 deletions
|
@ -22,7 +22,9 @@ package com.raytheon.uf.viz.core;
|
||||||
import com.raytheon.uf.viz.core.rsc.hdf5.ImageTile;
|
import com.raytheon.uf.viz.core.rsc.hdf5.ImageTile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface for notification when a mesh calculation has completed
|
* Interface for notification when a mesh calculation has completed.
|
||||||
|
*
|
||||||
|
* Deprecated: Meshes do not need to be explicitly calculated
|
||||||
*
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
*
|
*
|
||||||
|
@ -36,7 +38,7 @@ import com.raytheon.uf.viz.core.rsc.hdf5.ImageTile;
|
||||||
* @author mschenke
|
* @author mschenke
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public interface IMeshCallback {
|
public interface IMeshCallback {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -218,7 +218,7 @@ public class RecordTileSetRenderable extends TileSetRenderable {
|
||||||
DrawableImage image = images.get(i);
|
DrawableImage image = images.get(i);
|
||||||
addTileImage(tile, image);
|
addTileImage(tile, image);
|
||||||
}
|
}
|
||||||
target.setNeedsRefresh(true);
|
issueRefresh(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
public DrawableImage createTileImage(IGraphicsTarget target, Tile tile,
|
public DrawableImage createTileImage(IGraphicsTarget target, Tile tile,
|
||||||
|
@ -230,7 +230,7 @@ public class RecordTileSetRenderable extends TileSetRenderable {
|
||||||
.constructMesh(tile.tileGeometry,
|
.constructMesh(tile.tileGeometry,
|
||||||
tileSet.getTargetGeometry());
|
tileSet.getTargetGeometry());
|
||||||
return new DrawableImage(image, new PixelCoverage(mesh),
|
return new DrawableImage(image, new PixelCoverage(mesh),
|
||||||
RasterMode.ASYNCHRONOUS);
|
RasterMode.SYNCHRONOUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -353,6 +353,13 @@ public class RecordTileSetRenderable extends TileSetRenderable {
|
||||||
tile.getRectangle()).getColorMapData();
|
tile.getRectangle()).getColorMapData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param target
|
||||||
|
*/
|
||||||
|
protected void issueRefresh(IGraphicsTarget target) {
|
||||||
|
target.setNeedsRefresh(true);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode() {
|
public int hashCode() {
|
||||||
final int prime = 31;
|
final int prime = 31;
|
||||||
|
|
|
@ -1556,55 +1556,55 @@
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.showHistoryList"
|
commandId="com.raytheon.viz.ui.showHistoryList"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+H">
|
sequence="M1+H">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.changeLegendMode"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.changeLegendMode"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="NUMPAD_ENTER">
|
sequence="NUMPAD_ENTER">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.showPrintDialog"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.showPrintDialog"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+P">
|
sequence="M1+P">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.newAWIPSProcedure"
|
commandId="com.raytheon.viz.ui.newAWIPSProcedure"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+N">
|
sequence="M1+N">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.openAWIPSProcedure"
|
commandId="com.raytheon.viz.ui.openAWIPSProcedure"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+O">
|
sequence="M1+O">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.deleteAWIPSProcedure"
|
commandId="com.raytheon.viz.ui.deleteAWIPSProcedure"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+D">
|
sequence="M1+D">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.copyOutAWIPSProcedure"
|
commandId="com.raytheon.viz.ui.copyOutAWIPSProcedure"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+B">
|
sequence="M1+B">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.clear"
|
commandId="com.raytheon.viz.ui.clear"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+C">
|
sequence="M1+C">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="ARROW_LEFT">
|
sequence="ARROW_LEFT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1618,7 +1618,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="ARROW_RIGHT">
|
sequence="ARROW_RIGHT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1632,7 +1632,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+ARROW_LEFT">
|
sequence="M1+ARROW_LEFT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1646,7 +1646,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+ARROW_RIGHT">
|
sequence="M1+ARROW_RIGHT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1660,7 +1660,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="ARROW_DOWN">
|
sequence="ARROW_DOWN">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1674,7 +1674,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="ARROW_UP">
|
sequence="ARROW_UP">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1688,7 +1688,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+ARROW_DOWN">
|
sequence="M1+ARROW_DOWN">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1702,7 +1702,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+ARROW_UP">
|
sequence="M1+ARROW_UP">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1716,7 +1716,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="SHIFT+ARROW_LEFT">
|
sequence="SHIFT+ARROW_LEFT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1730,7 +1730,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
commandId="com.raytheon.viz.ui.tools.looping.frameTool"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="SHIFT+ARROW_RIGHT">
|
sequence="SHIFT+ARROW_RIGHT">
|
||||||
<parameter
|
<parameter
|
||||||
id="mode"
|
id="mode"
|
||||||
|
@ -1744,43 +1744,43 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.fasterLoop"
|
commandId="com.raytheon.viz.ui.tools.looping.fasterLoop"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="PAGE_UP"/>
|
sequence="PAGE_UP"/>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.slowerLoop"
|
commandId="com.raytheon.viz.ui.tools.looping.slowerLoop"
|
||||||
contextId="com.raytheon.viz.ui.loopContext"
|
contextId="com.raytheon.viz.ui.loopContext"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="PAGE_DOWN"/>
|
sequence="PAGE_DOWN"/>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.timeOptionsAction"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.timeOptionsAction"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+T">
|
sequence="M1+T">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.fourPanelLayout"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.fourPanelLayout"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="END">
|
sequence="END">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="DELETE">
|
sequence="DELETE">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="BACKSPACE">
|
sequence="BACKSPACE">
|
||||||
<parameter id="direction" value="-1"></parameter>
|
<parameter id="direction" value="-1"></parameter>
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="1">
|
sequence="1">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="3"></parameter>
|
<parameter id="startIndex" value="3"></parameter>
|
||||||
|
@ -1789,7 +1789,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="5">
|
sequence="5">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="3"></parameter>
|
<parameter id="startIndex" value="3"></parameter>
|
||||||
|
@ -1798,7 +1798,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="2">
|
sequence="2">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="0"></parameter>
|
<parameter id="startIndex" value="0"></parameter>
|
||||||
|
@ -1807,7 +1807,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="6">
|
sequence="6">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="0"></parameter>
|
<parameter id="startIndex" value="0"></parameter>
|
||||||
|
@ -1816,7 +1816,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="3">
|
sequence="3">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="1"></parameter>
|
<parameter id="startIndex" value="1"></parameter>
|
||||||
|
@ -1825,7 +1825,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="7">
|
sequence="7">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="1"></parameter>
|
<parameter id="startIndex" value="1"></parameter>
|
||||||
|
@ -1834,7 +1834,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="4">
|
sequence="4">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="2"></parameter>
|
<parameter id="startIndex" value="2"></parameter>
|
||||||
|
@ -1843,7 +1843,7 @@
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
commandId="com.raytheon.uf.viz.d2d.ui.map.actions.rotatePanels"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="8">
|
sequence="8">
|
||||||
<parameter id="direction" value="1"></parameter>
|
<parameter id="direction" value="1"></parameter>
|
||||||
<parameter id="startIndex" value="2"></parameter>
|
<parameter id="startIndex" value="2"></parameter>
|
||||||
|
@ -1852,37 +1852,37 @@
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.dataScaleAction"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.dataScaleAction"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+S">
|
sequence="M1+S">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.imageCombination"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.imageCombination"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="INSERT">
|
sequence="INSERT">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.locateCursorAction"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.locateCursorAction"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="F12">
|
sequence="F12">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.tools.looping.loopProperties"
|
commandId="com.raytheon.viz.ui.tools.looping.loopProperties"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+L">
|
sequence="M1+L">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
commandId="com.raytheon.viz.ui.imageProperties"
|
commandId="com.raytheon.viz.ui.imageProperties"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="M1+I">
|
sequence="M1+I">
|
||||||
</key>
|
</key>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.increaseBlendAmount"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.increaseBlendAmount"
|
||||||
contextId="com.raytheon.uf.viz.d2d.ui"
|
contextId="com.raytheon.uf.viz.d2d.ui"
|
||||||
schemeId="com.raytheon.viz.ui.awips.scheme"
|
schemeId="com.raytheon.viz.ui.cave.scheme"
|
||||||
sequence="NUMPAD_ADD"/>
|
sequence="NUMPAD_ADD"/>
|
||||||
<key
|
<key
|
||||||
commandId="com.raytheon.uf.viz.d2d.ui.actions.decreaseBlendAmount"
|
commandId="com.raytheon.uf.viz.d2d.ui.actions.decreaseBlendAmount"
|
||||||
|
|
|
@ -62,7 +62,7 @@ import com.raytheon.viz.core.style.image.ImagePreferences;
|
||||||
* Jul 25, 2007 chammack Initial Creation.
|
* Jul 25, 2007 chammack Initial Creation.
|
||||||
* Mar 26, 2009 2086 jsanchez Added a entityList to the match criteria.
|
* Mar 26, 2009 2086 jsanchez Added a entityList to the match criteria.
|
||||||
* Feb 15, 2013 1638 mschenke Moved GRID_FILL_VALUE from edex.common Util into GridUtil
|
* Feb 15, 2013 1638 mschenke Moved GRID_FILL_VALUE from edex.common Util into GridUtil
|
||||||
*
|
* Jun 24, 2013 2122 mschenke Added method for constructing {@link ColorMapParameters} from {@link StyleRule}
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author chammack
|
* @author chammack
|
||||||
|
@ -95,6 +95,12 @@ public class ColorMapParameterFactory {
|
||||||
StyleRule sr = StyleManager.getInstance().getStyleRule(
|
StyleRule sr = StyleManager.getInstance().getStyleRule(
|
||||||
StyleManager.StyleType.IMAGERY, match);
|
StyleManager.StyleType.IMAGERY, match);
|
||||||
|
|
||||||
|
return build(sr, data, level, parameterUnits);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ColorMapParameters build(StyleRule sr, Object data,
|
||||||
|
SingleLevel level, Unit<?> parameterUnits) {
|
||||||
|
|
||||||
ColorMapParameters params = new ColorMapParameters();
|
ColorMapParameters params = new ColorMapParameters();
|
||||||
|
|
||||||
ImagePreferences preferences = null;
|
ImagePreferences preferences = null;
|
||||||
|
|
|
@ -19,8 +19,6 @@
|
||||||
**/
|
**/
|
||||||
package com.raytheon.viz.satellite.rsc;
|
package com.raytheon.viz.satellite.rsc;
|
||||||
|
|
||||||
import java.text.ParseException;
|
|
||||||
import java.text.ParsePosition;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -31,19 +29,17 @@ import java.util.Map;
|
||||||
|
|
||||||
import javax.measure.converter.UnitConverter;
|
import javax.measure.converter.UnitConverter;
|
||||||
import javax.measure.unit.Unit;
|
import javax.measure.unit.Unit;
|
||||||
import javax.measure.unit.UnitFormat;
|
|
||||||
|
|
||||||
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
import org.opengis.referencing.crs.CoordinateReferenceSystem;
|
||||||
|
|
||||||
import com.raytheon.uf.common.colormap.IColorMap;
|
import com.raytheon.uf.common.colormap.IColorMap;
|
||||||
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
|
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters;
|
||||||
|
import com.raytheon.uf.common.colormap.prefs.ColorMapParameters.PersistedParameters;
|
||||||
import com.raytheon.uf.common.colormap.prefs.DataMappingPreferences;
|
import com.raytheon.uf.common.colormap.prefs.DataMappingPreferences;
|
||||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.SatelliteUnits;
|
import com.raytheon.uf.common.dataplugin.satellite.units.SatelliteUnits;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.counts.DerivedWVPixel;
|
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.generic.GenericPixel;
|
import com.raytheon.uf.common.dataplugin.satellite.units.generic.GenericPixel;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.goes.PolarPrecipWaterPixel;
|
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.water.BlendedTPWPixel;
|
import com.raytheon.uf.common.dataplugin.satellite.units.water.BlendedTPWPixel;
|
||||||
import com.raytheon.uf.common.geospatial.ISpatialObject;
|
import com.raytheon.uf.common.geospatial.ISpatialObject;
|
||||||
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
import com.raytheon.uf.common.geospatial.ReferencedCoordinate;
|
||||||
|
@ -72,6 +68,7 @@ import com.raytheon.viz.core.drawables.ColorMapParameterFactory;
|
||||||
import com.raytheon.viz.core.style.image.ImagePreferences;
|
import com.raytheon.viz.core.style.image.ImagePreferences;
|
||||||
import com.raytheon.viz.core.style.image.SamplePreferences;
|
import com.raytheon.viz.core.style.image.SamplePreferences;
|
||||||
import com.raytheon.viz.satellite.SatelliteConstants;
|
import com.raytheon.viz.satellite.SatelliteConstants;
|
||||||
|
import com.raytheon.viz.satellite.tileset.SatDataRetriever;
|
||||||
import com.raytheon.viz.satellite.tileset.SatTileSetRenderable;
|
import com.raytheon.viz.satellite.tileset.SatTileSetRenderable;
|
||||||
import com.vividsolutions.jts.geom.Coordinate;
|
import com.vividsolutions.jts.geom.Coordinate;
|
||||||
|
|
||||||
|
@ -265,10 +262,24 @@ public class SatResource extends
|
||||||
|
|
||||||
private void initializeFirstFrame(SatelliteRecord record)
|
private void initializeFirstFrame(SatelliteRecord record)
|
||||||
throws VizException {
|
throws VizException {
|
||||||
SingleLevel level = new SingleLevel(Level.LevelType.SURFACE);
|
|
||||||
|
|
||||||
SatelliteUnits.register();
|
SatelliteUnits.register();
|
||||||
Unit<?> unit = null;
|
ColorMapParameters colorMapParameters = null;
|
||||||
|
IColorMap colorMap = null;
|
||||||
|
String cmName = null;
|
||||||
|
PersistedParameters persisted = null;
|
||||||
|
|
||||||
|
if (hasCapability(ColorMapCapability.class)) {
|
||||||
|
colorMapParameters = getCapability(ColorMapCapability.class)
|
||||||
|
.getColorMapParameters();
|
||||||
|
if (colorMapParameters != null) {
|
||||||
|
persisted = colorMapParameters.getPersisted();
|
||||||
|
colorMap = colorMapParameters.getColorMap();
|
||||||
|
cmName = colorMapParameters.getColorMapName();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SingleLevel level = new SingleLevel(Level.LevelType.SURFACE);
|
||||||
|
Unit<?> unit = SatDataRetriever.getRecordUnit(record);
|
||||||
String physicalElement = null;
|
String physicalElement = null;
|
||||||
DerivedParameterRequest request = (DerivedParameterRequest) record
|
DerivedParameterRequest request = (DerivedParameterRequest) record
|
||||||
.getMessageData();
|
.getMessageData();
|
||||||
|
@ -277,50 +288,12 @@ public class SatResource extends
|
||||||
} else {
|
} else {
|
||||||
physicalElement = request.getParameterAbbreviation();
|
physicalElement = request.getParameterAbbreviation();
|
||||||
}
|
}
|
||||||
if (record.getUnits() != null && request == null) {
|
|
||||||
try {
|
|
||||||
unit = UnitFormat.getUCUMInstance().parseSingleUnit(
|
|
||||||
record.getUnits(), new ParsePosition(0));
|
|
||||||
} catch (ParseException e) {
|
|
||||||
throw new VizException("Unable parse units ", e);
|
|
||||||
}
|
|
||||||
} else if (request != null) {
|
|
||||||
if (physicalElement.equals("satDivWVIR")) {
|
|
||||||
unit = new DerivedWVPixel();
|
|
||||||
} else {
|
|
||||||
unit = new GenericPixel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String creatingEntity = null;
|
|
||||||
if (physicalElement.equals(SatelliteConstants.PRECIP)) {
|
|
||||||
creatingEntity = record.getCreatingEntity();
|
|
||||||
if (creatingEntity.equals(SatelliteConstants.DMSP)
|
|
||||||
|| creatingEntity.equals(SatelliteConstants.POES)) {
|
|
||||||
unit = new PolarPrecipWaterPixel();
|
|
||||||
} else if (creatingEntity.equals(SatelliteConstants.MISC)) {
|
|
||||||
unit = new BlendedTPWPixel();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ColorMapParameters colorMapParameters = null;
|
|
||||||
|
|
||||||
IColorMap colorMap = null;
|
|
||||||
String cmName = null;
|
|
||||||
if (hasCapability(ColorMapCapability.class)) {
|
|
||||||
colorMapParameters = getCapability(ColorMapCapability.class)
|
|
||||||
.getColorMapParameters();
|
|
||||||
if (colorMapParameters != null) {
|
|
||||||
colorMap = colorMapParameters.getColorMap();
|
|
||||||
cmName = colorMapParameters.getColorMapName();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Grab the sampleRange from the preferences
|
// Grab the sampleRange from the preferences
|
||||||
ParamLevelMatchCriteria match = new ParamLevelMatchCriteria();
|
ParamLevelMatchCriteria match = new ParamLevelMatchCriteria();
|
||||||
match.setParameterName(Arrays.asList(physicalElement));
|
match.setParameterName(Arrays.asList(physicalElement));
|
||||||
match.setLevels(Arrays.asList((Level) level));
|
match.setLevels(Arrays.asList((Level) level));
|
||||||
match.setCreatingEntityNames(Arrays.asList(creatingEntity));
|
match.setCreatingEntityNames(Arrays.asList(record.getCreatingEntity()));
|
||||||
StyleRule sr = StyleManager.getInstance().getStyleRule(
|
StyleRule sr = StyleManager.getInstance().getStyleRule(
|
||||||
StyleManager.StyleType.IMAGERY, match);
|
StyleManager.StyleType.IMAGERY, match);
|
||||||
if (sr != null && sr.getPreferences() instanceof ImagePreferences) {
|
if (sr != null && sr.getPreferences() instanceof ImagePreferences) {
|
||||||
|
@ -333,8 +306,32 @@ public class SatResource extends
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
colorMapParameters = ColorMapParameterFactory.build((Object) null,
|
colorMapParameters = ColorMapParameterFactory.build(sr, null, level,
|
||||||
physicalElement, unit, level, creatingEntity);
|
unit);
|
||||||
|
// If null, set from style rules
|
||||||
|
if (cmName == null) {
|
||||||
|
cmName = colorMapParameters.getColorMapName();
|
||||||
|
}
|
||||||
|
if (colorMap == null) {
|
||||||
|
colorMap = colorMapParameters.getColorMap();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Load colormap into parameters
|
||||||
|
if (colorMap == null) {
|
||||||
|
if (cmName == null) {
|
||||||
|
cmName = "Sat/VIS/ZA (Vis Default)";
|
||||||
|
}
|
||||||
|
colorMap = ColorMapLoader.loadColorMap(cmName);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (colorMap != null) {
|
||||||
|
colorMapParameters.setColorMap(colorMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (persisted != null) {
|
||||||
|
colorMapParameters.applyPersistedParameters(persisted);
|
||||||
|
}
|
||||||
|
|
||||||
// TODO: Figure out data/color map min/max values better
|
// TODO: Figure out data/color map min/max values better
|
||||||
if (unit == null) {
|
if (unit == null) {
|
||||||
colorMapParameters.setColorMapMin(0.0f);
|
colorMapParameters.setColorMapMin(0.0f);
|
||||||
|
@ -355,17 +352,6 @@ public class SatResource extends
|
||||||
colorMapParameters.setDataMax(255.0f);
|
colorMapParameters.setDataMax(255.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (colorMap == null) {
|
|
||||||
if (cmName == null) {
|
|
||||||
cmName = "Sat/VIS/ZA (Vis Default)";
|
|
||||||
}
|
|
||||||
colorMap = ColorMapLoader.loadColorMap(cmName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (colorMap != null) {
|
|
||||||
colorMapParameters.setColorMap(colorMap);
|
|
||||||
}
|
|
||||||
|
|
||||||
getCapability(ColorMapCapability.class).setColorMapParameters(
|
getCapability(ColorMapCapability.class).setColorMapParameters(
|
||||||
colorMapParameters);
|
colorMapParameters);
|
||||||
|
|
||||||
|
|
|
@ -23,11 +23,19 @@ import java.awt.Rectangle;
|
||||||
import java.nio.Buffer;
|
import java.nio.Buffer;
|
||||||
import java.nio.ByteBuffer;
|
import java.nio.ByteBuffer;
|
||||||
import java.nio.ShortBuffer;
|
import java.nio.ShortBuffer;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.ParsePosition;
|
||||||
|
|
||||||
|
import javax.measure.unit.Unit;
|
||||||
|
import javax.measure.unit.UnitFormat;
|
||||||
|
|
||||||
import com.raytheon.uf.common.colormap.image.ColorMapData;
|
import com.raytheon.uf.common.colormap.image.ColorMapData;
|
||||||
import com.raytheon.uf.common.colormap.image.ColorMapData.ColorMapDataType;
|
import com.raytheon.uf.common.colormap.image.ColorMapData.ColorMapDataType;
|
||||||
import com.raytheon.uf.common.dataplugin.PluginDataObject;
|
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
||||||
|
import com.raytheon.uf.common.dataplugin.satellite.units.counts.DerivedWVPixel;
|
||||||
|
import com.raytheon.uf.common.dataplugin.satellite.units.generic.GenericPixel;
|
||||||
|
import com.raytheon.uf.common.dataplugin.satellite.units.goes.PolarPrecipWaterPixel;
|
||||||
|
import com.raytheon.uf.common.dataplugin.satellite.units.water.BlendedTPWPixel;
|
||||||
import com.raytheon.uf.common.datastorage.DataStoreFactory;
|
import com.raytheon.uf.common.datastorage.DataStoreFactory;
|
||||||
import com.raytheon.uf.common.datastorage.Request;
|
import com.raytheon.uf.common.datastorage.Request;
|
||||||
import com.raytheon.uf.common.datastorage.records.ByteDataRecord;
|
import com.raytheon.uf.common.datastorage.records.ByteDataRecord;
|
||||||
|
@ -39,6 +47,8 @@ import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||||
import com.raytheon.uf.viz.core.data.IColorMapDataRetrievalCallback;
|
import com.raytheon.uf.viz.core.data.IColorMapDataRetrievalCallback;
|
||||||
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
|
import com.raytheon.uf.viz.core.datastructure.DataCubeContainer;
|
||||||
import com.raytheon.uf.viz.core.datastructure.VizDataCubeException;
|
import com.raytheon.uf.viz.core.datastructure.VizDataCubeException;
|
||||||
|
import com.raytheon.uf.viz.derivparam.library.DerivedParameterRequest;
|
||||||
|
import com.raytheon.viz.satellite.SatelliteConstants;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link IColorMapDataRetrievalCallback} for satellite imagery data. Supports
|
* {@link IColorMapDataRetrievalCallback} for satellite imagery data. Supports
|
||||||
|
@ -63,19 +73,16 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
|
|
||||||
protected Rectangle datasetBounds;
|
protected Rectangle datasetBounds;
|
||||||
|
|
||||||
protected PluginDataObject pdo;
|
protected SatelliteRecord record;
|
||||||
|
|
||||||
protected String dataset;
|
protected String dataset;
|
||||||
|
|
||||||
protected boolean signed = false;
|
public SatDataRetriever(SatelliteRecord record, int level,
|
||||||
|
Rectangle dataSetBounds) {
|
||||||
public SatDataRetriever(PluginDataObject pdo, int level,
|
this.record = record;
|
||||||
Rectangle dataSetBounds, boolean signed) {
|
|
||||||
this.pdo = pdo;
|
|
||||||
this.datasetBounds = dataSetBounds;
|
this.datasetBounds = dataSetBounds;
|
||||||
dataset = DataStoreFactory.createDataSetName(null,
|
dataset = DataStoreFactory.createDataSetName(null,
|
||||||
SatelliteRecord.SAT_DATASET_NAME, level);
|
SatelliteRecord.SAT_DATASET_NAME, level);
|
||||||
this.signed = signed;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -87,14 +94,15 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
public ColorMapData getColorMapData() {
|
public ColorMapData getColorMapData() {
|
||||||
// TODO: Read scale/offset out of attributes?
|
// TODO: Read scale/offset out of attributes?
|
||||||
Buffer data = null;
|
Buffer data = null;
|
||||||
|
boolean signed = false;
|
||||||
Request req = Request.buildSlab(new int[] { this.datasetBounds.x,
|
Request req = Request.buildSlab(new int[] { this.datasetBounds.x,
|
||||||
this.datasetBounds.y }, new int[] {
|
this.datasetBounds.y }, new int[] {
|
||||||
this.datasetBounds.x + this.datasetBounds.width,
|
this.datasetBounds.x + this.datasetBounds.width,
|
||||||
this.datasetBounds.y + this.datasetBounds.height });
|
this.datasetBounds.y + this.datasetBounds.height });
|
||||||
IDataRecord[] dataRecord = null;
|
IDataRecord[] dataRecord = null;
|
||||||
try {
|
try {
|
||||||
dataRecord = DataCubeContainer
|
dataRecord = DataCubeContainer.getDataRecord(record, req,
|
||||||
.getDataRecord(pdo, req, this.dataset);
|
this.dataset);
|
||||||
if (dataRecord != null && dataRecord.length == 1) {
|
if (dataRecord != null && dataRecord.length == 1) {
|
||||||
IDataRecord record = dataRecord[0];
|
IDataRecord record = dataRecord[0];
|
||||||
if (record instanceof ByteDataRecord) {
|
if (record instanceof ByteDataRecord) {
|
||||||
|
@ -102,6 +110,8 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
} else if (record instanceof ShortDataRecord) {
|
} else if (record instanceof ShortDataRecord) {
|
||||||
data = ShortBuffer.wrap((short[]) record.getDataObject());
|
data = ShortBuffer.wrap((short[]) record.getDataObject());
|
||||||
}
|
}
|
||||||
|
Unit<?> recordUnit = getRecordUnit(this.record);
|
||||||
|
signed = recordUnit instanceof GenericPixel;
|
||||||
}
|
}
|
||||||
} catch (VizDataCubeException e) {
|
} catch (VizDataCubeException e) {
|
||||||
statusHandler.handle(Priority.SIGNIFICANT,
|
statusHandler.handle(Priority.SIGNIFICANT,
|
||||||
|
@ -127,6 +137,50 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
datasetBounds.height }, dataType);
|
datasetBounds.height }, dataType);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param record2
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Unit<?> getRecordUnit(SatelliteRecord record) {
|
||||||
|
Unit<?> recordUnit = null;
|
||||||
|
String physicalElement = record.getPhysicalElement();
|
||||||
|
DerivedParameterRequest request = (DerivedParameterRequest) record
|
||||||
|
.getMessageData();
|
||||||
|
if (request != null) {
|
||||||
|
physicalElement = request.getParameterAbbreviation();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (record.getUnits() != null && record.getUnits().isEmpty() == false && request == null) {
|
||||||
|
try {
|
||||||
|
recordUnit = UnitFormat.getUCUMInstance().parseProductUnit(
|
||||||
|
record.getUnits(), new ParsePosition(0));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
statusHandler
|
||||||
|
.handle(Priority.PROBLEM,
|
||||||
|
"Unable to parse satellite units: "
|
||||||
|
+ record.getUnits(), e);
|
||||||
|
}
|
||||||
|
} else if (request != null) {
|
||||||
|
if (physicalElement.equals("satDivWVIR")) {
|
||||||
|
recordUnit = new DerivedWVPixel();
|
||||||
|
} else {
|
||||||
|
recordUnit = new GenericPixel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (physicalElement.equals(SatelliteConstants.PRECIP)) {
|
||||||
|
String creatingEntity = record.getCreatingEntity();
|
||||||
|
if (creatingEntity.equals(SatelliteConstants.DMSP)
|
||||||
|
|| creatingEntity.equals(SatelliteConstants.POES)) {
|
||||||
|
recordUnit = new PolarPrecipWaterPixel();
|
||||||
|
} else if (creatingEntity.equals(SatelliteConstants.MISC)) {
|
||||||
|
recordUnit = new BlendedTPWPixel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return recordUnit;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
*
|
*
|
||||||
|
@ -139,8 +193,7 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
result = prime * result + ((dataset == null) ? 0 : dataset.hashCode());
|
result = prime * result + ((dataset == null) ? 0 : dataset.hashCode());
|
||||||
result = prime * result
|
result = prime * result
|
||||||
+ ((datasetBounds == null) ? 0 : datasetBounds.hashCode());
|
+ ((datasetBounds == null) ? 0 : datasetBounds.hashCode());
|
||||||
result = prime * result + ((pdo == null) ? 0 : pdo.hashCode());
|
result = prime * result + ((record == null) ? 0 : record.hashCode());
|
||||||
result = prime * result + (signed ? 1231 : 1237);
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,12 +221,10 @@ public class SatDataRetriever implements IColorMapDataRetrievalCallback {
|
||||||
return false;
|
return false;
|
||||||
} else if (!datasetBounds.equals(other.datasetBounds))
|
} else if (!datasetBounds.equals(other.datasetBounds))
|
||||||
return false;
|
return false;
|
||||||
if (pdo == null) {
|
if (record == null) {
|
||||||
if (other.pdo != null)
|
if (other.record != null)
|
||||||
return false;
|
return false;
|
||||||
} else if (!pdo.equals(other.pdo))
|
} else if (!record.equals(other.record))
|
||||||
return false;
|
|
||||||
if (signed != other.signed)
|
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,8 @@ package com.raytheon.viz.satellite.tileset;
|
||||||
|
|
||||||
import com.raytheon.uf.common.colormap.image.ColorMapData;
|
import com.raytheon.uf.common.colormap.image.ColorMapData;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
import com.raytheon.uf.common.dataplugin.satellite.SatelliteRecord;
|
||||||
import com.raytheon.uf.common.dataplugin.satellite.units.generic.GenericPixel;
|
import com.raytheon.uf.viz.core.IGraphicsTarget;
|
||||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||||
import com.raytheon.uf.viz.core.rsc.capabilities.ColorMapCapability;
|
|
||||||
import com.raytheon.uf.viz.core.tile.RecordTileSetRenderable;
|
import com.raytheon.uf.viz.core.tile.RecordTileSetRenderable;
|
||||||
import com.raytheon.uf.viz.core.tile.Tile;
|
import com.raytheon.uf.viz.core.tile.Tile;
|
||||||
|
|
||||||
|
@ -47,9 +46,7 @@ import com.raytheon.uf.viz.core.tile.Tile;
|
||||||
|
|
||||||
public class SatTileSetRenderable extends RecordTileSetRenderable {
|
public class SatTileSetRenderable extends RecordTileSetRenderable {
|
||||||
|
|
||||||
private final boolean signed;
|
private final AbstractVizResource<?, ?> resource;
|
||||||
|
|
||||||
private final AbstractVizResource<?,?> resource;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create satellite tile set renderable
|
* Create satellite tile set renderable
|
||||||
|
@ -58,22 +55,26 @@ public class SatTileSetRenderable extends RecordTileSetRenderable {
|
||||||
* @param record
|
* @param record
|
||||||
* @param signed
|
* @param signed
|
||||||
*/
|
*/
|
||||||
public SatTileSetRenderable(AbstractVizResource<?,?> resource, SatelliteRecord record) {
|
public SatTileSetRenderable(AbstractVizResource<?, ?> resource,
|
||||||
|
SatelliteRecord record) {
|
||||||
// Total levels = Number of interpolation levels + base level
|
// Total levels = Number of interpolation levels + base level
|
||||||
super(resource, record, record.getSpatialObject(), record
|
super(resource, record, record.getSpatialObject(), record
|
||||||
.getInterpolationLevels() + 1);
|
.getInterpolationLevels() + 1);
|
||||||
this.resource = resource;
|
this.resource = resource;
|
||||||
// TODO: Better way of determining this (taken from SatFileBasedTileSet)
|
|
||||||
this.signed = resource.getCapability(ColorMapCapability.class)
|
|
||||||
.getColorMapParameters().getDataUnit() instanceof GenericPixel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ColorMapData retrieveRecordData(Tile tile) {
|
protected ColorMapData retrieveRecordData(Tile tile) {
|
||||||
ColorMapData data = new SatDataRetriever(record, tile.tileLevel,
|
return new SatDataRetriever((SatelliteRecord) record, tile.tileLevel,
|
||||||
tile.getRectangle(), signed).getColorMapData();
|
tile.getRectangle()).getColorMapData();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void issueRefresh(IGraphicsTarget target) {
|
||||||
|
super.issueRefresh(target);
|
||||||
resource.issueRefresh();
|
resource.issueRefresh();
|
||||||
return data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public SatelliteRecord getSatelliteRecord() {
|
public SatelliteRecord getSatelliteRecord() {
|
||||||
|
|
|
@ -85,6 +85,7 @@ public class SatelliteUnits {
|
||||||
public static final Unit<Dimensionless> GENERIC_PIXEL = new GenericPixel();
|
public static final Unit<Dimensionless> GENERIC_PIXEL = new GenericPixel();
|
||||||
|
|
||||||
public static void register() {
|
public static void register() {
|
||||||
|
UnitFormat.getUCUMInstance().alias(SI.KELVIN, "kelvin");
|
||||||
UnitFormat.getUCUMInstance().alias(SI.CELSIUS, "C");
|
UnitFormat.getUCUMInstance().alias(SI.CELSIUS, "C");
|
||||||
UnitFormat.getUCUMInstance().label(SatelliteUnits.IR_PIXEL, "IRPixel");
|
UnitFormat.getUCUMInstance().label(SatelliteUnits.IR_PIXEL, "IRPixel");
|
||||||
UnitFormat.getUCUMInstance().label(SatelliteUnits.PRECIP_PIXEL,
|
UnitFormat.getUCUMInstance().label(SatelliteUnits.PRECIP_PIXEL,
|
||||||
|
|
|
@ -5,8 +5,7 @@ Bundle-SymbolicName: com.raytheon.uf.common.geospatial
|
||||||
Bundle-Version: 1.12.1174.qualifier
|
Bundle-Version: 1.12.1174.qualifier
|
||||||
Bundle-Vendor: RAYTHEON
|
Bundle-Vendor: RAYTHEON
|
||||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||||
Eclipse-BuddyPolicy: ext, registered, global
|
Eclipse-RegisterBuddy: com.raytheon.uf.common.serialization, org.geotools
|
||||||
Eclipse-RegisterBuddy: com.raytheon.viz.core
|
|
||||||
Require-Bundle: org.geotools;bundle-version="2.5.2";visibility:=reexport,
|
Require-Bundle: org.geotools;bundle-version="2.5.2";visibility:=reexport,
|
||||||
org.apache.commons.collections;bundle-version="3.2.0",
|
org.apache.commons.collections;bundle-version="3.2.0",
|
||||||
org.apache.commons.lang;bundle-version="2.3.0",
|
org.apache.commons.lang;bundle-version="2.3.0",
|
||||||
|
@ -20,6 +19,7 @@ Require-Bundle: org.geotools;bundle-version="2.5.2";visibility:=reexport,
|
||||||
Export-Package: com.raytheon.uf.common.geospatial,
|
Export-Package: com.raytheon.uf.common.geospatial,
|
||||||
com.raytheon.uf.common.geospatial.interpolation,
|
com.raytheon.uf.common.geospatial.interpolation,
|
||||||
com.raytheon.uf.common.geospatial.interpolation.data,
|
com.raytheon.uf.common.geospatial.interpolation.data,
|
||||||
|
com.raytheon.uf.common.geospatial.projection,
|
||||||
com.raytheon.uf.common.geospatial.request,
|
com.raytheon.uf.common.geospatial.request,
|
||||||
com.raytheon.uf.common.geospatial.spi,
|
com.raytheon.uf.common.geospatial.spi,
|
||||||
com.raytheon.uf.common.geospatial.util
|
com.raytheon.uf.common.geospatial.util
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
com.raytheon.uf.common.geospatial.projection.Geostationary$Provider
|
|
@ -0,0 +1,251 @@
|
||||||
|
/**
|
||||||
|
* This software was developed and / or modified by Raytheon Company,
|
||||||
|
* pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
*
|
||||||
|
* U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
* This software product contains export-restricted data whose
|
||||||
|
* export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
* to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
* an export license or other authorization.
|
||||||
|
*
|
||||||
|
* Contractor Name: Raytheon Company
|
||||||
|
* Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
* Mail Stop B8
|
||||||
|
* Omaha, NE 68106
|
||||||
|
* 402.291.0100
|
||||||
|
*
|
||||||
|
* See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
* further licenMath.sing information.
|
||||||
|
**/
|
||||||
|
package com.raytheon.uf.common.geospatial.projection;
|
||||||
|
|
||||||
|
import java.awt.geom.Point2D;
|
||||||
|
|
||||||
|
import javax.measure.unit.SI;
|
||||||
|
import javax.measure.unit.Unit;
|
||||||
|
|
||||||
|
import org.geotools.parameter.DefaultParameterDescriptor;
|
||||||
|
import org.geotools.parameter.DefaultParameterDescriptorGroup;
|
||||||
|
import org.geotools.referencing.operation.MathTransformProvider;
|
||||||
|
import org.geotools.referencing.operation.projection.MapProjection;
|
||||||
|
import org.geotools.referencing.operation.projection.ProjectionException;
|
||||||
|
import org.opengis.parameter.InvalidParameterNameException;
|
||||||
|
import org.opengis.parameter.InvalidParameterValueException;
|
||||||
|
import org.opengis.parameter.ParameterDescriptor;
|
||||||
|
import org.opengis.parameter.ParameterDescriptorGroup;
|
||||||
|
import org.opengis.parameter.ParameterNotFoundException;
|
||||||
|
import org.opengis.parameter.ParameterValueGroup;
|
||||||
|
import org.opengis.referencing.FactoryException;
|
||||||
|
import org.opengis.referencing.operation.MathTransform;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Geostationary map projection. Earth as viewed from space.
|
||||||
|
*
|
||||||
|
* TODO Add support latitude of origin != 0.0
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
*
|
||||||
|
* SOFTWARE HISTORY
|
||||||
|
*
|
||||||
|
* Date Ticket# Engineer Description
|
||||||
|
* ------------ ---------- ----------- --------------------------
|
||||||
|
* Jun 27, 2013 mschenke Initial creation
|
||||||
|
*
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author mschenke
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class Geostationary extends MapProjection {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 4747155239658791357L;
|
||||||
|
|
||||||
|
public static final String PROJECTION_NAME = "Geostationary";
|
||||||
|
|
||||||
|
public static final String PERSPECTIVE_HEIGHT = "perspective_height";
|
||||||
|
|
||||||
|
public static final String SWEEP_AXIS = "sweep_axis";
|
||||||
|
|
||||||
|
static final double DEFAULT_PERSPECTIVE_HEIGHT = 35800000.0;
|
||||||
|
|
||||||
|
private double perspectiveHeight = DEFAULT_PERSPECTIVE_HEIGHT;
|
||||||
|
|
||||||
|
private boolean swapAxis = false;
|
||||||
|
|
||||||
|
private double radius_g, radius_g_1, radius_p, radius_p2, radius_p_inv2, C;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param values
|
||||||
|
* @throws ParameterNotFoundException
|
||||||
|
*/
|
||||||
|
protected Geostationary(ParameterValueGroup values)
|
||||||
|
throws ParameterNotFoundException {
|
||||||
|
super(values);
|
||||||
|
this.perspectiveHeight = Provider.getValue(Provider.PERSPECTIVE_HEIGHT,
|
||||||
|
values);
|
||||||
|
double sweepValue = Provider.getValue(Provider.SWEEP_AXIS, values);
|
||||||
|
this.swapAxis = sweepValue == 1.0;
|
||||||
|
double h = perspectiveHeight;
|
||||||
|
double a = semiMajor;
|
||||||
|
double b = semiMinor;
|
||||||
|
double es = 1.0 - (b * b) / (a * a);
|
||||||
|
double one_es = 1.0 - es;
|
||||||
|
double rone_es = 1.0 / one_es;
|
||||||
|
|
||||||
|
radius_g_1 = h / a;
|
||||||
|
radius_g = 1 + radius_g_1;
|
||||||
|
radius_p2 = one_es;
|
||||||
|
radius_p_inv2 = rone_es;
|
||||||
|
radius_p = Math.sqrt(radius_p2);
|
||||||
|
C = radius_g * radius_g - 1.0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.geotools.referencing.operation.projection.MapProjection#
|
||||||
|
* getParameterDescriptors()
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ParameterDescriptorGroup getParameterDescriptors() {
|
||||||
|
return Provider.PARAMETERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.geotools.referencing.operation.projection.MapProjection#
|
||||||
|
* inverseTransformNormalized(double, double, java.awt.geom.Point2D)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Point2D inverseTransformNormalized(double x, double y,
|
||||||
|
Point2D ptDst) throws ProjectionException {
|
||||||
|
double lam, phi;
|
||||||
|
double Vx, Vy, Vz, a, b, det, k;
|
||||||
|
|
||||||
|
/* Setting three components of vector from satellite to position. */
|
||||||
|
Vx = -1.0;
|
||||||
|
if (swapAxis) {
|
||||||
|
Vz = Math.tan(y / radius_g_1);
|
||||||
|
Vy = Math.tan(x / radius_g_1) * Math.hypot(1.0, Vz);
|
||||||
|
} else {
|
||||||
|
Vy = Math.tan(x / radius_g_1);
|
||||||
|
Vz = Math.tan(y / radius_g_1) * Math.hypot(1.0, Vy);
|
||||||
|
}
|
||||||
|
/* Calculation of terms in cubic equation and determinant. */
|
||||||
|
a = Vz / radius_p;
|
||||||
|
a = Vy * Vy + a * a + Vx * Vx;
|
||||||
|
b = 2 * radius_g * Vx;
|
||||||
|
if ((det = (b * b) - 4 * a * C) < 0.) {
|
||||||
|
lam = phi = Double.NaN;
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
* Calculation of three components of vector from satellite to
|
||||||
|
* position.
|
||||||
|
*/
|
||||||
|
k = (-b - Math.sqrt(det)) / (2. * a);
|
||||||
|
Vx = radius_g + k * Vx;
|
||||||
|
Vy *= k;
|
||||||
|
Vz *= k;
|
||||||
|
/* Calculation of longitude and latitude. */
|
||||||
|
lam = Math.atan2(Vy, Vx);
|
||||||
|
phi = Math.atan(Vz * Math.cos(lam) / Vx);
|
||||||
|
phi = Math.atan(radius_p_inv2 * Math.tan(phi));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ptDst == null) {
|
||||||
|
ptDst = new Point2D.Double();
|
||||||
|
}
|
||||||
|
ptDst.setLocation(lam, phi);
|
||||||
|
return ptDst;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.geotools.referencing.operation.projection.MapProjection#
|
||||||
|
* transformNormalized(double, double, java.awt.geom.Point2D)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected Point2D transformNormalized(double lam, double phi, Point2D ptDst)
|
||||||
|
throws ProjectionException {
|
||||||
|
double x, y;
|
||||||
|
double r, Vx, Vy, Vz, tmp;
|
||||||
|
|
||||||
|
/* Calculation of geocentric latitude. */
|
||||||
|
phi = Math.atan(radius_p2 * Math.tan(phi));
|
||||||
|
/*
|
||||||
|
* Calculation of the three components of the vector from satellite to*
|
||||||
|
* position on earth surface (lon,lat).
|
||||||
|
*/
|
||||||
|
r = (radius_p) / Math.hypot(radius_p * Math.cos(phi), Math.sin(phi));
|
||||||
|
Vx = r * Math.cos(lam) * Math.cos(phi);
|
||||||
|
Vy = r * Math.sin(lam) * Math.cos(phi);
|
||||||
|
Vz = r * Math.sin(phi);
|
||||||
|
/* Check visibility. */
|
||||||
|
if (((radius_g - Vx) * Vx - Vy * Vy - Vz * Vz * radius_p_inv2) < 0.) {
|
||||||
|
x = y = Double.NaN;
|
||||||
|
} else {
|
||||||
|
/* Calculation based on view angles from satellite. */
|
||||||
|
tmp = radius_g - Vx;
|
||||||
|
if (swapAxis) {
|
||||||
|
x = radius_g_1 * Math.atan(Vy / Math.hypot(Vz, tmp));
|
||||||
|
y = radius_g_1 * Math.atan(Vz / tmp);
|
||||||
|
} else {
|
||||||
|
x = radius_g_1 * Math.atan(Vy / tmp);
|
||||||
|
y = radius_g_1 * Math.atan(Vz / Math.hypot(Vy, tmp));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ptDst == null) {
|
||||||
|
ptDst = new Point2D.Double();
|
||||||
|
}
|
||||||
|
ptDst.setLocation(x, y);
|
||||||
|
return ptDst;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class Provider extends AbstractProvider {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 3868187206568280453L;
|
||||||
|
|
||||||
|
static final ParameterDescriptor<Double> PERSPECTIVE_HEIGHT = DefaultParameterDescriptor
|
||||||
|
.create(Geostationary.PERSPECTIVE_HEIGHT,
|
||||||
|
DEFAULT_PERSPECTIVE_HEIGHT, 0, Double.MAX_VALUE,
|
||||||
|
SI.METER);
|
||||||
|
|
||||||
|
static final ParameterDescriptor<Double> SWEEP_AXIS = DefaultParameterDescriptor
|
||||||
|
.create(Geostationary.SWEEP_AXIS, 0.0, 0.0, 1.0, Unit.ONE);
|
||||||
|
|
||||||
|
static final ParameterDescriptorGroup PARAMETERS = new DefaultParameterDescriptorGroup(
|
||||||
|
PROJECTION_NAME, new ParameterDescriptor[] {
|
||||||
|
SEMI_MAJOR, SEMI_MINOR, CENTRAL_MERIDIAN,
|
||||||
|
LATITUDE_OF_ORIGIN, FALSE_EASTING, FALSE_NORTHING,
|
||||||
|
PERSPECTIVE_HEIGHT, SWEEP_AXIS });
|
||||||
|
|
||||||
|
public Provider() {
|
||||||
|
super(PARAMETERS);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* (non-Javadoc)
|
||||||
|
*
|
||||||
|
* @see org.geotools.referencing.operation.MathTransformProvider#
|
||||||
|
* createMathTransform (org.opengis.parameter.ParameterValueGroup)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
protected MathTransform createMathTransform(ParameterValueGroup values)
|
||||||
|
throws InvalidParameterNameException,
|
||||||
|
ParameterNotFoundException, InvalidParameterValueException,
|
||||||
|
FactoryException {
|
||||||
|
return new Geostationary(values);
|
||||||
|
}
|
||||||
|
|
||||||
|
static <T> T getValue(ParameterDescriptor<T> descriptor,
|
||||||
|
ParameterValueGroup group) {
|
||||||
|
return MathTransformProvider.value(descriptor, group);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -187,8 +187,8 @@ public class EnvelopeIntersection {
|
||||||
if (coords[0].equals(coords[coords.length - 1])) {
|
if (coords[0].equals(coords[coords.length - 1])) {
|
||||||
border = gf.createPolygon(gf.createLinearRing(coords), null);
|
border = gf.createPolygon(gf.createLinearRing(coords), null);
|
||||||
border = correctedPolygon = JTS.transform(corrector.correct(JTS
|
border = correctedPolygon = JTS.transform(corrector.correct(JTS
|
||||||
.transform(border,
|
.transform(border, targetCRSToLatLon)),
|
||||||
targetCRSToLatLon)), latLonToTargetCRS);
|
latLonToTargetCRS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((border == null || border.isEmpty() || border.isValid() == false)
|
if ((border == null || border.isEmpty() || border.isValid() == false)
|
||||||
|
@ -504,7 +504,8 @@ public class EnvelopeIntersection {
|
||||||
for (LineString ls : lineStrings) {
|
for (LineString ls : lineStrings) {
|
||||||
envelopes.add(ls.getEnvelope());
|
envelopes.add(ls.getEnvelope());
|
||||||
}
|
}
|
||||||
gf.createGeometryCollection(envelopes.toArray(new Geometry[0]));
|
border = gf.createGeometryCollection(envelopes
|
||||||
|
.toArray(new Geometry[0]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue