VLab Issue #5929 - NSHARP freezes when loading a sounding from MDCRS
products in Volume Browser Change-Id: I6578174c6f446a2d702eeca0577717715d13fcfa Former-commit-id:cae95251bb
[formerlyddaca01b1d
] [formerlycae95251bb
[formerlyddaca01b1d
] [formerlyea9ef0f93e
[formerly 209e62cc40160cd023e42711a008afb0ef39d3ea]]] Former-commit-id:ea9ef0f93e
Former-commit-id:11ac77f233
[formerly4d2a987a9f
] Former-commit-id:e1642ff74e
This commit is contained in:
parent
544e470b41
commit
9b35775e37
8 changed files with 597 additions and 471 deletions
|
@ -19,6 +19,9 @@ import java.util.List;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------- ------- -------- -----------
|
||||
* 04/23/2012 229 Chin Chen Initial coding
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -37,9 +40,10 @@ public class NsharpSoundingElementStateProperty {
|
|||
private int compColorIndex;
|
||||
private List<NcSoundingLayer> sndLyLst;
|
||||
private List<NcSoundingLayer> sndLyLstBk;
|
||||
private boolean goodData = true; //#5929
|
||||
public NsharpSoundingElementStateProperty(String elementDescription,
|
||||
String stnDescription,
|
||||
String timeDescription, NsharpStationInfo stnInfo, List<NcSoundingLayer> sndLyLst) {
|
||||
String timeDescription, NsharpStationInfo stnInfo, List<NcSoundingLayer> sndLyLst, boolean goodData) {
|
||||
super();
|
||||
this.elementDescription = elementDescription;
|
||||
//this.elementState = elementState;
|
||||
|
@ -49,6 +53,7 @@ public class NsharpSoundingElementStateProperty {
|
|||
this.sndType = stnInfo.getSndType();
|
||||
this.compColorIndex = NsharpConstants.LINE_COMP1;;
|
||||
this.sndLyLst = sndLyLst;
|
||||
this.goodData = goodData; //#5929
|
||||
sndLyLstBk= new ArrayList<NcSoundingLayer>(sndLyLst.size());
|
||||
for(NcSoundingLayer ly : sndLyLst){
|
||||
try {
|
||||
|
@ -135,4 +140,12 @@ public class NsharpSoundingElementStateProperty {
|
|||
}
|
||||
}
|
||||
|
||||
public boolean isGoodData() {
|
||||
return goodData;
|
||||
}
|
||||
|
||||
public void setGoodData(boolean goodData) {
|
||||
this.goodData = goodData;
|
||||
}
|
||||
|
||||
}
|
|
@ -13,6 +13,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* 04/23/2012 229 Chin Chen Initial coding
|
||||
* 04/23/2014 Chin Chen Add d2d lite page
|
||||
* 08/11/2014 Chin Chen fix typo
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -60,7 +63,8 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
// number of this page. index 0
|
||||
// point to a dummy.
|
||||
|
||||
private static final String NO_DATA = "NO VALID DATA AVAILABLE";
|
||||
private static final String NO_DATA = "NO VALID DATA AVAILABLE FOR THIS PAGE";
|
||||
private static final String INSUFFICIENT_DATA = "INSUFFICIENT DATA FOR PARAMETERS COMPUTATION";
|
||||
|
||||
// private double charHeight = NsharpConstants.CHAR_HEIGHT_;
|
||||
private double curY;
|
||||
|
@ -160,7 +164,7 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
handleResize();
|
||||
}
|
||||
|
||||
if ((soundingLys != null) && (soundingLys.size() >= 4)) {
|
||||
if ((soundingLys != null) && (rscHandler.isGoodData())) {//#5929
|
||||
this.defaultFont.setSmoothing(false);
|
||||
this.defaultFont.setScaleFont(false);
|
||||
// write to panels
|
||||
|
@ -187,6 +191,9 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
}
|
||||
}
|
||||
}
|
||||
else { //#5929
|
||||
drawInsuffDataMessage(target, panelRectArray[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -240,6 +247,28 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
currentParcel = NsharpNativeConstants.PARCELTYPE_MOST_UNSTABLE;
|
||||
}
|
||||
|
||||
@SuppressWarnings("deprecation") //#5929
|
||||
private void drawInsuffDataMessage(IGraphicsTarget target, Rectangle rect)
|
||||
throws VizException {
|
||||
IFont myfont;
|
||||
if (paneConfigurationName.equals(NsharpConstants.PANE_LITE_D2D_CFG_STR))
|
||||
myfont = font9;
|
||||
else
|
||||
myfont = font20;
|
||||
|
||||
defineCharHeight(myfont);
|
||||
myfont.setSmoothing(false);
|
||||
myfont.setScaleFont(false);
|
||||
sumP1Visible = true;
|
||||
extent = new PixelExtent(rect);
|
||||
target.setupClippingPlane(extent);
|
||||
target.drawString(myfont, INSUFFICIENT_DATA, rect.x,
|
||||
rect.y, 0.0, TextStyle.NORMAL, NsharpConstants.color_cyan,
|
||||
HorizontalAlignment.LEFT, VerticalAlignment.TOP, null);
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
private void drawPanel(IGraphicsTarget target, int pageOrderNumber,
|
||||
int dsiplayPanelNumber) throws VizException {
|
||||
if (pageOrderNumber > NsharpConstants.PAGE_MAX_NUMBER
|
||||
|
@ -344,7 +373,7 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
// if we can not Interpolates a temp with 700 mb pressure, then we dont
|
||||
// have enough raw data
|
||||
if ((nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0)) {
|
||||
target.drawString(myfont, " " + NO_DATA, rect.x,
|
||||
target.drawString(myfont, NO_DATA, rect.x,
|
||||
rect.y, 0.0, TextStyle.NORMAL, NsharpConstants.color_cyan,
|
||||
HorizontalAlignment.LEFT, VerticalAlignment.TOP, null);
|
||||
return;
|
||||
|
@ -1053,7 +1082,7 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
// if we can not Interpolates a temp with 700 mb pressure, then we dont
|
||||
// have enough raw data
|
||||
if (nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0) {
|
||||
target.drawString(myfont, " " + NO_DATA, rect.x,
|
||||
target.drawString(myfont,NO_DATA, rect.x,
|
||||
rect.y, 0.0, TextStyle.NORMAL, NsharpConstants.color_cyan,
|
||||
HorizontalAlignment.LEFT, VerticalAlignment.TOP, null);
|
||||
return;
|
||||
|
@ -3749,7 +3778,7 @@ public class NsharpDataPaneResource extends NsharpAbstractPaneResource {
|
|||
// if we can not Interpolates a temp with 700 mb pressure, then we dont
|
||||
// have enough raw data
|
||||
if ((nsharpNative.nsharpLib.qc(nsharpNative.nsharpLib.itemp(700.0F)) == 0)) {
|
||||
target.drawString(myfont, " " + NO_DATA, rect.x,
|
||||
target.drawString(myfont, NO_DATA, rect.x,
|
||||
rect.y, 0.0, TextStyle.NORMAL, NsharpConstants.color_cyan,
|
||||
HorizontalAlignment.LEFT, VerticalAlignment.TOP, null);
|
||||
return;
|
||||
|
|
|
@ -10,6 +10,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------- ------- -------- -----------
|
||||
* 04/23/2012 229 Chin Chen Initial coding
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -127,7 +130,7 @@ public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{
|
|||
hodoWindRscShapeList.add(shNcolor);
|
||||
}
|
||||
|
||||
|
||||
float surfaceLevel = soundingLays.get(0).getGeoHeight(); //#5929
|
||||
for (NcSoundingLayer layer : soundingLays){
|
||||
if(layer.getPressure() < 100 || layer.getWindSpeed() <0)
|
||||
continue;
|
||||
|
@ -138,15 +141,15 @@ public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{
|
|||
double [][] lines = {{world.mapX(c0.x), world.mapY(c0.y)},{world
|
||||
.mapX(c1.x), world.mapY(c1.y)}};
|
||||
if(incolor == null){
|
||||
if(layer.getGeoHeight() <nsharpNative.nsharpLib.msl(3000)){
|
||||
//red
|
||||
//use MSL here, so Converts height from (meters) AGL to MSL. #5929
|
||||
if(layer.getGeoHeight() < (3000+surfaceLevel)){
|
||||
shapeR.addLineSegment(lines);
|
||||
}
|
||||
else if(layer.getGeoHeight() < nsharpNative.nsharpLib.msl(6000))
|
||||
else if(layer.getGeoHeight() < (6000+surfaceLevel))
|
||||
shapeG.addLineSegment(lines);
|
||||
else if(layer.getGeoHeight() < nsharpNative.nsharpLib.msl(9000))
|
||||
else if(layer.getGeoHeight() < (9000+surfaceLevel))
|
||||
shapeY.addLineSegment(lines);
|
||||
else if(layer.getGeoHeight() < nsharpNative.nsharpLib.msl(12000))
|
||||
else if(layer.getGeoHeight() < (12000+surfaceLevel))
|
||||
shapeC.addLineSegment(lines);
|
||||
else
|
||||
shapeV.addLineSegment(lines);
|
||||
|
@ -177,6 +180,7 @@ public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{
|
|||
}
|
||||
hodoWindRscShapeList.clear();
|
||||
}
|
||||
|
||||
world = hodoBackground.computeWorld();
|
||||
boolean compareStnIsOn = rscHandler.isCompareStnIsOn();
|
||||
int currentTimeListIndex = rscHandler.getCurrentTimeElementListIndex();
|
||||
|
@ -575,7 +579,7 @@ public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{
|
|||
return;
|
||||
|
||||
hodoBackground.paintInternal(target, paintProps);
|
||||
if((soundingLys != null) && (soundingLys.size()>= 4))
|
||||
if((soundingLys != null) && (soundingLys.size()> 2) )
|
||||
{
|
||||
this.font10.setSmoothing(false);
|
||||
this.font10.setScaleFont(false);
|
||||
|
@ -605,8 +609,6 @@ public class NsharpHodoPaneResource extends NsharpAbstractPaneResource{
|
|||
|
||||
drawHodoDynamicData(target, currentZoomLevel);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -10,6 +10,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------- ------- -------- -----------
|
||||
* 04/23/2012 229 Chin Chen Initial coding
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -181,7 +184,7 @@ public class NsharpInsetPaneResource extends NsharpAbstractPaneResource{
|
|||
//Chin, since we only display 4 insets and their backgrounds have same size, only draws 4 backgrounds.
|
||||
//psblWatchTypeBackground.paint(target, paintProps);
|
||||
//thetaEPresureBackground.paint(target, paintProps);
|
||||
if((soundingLys != null) && (soundingLys.size()>= 4))
|
||||
if((soundingLys != null) && rscHandler.isGoodData()) //#5929)
|
||||
{
|
||||
this.font10.setSmoothing(false);
|
||||
this.font10.setScaleFont(false);
|
||||
|
@ -294,7 +297,7 @@ public class NsharpInsetPaneResource extends NsharpAbstractPaneResource{
|
|||
return;
|
||||
//System.out.println("createRscWireFrameShapes called");
|
||||
disposeInsetWireFrameShapes();
|
||||
if(soundingLys != null){
|
||||
if(soundingLys != null && rscHandler.isGoodData()){ //#5929
|
||||
|
||||
WGraphics WGc= thetaEPresureBackground.getWorld();
|
||||
createRscThetaEPressureShape(WGc);
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
* 02/03/2014 1106 Chin Chen Need to be able to use clicking on the Src,Time, or StnId to select display
|
||||
* 08/12/2014 Chin Chen fixed issue that "load archive file with wrong time line displayed"
|
||||
* 12/04/2014 DR16888 Chin Chen fixed issue that "Comp(Src) button not functioning properly in NSHARP display"
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
* </pre>
|
||||
*
|
||||
* @author Chin Chen
|
||||
|
@ -161,6 +164,8 @@ public class NsharpResourceHandler {
|
|||
|
||||
private int[] pageDisplayOrderNumberArray = new int[NsharpConstants.PAGE_MAX_NUMBER + 1];
|
||||
|
||||
//#5929
|
||||
private boolean goodData=false;
|
||||
// index is the real page defined in NsharpConstants to be shown, value is
|
||||
// the order number of this page.
|
||||
// index 0 point to a dummy.
|
||||
|
@ -981,6 +986,7 @@ public class NsharpResourceHandler {
|
|||
if (skewtPaneRsc != null)
|
||||
skewtPaneRsc
|
||||
.setCurrentSkewTEditMode(NsharpConstants.SKEWT_EDIT_MODE_EDITPOINT);
|
||||
elem.setGoodData(checkDataIntegrity(soundingLys));//#5929
|
||||
resetData();
|
||||
}
|
||||
|
||||
|
@ -993,6 +999,11 @@ public class NsharpResourceHandler {
|
|||
|
||||
// update active sounding layer and picked stn info
|
||||
// re-populate snd data to nsharp native code lib for later calculating
|
||||
//#5929 dont populate sounding data if data is bad
|
||||
|
||||
if(getCurSoundingElementStateProperty()!=null)
|
||||
goodData= getCurSoundingElementStateProperty().isGoodData();
|
||||
if(goodData)
|
||||
nsharpNative.populateSndgData(soundingLys);
|
||||
|
||||
if (skewtPaneRsc != null)
|
||||
|
@ -1013,7 +1024,7 @@ public class NsharpResourceHandler {
|
|||
// if soundingLys is null, then we stop here, after reset data.
|
||||
if (soundingLys == null)
|
||||
return;
|
||||
if (soundingLys.size() > 0) {
|
||||
if (soundingLys.size() > 0 && (goodData)) {
|
||||
// set initial hodohouseC
|
||||
|
||||
// ----- set hodo circle at Bunkers Right, Chin according to TTR6065
|
||||
|
@ -1044,11 +1055,7 @@ public class NsharpResourceHandler {
|
|||
* that really meant to reset parcel type.
|
||||
*/
|
||||
}
|
||||
// Chin: TBD remove handle resize here to fix sizing issue when swapped
|
||||
// nsharp from side pane back to main pane
|
||||
// but, may cause other problem?
|
||||
// if(skewtPaneRsc!=null)
|
||||
// skewtPaneRsc.handleResize();
|
||||
|
||||
if (skewtPaneRsc != null)
|
||||
skewtPaneRsc.createRscWireFrameShapes();
|
||||
if (hodoPaneRsc != null)
|
||||
|
@ -1057,7 +1064,7 @@ public class NsharpResourceHandler {
|
|||
insetPaneRsc.createInsetWireFrameShapes();
|
||||
if (witoPaneRsc != null)
|
||||
witoPaneRsc.createAllWireFrameShapes();
|
||||
if (spcGraphsPaneRsc != null) {
|
||||
if (spcGraphsPaneRsc != null && (goodData) ){//#5929
|
||||
// Chin: SPC graphs performance concern, as it need to call get
|
||||
// info functions from bigSharo.so and cause long delay.
|
||||
// Therefore, do it once only when reset data.
|
||||
|
@ -1177,7 +1184,7 @@ public class NsharpResourceHandler {
|
|||
|
||||
private void addElementToTableAndLists(String stnId_timeLine_sndType,
|
||||
String stnId, String tmLine, String sndType,
|
||||
NsharpStationInfo stnInfo, List<NcSoundingLayer> sndLyLst) {
|
||||
NsharpStationInfo stnInfo, List<NcSoundingLayer> sndLyLst, boolean goodData) {
|
||||
// System.out.println("stn to be added "+ stnId + " timeline "+tmLine);
|
||||
NsharpSoundingElementStateProperty newSndPropElem = null;
|
||||
int tmIndex = getIndexFromElementList(tmLine, timeElementList);
|
||||
|
@ -1197,7 +1204,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData); //#5929
|
||||
stnTimeSndTable.get(stnIndex).get(tmIndex)
|
||||
.set(sndTpyeIndex, newSndPropElem);
|
||||
}
|
||||
|
@ -1214,7 +1221,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1231,7 +1238,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1253,7 +1260,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1274,7 +1281,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1296,7 +1303,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1321,7 +1328,7 @@ public class NsharpResourceHandler {
|
|||
// NsharpSoundingElementStateProperty object
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
stnTimeSndTable.get(currentStnElementListIndex)
|
||||
.get(currentTimeElementListIndex)
|
||||
.set(currentSndElementListIndex, newSndPropElem);
|
||||
|
@ -1357,7 +1364,7 @@ public class NsharpResourceHandler {
|
|||
// one new loaded sounding data
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId,
|
||||
tmLine, stnInfo, sndLyLst);
|
||||
tmLine, stnInfo, sndLyLst,goodData);
|
||||
|
||||
sndlistForTm.add(newSndPropElem);
|
||||
} else {
|
||||
|
@ -1405,7 +1412,7 @@ public class NsharpResourceHandler {
|
|||
|
||||
newSndPropElem = new NsharpSoundingElementStateProperty(
|
||||
stnId_timeLine_sndType, stnId, tmLine, stnInfo,
|
||||
sndLyLst);
|
||||
sndLyLst,goodData);
|
||||
newList.add(newSndPropElem);
|
||||
newListList.add(newList);
|
||||
stnTimeSndTable.add(newListList);
|
||||
|
@ -1862,6 +1869,21 @@ public class NsharpResourceHandler {
|
|||
*
|
||||
* }
|
||||
*/
|
||||
//task#5929
|
||||
private boolean checkDataIntegrity(List<NcSoundingLayer> sndLayers){
|
||||
boolean gooddata = false;
|
||||
int numberOfTemp=0;
|
||||
int numberOfGoodDewPt=0;
|
||||
for(NcSoundingLayer layer: sndLayers){
|
||||
if(layer.getTemperature() > -999)
|
||||
numberOfTemp++;
|
||||
if(layer.getDewpoint() > -999)
|
||||
numberOfGoodDewPt++;
|
||||
}
|
||||
if(numberOfGoodDewPt >= 2 && numberOfTemp>=2)
|
||||
gooddata=true;
|
||||
return gooddata;
|
||||
}
|
||||
|
||||
// This api peforms real load data function
|
||||
private void addRsc(boolean displayNewData,
|
||||
|
@ -1875,7 +1897,7 @@ public class NsharpResourceHandler {
|
|||
// // newkey=
|
||||
// String newkey =key.replace("NCUAIR", "gpduair"); // String newkey =
|
||||
// String newkey= key.replace("NAMS", "SSS");
|
||||
//String newkey = key.replace("130925/00(Wed)V000", "130925/00(Thu)V000");
|
||||
// String newkey = key.replace("130925/17(Wed)V017", "131001/00(Thu)V000");
|
||||
// soundMap.put(newkey, sndLy);
|
||||
// }
|
||||
// // stnInfo.setSndType(stnInfo.getSndType().replace("NCUAIR", //
|
||||
|
@ -1931,9 +1953,15 @@ public class NsharpResourceHandler {
|
|||
// based on this KEY string format "KGRI 100616/03(Wed)Vxxx GFSSND"
|
||||
String stnId, sndType, timeLine, timeLine_sndType, stnId_timeLine_sndType;
|
||||
List<NcSoundingLayer> sndLyLst;
|
||||
|
||||
try {
|
||||
stnId_timeLine_sndType = tempTimeLineArr[i].toString();
|
||||
if(stnId_timeLine_sndType.equals("N/A"))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
sndLyLst = soundMap.get(stnId_timeLine_sndType);
|
||||
|
||||
stnId = stnId_timeLine_sndType.substring(0,
|
||||
stnId_timeLine_sndType.indexOf(" "));
|
||||
timeLine_sndType = stnId_timeLine_sndType
|
||||
|
@ -2022,8 +2050,10 @@ public class NsharpResourceHandler {
|
|||
// No more needed? timeLine = timeLine.replace(" ", "-"); //fixed
|
||||
// DR15325 - sorting time line issue in D2D
|
||||
// add time line to stnTimeTable and set its index
|
||||
//task#5929
|
||||
boolean goodData = checkDataIntegrity( sndLyLst);
|
||||
addElementToTableAndLists(stnId_timeLine_sndType, stnId, timeLine,
|
||||
sndType, stnInfo, sndLyLst);
|
||||
sndType, stnInfo, sndLyLst, goodData);
|
||||
}
|
||||
if (displayNewData) {
|
||||
// Set default parcel trace data
|
||||
|
@ -2627,10 +2657,7 @@ public class NsharpResourceHandler {
|
|||
|
||||
break;
|
||||
}
|
||||
if (compareSndIsOn) {
|
||||
handleUserPickNewTimeLine(currentTimeElementListIndex) ;
|
||||
return;
|
||||
}
|
||||
|
||||
curTimeLinePage = currentTimeElementListIndex / numTimeLinePerPage
|
||||
+ 1;
|
||||
setCurSndProfileProp();
|
||||
|
@ -2767,9 +2794,6 @@ public class NsharpResourceHandler {
|
|||
// we should get out of here
|
||||
break;
|
||||
} else if (compareSndIsOn) {
|
||||
handleUserPickNewTimeLine(targetIndex) ;
|
||||
return;
|
||||
/* Chin TBD 12112014
|
||||
boolean found = false;
|
||||
if (currentStnElementListIndex >= 0
|
||||
&& currentSndElementListIndex >= 0
|
||||
|
@ -2795,7 +2819,6 @@ public class NsharpResourceHandler {
|
|||
if (!found) {
|
||||
currentSndElementListIndex = -1;
|
||||
} else {
|
||||
|
||||
int colorIndex = NsharpConstants.LINE_COMP1;
|
||||
for (NsharpOperationElement elm : sndElementList) {
|
||||
if (elm.getActionState() == NsharpConstants.ActState.INACTIVE)
|
||||
|
@ -2811,13 +2834,11 @@ public class NsharpResourceHandler {
|
|||
if (colorIndex > NsharpConstants.LINE_COMP10)
|
||||
colorIndex = NsharpConstants.LINE_COMP1;
|
||||
}
|
||||
|
||||
}
|
||||
// no matter we find current snd type for this stn or
|
||||
// not
|
||||
// we should get out of here
|
||||
break;
|
||||
*/
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
|
@ -4043,6 +4064,12 @@ public class NsharpResourceHandler {
|
|||
// re-populate snd data to nsharp native code lib for later calculating
|
||||
Collections.sort(soundingLys,
|
||||
NsharpDataHandling.reversePressureHeightWindComparator());
|
||||
//#5929
|
||||
goodData = checkDataIntegrity( soundingLys);
|
||||
if(getCurSoundingElementStateProperty()!=null){
|
||||
getCurSoundingElementStateProperty().setGoodData(goodData);
|
||||
}
|
||||
if(goodData)
|
||||
nsharpNative.populateSndgData(soundingLys);
|
||||
// get storm motion wind data after populate sounding from NsharpLib
|
||||
// refresh test area if it is shown now
|
||||
|
@ -4069,6 +4096,13 @@ public class NsharpResourceHandler {
|
|||
}
|
||||
if (dataPaneRsc != null)
|
||||
dataPaneRsc.setSoundingLys(soundingLys);
|
||||
|
||||
if (spcGraphsPaneRsc != null && (goodData) ){//#5929
|
||||
// Chin: SPC graphs performance concern, as it need to call get
|
||||
// info functions from bigSharo.so and cause long delay.
|
||||
// Therefore, do it once only when reset data.
|
||||
spcGraphsPaneRsc.getSpcGraphsInfo();
|
||||
}
|
||||
}
|
||||
|
||||
public void addNewLayer(float tp, float dp, float ws, float wd,
|
||||
|
@ -4086,6 +4120,12 @@ public class NsharpResourceHandler {
|
|||
// re-populate snd data to nsharp native code lib for later calculating
|
||||
Collections.sort(soundingLys,
|
||||
NsharpDataHandling.reversePressureHeightWindComparator());
|
||||
//#5929
|
||||
goodData = checkDataIntegrity( soundingLys);
|
||||
if(getCurSoundingElementStateProperty()!=null){
|
||||
getCurSoundingElementStateProperty().setGoodData(goodData);
|
||||
}
|
||||
if(goodData)
|
||||
nsharpNative.populateSndgData(soundingLys);
|
||||
// get storm motion wind data after populate sounding from NsharpLib
|
||||
// refresh text area if it is shown now
|
||||
|
@ -4112,6 +4152,12 @@ public class NsharpResourceHandler {
|
|||
}
|
||||
if (dataPaneRsc != null)
|
||||
dataPaneRsc.setSoundingLys(soundingLys);
|
||||
if (spcGraphsPaneRsc != null && (goodData) ){//#5929
|
||||
// Chin: SPC graphs performance concern, as it need to call get
|
||||
// info functions from bigSharo.so and cause long delay.
|
||||
// Therefore, do it once only when reset data.
|
||||
spcGraphsPaneRsc.getSpcGraphsInfo();
|
||||
}
|
||||
}
|
||||
|
||||
public void setGraphConfigProperty(NsharpGraphProperty graphConfigProperty) {
|
||||
|
@ -4440,4 +4486,9 @@ public class NsharpResourceHandler {
|
|||
refreshPane();
|
||||
return true;
|
||||
}
|
||||
//#5929
|
||||
public boolean isGoodData() {
|
||||
return goodData;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -14,7 +14,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* May 08, 2013 1847 bsteffen Allow painting with no Wind Data.
|
||||
* 02/03/2014 1106 Chin Chen Need to be able to use clicking on the Src,Time, or StnId to select display
|
||||
* 08/04/2014 Chin Chen fixed effective level line drawing, height marker drawing
|
||||
* 12/11/2014 DR16888 Chin Chen fixed issue that "Comp(Src) button not functioning properly in NSHARP display"
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -1740,6 +1742,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
// box
|
||||
}
|
||||
target.drawStrings(str, latlonstr);
|
||||
if(wwTypeColor == null)
|
||||
wwTypeColor = NsharpConstants.color_gold;
|
||||
target.drawRect(boxExt, wwTypeColor, 2f, 1f); // box border line colored
|
||||
// with "Psbl Watch Type"
|
||||
// color
|
||||
|
@ -1768,7 +1772,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
// to check a scenario that sounding data is removed while
|
||||
// thread is locked
|
||||
if (soundingLys == null
|
||||
|| (soundingLys != null && soundingLys.size() <= 0)) {
|
||||
|| (soundingLys != null && soundingLys.size() < 2)) {
|
||||
reentryLock.unlock();
|
||||
return;
|
||||
}
|
||||
|
@ -1779,7 +1783,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
} else if (justBackToMainPane) {
|
||||
reentryLock.lock();
|
||||
if (soundingLys == null
|
||||
|| (soundingLys != null && soundingLys.size() <= 0)) {
|
||||
|| (soundingLys != null && soundingLys.size() < 2)) {
|
||||
reentryLock.unlock();
|
||||
return;
|
||||
}
|
||||
|
@ -1828,6 +1832,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
this.font12.setScaleFont(false);
|
||||
// nsharpNative.populateSndgData(soundingLys);
|
||||
if (currentGraphMode == NsharpConstants.GRAPH_SKEWT) {
|
||||
|
||||
target.setupClippingPlane(pe);
|
||||
// plot temp curve, when constructing pressureTempRscShapeList,
|
||||
// it already considered
|
||||
|
@ -1844,7 +1849,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
// color is following comparison/overlay lines' configuration.
|
||||
// line width and line style are following parcel line
|
||||
// configuration
|
||||
if (graphConfigProperty.isParcel() == true) {
|
||||
if (graphConfigProperty.isParcel() == true && rscHandler.isGoodData()) { //#5929
|
||||
NsharpLineProperty parcelLp = linePropertyMap
|
||||
.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_PARCEL]);
|
||||
for (NsharpShapeAndLineProperty shapeNLp : parcelRtShapeList) {
|
||||
|
@ -1861,7 +1866,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
boolean overlayIsOn = rscHandler.isOverlayIsOn();
|
||||
if (graphConfigProperty != null) {
|
||||
if (graphConfigProperty.isTemp() == true && !compareStnIsOn
|
||||
&& !compareTmIsOn && !compareSndIsOn) {
|
||||
&& !compareTmIsOn) {
|
||||
if (editGraphOn)
|
||||
plotPressureTempEditPoints(target, world,
|
||||
NsharpConstants.color_red, TEMP_TYPE,
|
||||
|
@ -1869,15 +1874,15 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
}
|
||||
// dew point curve
|
||||
if (graphConfigProperty.isDewp() == true && !compareStnIsOn
|
||||
&& !compareTmIsOn && !compareSndIsOn) {
|
||||
&& !compareTmIsOn) {
|
||||
if (editGraphOn)
|
||||
plotPressureTempEditPoints(target, world,
|
||||
NsharpConstants.color_green, DEWPOINT_TYPE,
|
||||
this.soundingLys);
|
||||
}
|
||||
// plot wet bulb trace
|
||||
if (graphConfigProperty.isWetBulb() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
if (graphConfigProperty.isWetBulb() == true && rscHandler.isGoodData() //#5929
|
||||
&& !compareStnIsOn && !compareTmIsOn) {
|
||||
NsharpLineProperty lp = linePropertyMap
|
||||
.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WETBULB]);
|
||||
target.drawWireframeShape(wetBulbTraceRscShape,
|
||||
|
@ -1885,8 +1890,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
lp.getLineStyle(), font10);
|
||||
}
|
||||
// plot virtual temperature trace
|
||||
if (graphConfigProperty.isVTemp() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
if (graphConfigProperty.isVTemp() == true && rscHandler.isGoodData() //#5929
|
||||
&& !compareStnIsOn && !compareTmIsOn) {
|
||||
NsharpLineProperty lp = linePropertyMap
|
||||
.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_VIRTUAL_TEMP]);
|
||||
target.drawWireframeShape(vtempTraceCurveRscShape,
|
||||
|
@ -1894,8 +1899,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
lp.getLineStyle(), font10);
|
||||
}
|
||||
// virtual temperature parcel trace curve
|
||||
if (graphConfigProperty.isParcelTv() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn
|
||||
if (graphConfigProperty.isParcelTv() == true && rscHandler.isGoodData() //#5929
|
||||
&& !compareStnIsOn && !compareTmIsOn
|
||||
&& !overlayIsOn) {
|
||||
if (soundingLys.size() > 0) {
|
||||
NsharpLineProperty lp = linePropertyMap
|
||||
|
@ -1906,8 +1911,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
}
|
||||
}
|
||||
|
||||
if (graphConfigProperty.isDcape() == true
|
||||
&& dacpeTraceRscShape != null && !compareStnIsOn && !compareSndIsOn
|
||||
if (graphConfigProperty.isDcape() == true && rscHandler.isGoodData() //#5929
|
||||
&& dacpeTraceRscShape != null && !compareStnIsOn
|
||||
&& !compareTmIsOn && !overlayIsOn) {
|
||||
if (soundingLys.size() > 0) {
|
||||
NsharpLineProperty lp = linePropertyMap
|
||||
|
@ -1918,8 +1923,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
|
||||
}
|
||||
}
|
||||
if (graphConfigProperty.isEffLayer() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
if (graphConfigProperty.isEffLayer() == true && rscHandler.isGoodData() //#5929
|
||||
&& !compareStnIsOn && !compareTmIsOn) {
|
||||
// draw effective layer lines
|
||||
// drawEffectiveLayerLines(target);
|
||||
target.drawWireframeShape(effectiveLayerLineShape,
|
||||
|
@ -1927,8 +1932,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
commonLineStyle, font10);
|
||||
}
|
||||
// cloud
|
||||
if (graphConfigProperty.isCloud() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
if (graphConfigProperty.isCloud() == true && rscHandler.isGoodData() //#5929
|
||||
&& !compareStnIsOn && !compareTmIsOn) {
|
||||
if (cloudFMShape != null)
|
||||
target.drawShadedShape(cloudFMShape, 1f);
|
||||
if (cloudFMLabelShape != null)
|
||||
|
@ -1939,7 +1944,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
target.drawShadedShape(cloudCEShape, 1f);
|
||||
}
|
||||
if (graphConfigProperty.isOmega() == true
|
||||
&& !compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
&& !compareStnIsOn && !compareTmIsOn) {
|
||||
if (NsharpLoadDialog.getAccess() != null
|
||||
&& (NsharpLoadDialog.getAccess()
|
||||
.getActiveLoadSoundingType() == NsharpLoadDialog.MODEL_SND || NsharpLoadDialog
|
||||
|
@ -1951,7 +1956,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
}
|
||||
} else {
|
||||
// by default, draw everything
|
||||
if (!compareStnIsOn && !compareTmIsOn && !compareSndIsOn) {
|
||||
if (!compareStnIsOn && !compareTmIsOn) {
|
||||
if (editGraphOn)
|
||||
plotPressureTempEditPoints(target, world,
|
||||
NsharpConstants.color_red, TEMP_TYPE,
|
||||
|
@ -1961,6 +1966,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
plotPressureTempEditPoints(target, world,
|
||||
NsharpConstants.color_green, DEWPOINT_TYPE,
|
||||
this.soundingLys);
|
||||
if(rscHandler.isGoodData()) { //#5929
|
||||
// plot wetbulb trace
|
||||
NsharpLineProperty lp = linePropertyMap
|
||||
.get(NsharpConstants.lineNameArray[NsharpConstants.LINE_WETBULB]);
|
||||
|
@ -1994,6 +2000,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
target.drawWireframeShape(effectiveLayerLineShape,
|
||||
NsharpConstants.color_cyan_md, 2,
|
||||
commonLineStyle, font10);
|
||||
}
|
||||
if (NsharpLoadDialog.getAccess() != null
|
||||
&& (NsharpLoadDialog.getAccess()
|
||||
.getActiveLoadSoundingType() == NsharpLoadDialog.MODEL_SND || NsharpLoadDialog
|
||||
|
@ -2175,6 +2182,7 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
// System.out.println("x1 pos"+xPos+ " x2 pos="+ (xPos -
|
||||
// NsharpResourceHandler.BARB_LENGTH));
|
||||
}
|
||||
if( rscHandler.isGoodData() ){ //#5929)
|
||||
drawHeightMark(target);
|
||||
// draw EL, LFC, LCL, FZL, -20C, -30C lines
|
||||
// drawLclLine(target);
|
||||
|
@ -2187,17 +2195,21 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
font10);
|
||||
target.drawWireframeShape(fzlShape, NsharpConstants.color_cyan,
|
||||
2, LineStyle.SOLID, font10);
|
||||
|
||||
}
|
||||
drawNsharpFileNameAndSampling(target, currentZoomLevel);
|
||||
// draw cursor data
|
||||
if (cursorInSkewT == true) {
|
||||
if (cursorInSkewT == true && rscHandler.isGoodData()) {
|
||||
if ((curseToggledFontLevel < CURSER_STRING_OFF)
|
||||
&& (cursorTopWindBarb == false || windBarbMagnify == false))
|
||||
drawNsharpSkewtCursorData(target);
|
||||
}
|
||||
|
||||
|
||||
}// end of currentGraphMode= NsharpConstants.GRAPH_SKEWT
|
||||
else if (currentGraphMode == NsharpConstants.GRAPH_ICING) {
|
||||
else if (currentGraphMode == NsharpConstants.GRAPH_ICING && rscHandler.isGoodData()) {//#5929
|
||||
paintIcing(currentZoomLevel, target);
|
||||
} else if (currentGraphMode == NsharpConstants.GRAPH_TURB) {
|
||||
} else if (currentGraphMode == NsharpConstants.GRAPH_TURB && rscHandler.isGoodData()) {//#5929
|
||||
paintTurbulence(currentZoomLevel, target);
|
||||
}
|
||||
// drawNsharpFileNameAndSampling(target, currentZoomLevel);
|
||||
|
@ -3510,6 +3522,8 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
if (target != null) {
|
||||
disposeRscWireFrameShapes();
|
||||
if (soundingLys != null){
|
||||
if( rscHandler.isGoodData()) {//#5929
|
||||
|
||||
// createRscOmegaShape();
|
||||
// createRscHeightMarkShape();
|
||||
createRscwetBulbTraceShape();
|
||||
|
@ -3530,6 +3544,10 @@ public class NsharpSkewTPaneResource extends NsharpAbstractPaneResource {
|
|||
createCloudsShape();
|
||||
updatePsblWatchColor();
|
||||
}
|
||||
else {//#5929
|
||||
createRscPressTempCurveShapeAll(target);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -17,7 +17,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* bigsharp version 2013Jun12
|
||||
* 12/03/2014 DR#16884 Chin Chen fixed issue, NSHARP crashes if user loops a product and
|
||||
* then clicks WINTER/FIRE buttons in Toolbar
|
||||
*
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
* </pre>
|
||||
*
|
||||
* @author Chin Chen
|
||||
|
@ -1896,7 +1898,7 @@ public class NsharpSpcGraphsPaneResource extends NsharpAbstractPaneResource {
|
|||
PaintProperties paintProps) throws VizException {
|
||||
super.paintInternal(target, paintProps);
|
||||
// defineCharHeight(font10);
|
||||
if (rscHandler == null || rscHandler.getSoundingLys() == null)
|
||||
if (rscHandler == null || rscHandler.getSoundingLys() == null || !rscHandler.isGoodData())//#5929
|
||||
return;
|
||||
this.font10.setSmoothing(false);
|
||||
this.font10.setScaleFont(false);
|
||||
|
|
|
@ -10,6 +10,9 @@ package gov.noaa.nws.ncep.ui.nsharp.display.rsc;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------- ------- -------- -----------
|
||||
* 04/23/2012 229 Chin Chen Initial coding
|
||||
* 01/27/2015 DR#17006,
|
||||
* Task#5929 Chin Chen NSHARP freezes when loading a sounding from MDCRS products
|
||||
* in Volume Browser
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -159,10 +162,13 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
float x1 = verticalWindXOrig+ (verticalWindWidth/2);
|
||||
target.drawLine(x1, verticalWindYOrig, 0, x1, verticalWindYOrig+verticalWindHeight, 0,
|
||||
NsharpConstants.color_white, 1, LineStyle.DASHED);
|
||||
if(verticalWindLabelShape!=null) //#5929
|
||||
target.drawWireframeShape(verticalWindLabelShape, NsharpConstants.color_white,
|
||||
0.3F, commonLineStyle,font10);
|
||||
if(verticalWindRShape!=null)
|
||||
target.drawWireframeShape(verticalWindRShape, NsharpConstants.color_red,
|
||||
0.3F, commonLineStyle,font10);
|
||||
if(verticalWindSbShape!=null)
|
||||
target.drawWireframeShape(verticalWindSbShape, NsharpConstants.color_skyblue,
|
||||
0.3F, commonLineStyle,font10);
|
||||
target.clearClippingPlane();
|
||||
|
@ -304,7 +310,7 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
windBoxWindRscShapeList.add(shNcolor);
|
||||
|
||||
|
||||
|
||||
float surfaceLevel = soundingLys.get(0).getGeoHeight(); //#5929
|
||||
//System.out.println("my wolrd minvY="+ myYViewMin+ " maxVY="+myYViewMax+ " YRange="+myYViewRange);
|
||||
for (NcSoundingLayer layer : soundingLys) {
|
||||
float pressure = layer.getPressure();
|
||||
|
@ -321,13 +327,14 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
//System.out.println("Wind p="+pressure+" yP="+ windBoxY+ " ratio="+yRatio);
|
||||
float geoHt = layer.getGeoHeight();
|
||||
double [][] lines = {{windBoxX, windBoxY},{windBoxX + (spd) * xRatio,windBoxY}};
|
||||
if(geoHt <nsharpNative.nsharpLib.msl(3000))
|
||||
//use MSL here, so Converts height from (meters) AGL to MSL. #5929
|
||||
if(geoHt < (3000+surfaceLevel))
|
||||
shapeR.addLineSegment(lines);
|
||||
else if(geoHt < nsharpNative.nsharpLib.msl(6000))
|
||||
else if(geoHt < (6000+surfaceLevel))
|
||||
shapeG.addLineSegment(lines);
|
||||
else if(geoHt < nsharpNative.nsharpLib.msl(9000))
|
||||
else if(geoHt < (9000+surfaceLevel))
|
||||
shapeY.addLineSegment(lines);
|
||||
else if(geoHt < nsharpNative.nsharpLib.msl(12000))
|
||||
else if(geoHt < (12000+surfaceLevel))
|
||||
shapeC.addLineSegment(lines);
|
||||
else
|
||||
shapeV.addLineSegment(lines);
|
||||
|
@ -437,7 +444,6 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
verticalWindLabelShape.compile();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Create all wire frame shapes at one place.
|
||||
* Should be used only when a new resource is becoming Current active resource to be displayed.
|
||||
|
@ -447,7 +453,7 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
if(target== null || rscHandler== null || inSidePane )
|
||||
return;
|
||||
//System.out.println("whitoPane="+this.toString()+" createAllWireFrameShapes called");
|
||||
rscHandler.repopulateSndgData();
|
||||
//rscHandler.repopulateSndgData();//#5929 TBD why need this?????
|
||||
|
||||
disposeAllWireFrameShapes();
|
||||
if(soundingLys != null){
|
||||
|
@ -458,6 +464,7 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
}
|
||||
createRscOmegaShape();
|
||||
createRscWindBoxWindShape();
|
||||
if(rscHandler.isGoodData())//#5929
|
||||
createRscVerticalWindShape();
|
||||
}
|
||||
//create static shape
|
||||
|
@ -477,6 +484,7 @@ public class NsharpWitoPaneResource extends NsharpAbstractPaneResource{
|
|||
}
|
||||
createRscOmegaShape();
|
||||
createRscWindBoxWindShape();
|
||||
if(rscHandler.isGoodData())//#5929
|
||||
createRscVerticalWindShape();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue