bugfix of colorbar function

This commit is contained in:
wyq 2024-08-18 10:43:43 +08:00
parent 88f4010d86
commit 897a68b403
6 changed files with 230 additions and 234 deletions

View File

@ -1908,7 +1908,7 @@
<inspection_tool class="PatternVariableCanBeUsed" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PatternVariableHidesField" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PatternVariablesCanBeReplacedWithCast" enabled="false" level="INFORMATION" enabled_by_default="false" />
<inspection_tool class="PbDuplicatedImports" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PbDuplicatedImports" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PlaceholderCountMatchesArgumentCount" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="PlatformExtensionReceiverOfInline" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PluginXmlCapitalization" enabled="true" level="WARNING" enabled_by_default="true" />

View File

@ -1025,118 +1025,115 @@ public class ChartColorBar extends ChartLegend {
g.setFont(tickLabelFont);
g.setColor(this.tickColor);
idx = 0;
for (int i = 0; i < bNum; i++) {
sP.X += barWidth;
if (labelIdxs.contains(i)) {
ColorBreak cb = aLS.getLegendBreaks().get(i);
if (this.autoTick) {
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
caption = cb.getCaption();
} else {
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
}
} else {
caption = tLabels.get(idx);
}
double sX = sP.X;
switch (extendType) {
case BOTH:
case MIN:
sX = sX - barWidth + extendLength;
break;
}
for (int i : labelIdxs) {
sP.X = sX + barWidth * (i + 1);
ColorBreak cb = aLS.getLegendBreaks().get(i);
if (this.autoTick) {
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
aP.X = sP.X - barWidth / 2;
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
caption = cb.getCaption();
} else {
if (i == 0) {
switch (extendType) {
case BOTH:
case MIN:
sP.X = sP.X - barWidth + extendLength;
break;
}
}
if (this.autoTick) {
if (i < bNum - 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
if (i == 0) {
switch (this.extendType) {
case NEITHER:
case MAX:
if (tickGap == 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
g.setColor(this.tickLabelColor);
//Draw.drawString(g, ssP.X - this.barWidth, ssP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
}
break;
}
}
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
}
} else {
caption = tLabels.get(idx);
}
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
aP.X = sP.X - barWidth / 2;
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
} else {
if (this.autoTick) {
if (i < bNum - 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
if (i == 0) {
switch (this.extendType) {
case NEITHER:
case MIN:
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
case MAX:
if (tickGap == 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
g.setColor(this.tickLabelColor);
//Draw.drawString(g, ssP.X - this.barWidth, ssP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
}
break;
}
}
} else {
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
g.setColor(this.tickLabelColor);
//Draw.drawString(g, sP.X - this.barWidth, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
switch (this.extendType) {
case NEITHER:
case MIN:
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
break;
}
}
} else {
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
g.setColor(this.tickLabelColor);
//Draw.drawString(g, sP.X - this.barWidth, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
} else {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
g.setColor(this.tickLabelColor);
if (this.tickLabelAngle == 0) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
} else if (this.tickLabelAngle < 45) {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
} else {
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
}
}
}
idx += 1;
}
idx += 1;
}
//Draw label
@ -1413,7 +1410,7 @@ public class ChartColorBar extends ChartLegend {
if (this.tickLocations.contains(v)) {
labelIdxs.add(i);
tickIdx = this.tickLocations.indexOf(v);
tLabels.add(this.tickLabels.get(tickIdx).getText());
tLabels.add(0, this.tickLabels.get(tickIdx).getText());
}
}
}
@ -1637,79 +1634,76 @@ public class ChartColorBar extends ChartLegend {
}
g.setFont(tickLabelFont);
idx = 0;
for (int i = 0; i < bNum; i++) {
sP.Y -= this.barHeight;
if (labelIdxs.contains(i)) {
ColorBreak cb = aLS.getLegendBreaks().get(i);
if (this.autoTick) {
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
caption = cb.getCaption();
} else {
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
}
} else {
caption = tLabels.get(idx);
}
double sY = sP.Y;
switch (extendType) {
case BOTH:
case MIN:
sY = sY + this.barHeight - extendLength;
break;
}
for (int i : labelIdxs) {
sP.Y = sY - this.barHeight * (i + 1);
ColorBreak cb = aLS.getLegendBreaks().get(i);
if (this.autoTick) {
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
g.setColor(this.tickLabelColor);
Draw.drawString(g, sP.X, sP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
caption = cb.getCaption();
} else {
if (i == 0) {
switch (extendType) {
case BOTH:
case MIN:
sP.Y = aP.Y - extendLength;
break;
}
}
if (this.autoTick) {
if (i < bNum - 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
if (i == 0) {
switch (this.extendType) {
case NEITHER:
case MAX:
if (tickGap == 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
}
break;
}
}
} else {
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
}
} else {
caption = tLabels.get(idx);
}
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
g.setColor(this.tickLabelColor);
Draw.drawString(g, sP.X, sP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
} else {
if (this.autoTick) {
if (i < bNum - 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
if (i == 0) {
switch (this.extendType) {
case NEITHER:
case MIN:
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
case MAX:
if (tickGap == 1) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
}
break;
}
}
} else {
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
} else {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
switch (this.extendType) {
case NEITHER:
case MIN:
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
break;
}
}
} else {
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
} else {
g.setColor(this.tickColor);
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
g.setColor(this.tickLabelColor);
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
}
}
idx += 1;
}
idx += 1;
}
//Draw label
double sx, sy;

View File

@ -9032,6 +9032,36 @@ public class GraphicFactory {
float x, y, z;
int idx;
//Z slices
dim1 = (int) ya.getSize();
dim2 = (int) xa.getSize();
for (int s = 0; s < zSlice.size(); s++) {
z = zSlice.get(s).floatValue();
Array r = ArrayUtil.slice(data, 0, za, z);
if (r != null) {
Index index = r.getIndex();
MeshGraphic graphic = new MeshGraphic();
float[] vertexPosition = new float[dim1 * dim2 * 3];
float[] vertexValue = new float[dim1 * dim2];
for (int i = 0; i < dim1; i++) {
y = ya.getFloat(i);
for (int j = 0; j < dim2; j++) {
x = xa.getFloat(j);
idx = i * dim2 +j;
vertexValue[idx] = r.getFloat(index.set(i, j));
idx = idx * 3;
vertexPosition[idx] = x;
vertexPosition[idx+1] = y;
vertexPosition[idx+2] = z;
}
}
graphic.setVertexPosition(vertexPosition, dim1);
graphic.setVertexValue(vertexValue);
graphic.setLegendScheme(ls);
sgs.add(graphic);
}
}
//X slices
dim1 = (int) za.getSize();
dim2 = (int) ya.getSize();
@ -9092,36 +9122,6 @@ public class GraphicFactory {
}
}
//Z slices
dim1 = (int) ya.getSize();
dim2 = (int) xa.getSize();
for (int s = 0; s < zSlice.size(); s++) {
z = zSlice.get(s).floatValue();
Array r = ArrayUtil.slice(data, 0, za, z);
if (r != null) {
Index index = r.getIndex();
MeshGraphic graphic = new MeshGraphic();
float[] vertexPosition = new float[dim1 * dim2 * 3];
float[] vertexValue = new float[dim1 * dim2];
for (int i = 0; i < dim1; i++) {
y = ya.getFloat(i);
for (int j = 0; j < dim2; j++) {
x = xa.getFloat(j);
idx = i * dim2 +j;
vertexValue[idx] = r.getFloat(index.set(i, j));
idx = idx * 3;
vertexPosition[idx] = x;
vertexPosition[idx+1] = y;
vertexPosition[idx+2] = z;
}
}
graphic.setVertexPosition(vertexPosition, dim1);
graphic.setVertexValue(vertexValue);
graphic.setLegendScheme(ls);
sgs.add(graphic);
}
}
return sgs;
}
@ -9151,6 +9151,36 @@ public class GraphicFactory {
float x, y, z;
int idx;
//Z slices
dim1 = (int) ya.getSize();
dim2 = (int) xa.getSize();
for (int s = 0; s < zSlice.size(); s++) {
z = zSlice.get(s).floatValue();
Array r = ArrayUtil.slice(data, 0, za, z);
if (r != null) {
Index index = r.getIndex();
MeshGraphic graphic = new MeshGraphic();
float[] vertexPosition = new float[dim1 * dim2 * 3];
float[] vertexValue = new float[dim1 * dim2];
for (int i = 0; i < dim1; i++) {
y = ya.getFloat(i);
for (int j = 0; j < dim2; j++) {
x = xa.getFloat(j);
idx = i * dim2 +j;
vertexValue[idx] = r.getFloat(index.set(i, j));
idx = idx * 3;
vertexPosition[idx] = x;
vertexPosition[idx+1] = y;
vertexPosition[idx+2] = z;
}
}
graphic.setVertexPosition(vertexPosition, dim1);
graphic.setVertexValue(vertexValue);
graphic.setTransferFunction(transferFunction);
sgs.add(graphic);
}
}
//X slices
dim1 = (int) za.getSize();
dim2 = (int) ya.getSize();
@ -9211,36 +9241,6 @@ public class GraphicFactory {
}
}
//Z slices
dim1 = (int) ya.getSize();
dim2 = (int) xa.getSize();
for (int s = 0; s < zSlice.size(); s++) {
z = zSlice.get(s).floatValue();
Array r = ArrayUtil.slice(data, 0, za, z);
if (r != null) {
Index index = r.getIndex();
MeshGraphic graphic = new MeshGraphic();
float[] vertexPosition = new float[dim1 * dim2 * 3];
float[] vertexValue = new float[dim1 * dim2];
for (int i = 0; i < dim1; i++) {
y = ya.getFloat(i);
for (int j = 0; j < dim2; j++) {
x = xa.getFloat(j);
idx = i * dim2 +j;
vertexValue[idx] = r.getFloat(index.set(i, j));
idx = idx * 3;
vertexPosition[idx] = x;
vertexPosition[idx+1] = y;
vertexPosition[idx+2] = z;
}
}
graphic.setVertexPosition(vertexPosition, dim1);
graphic.setVertexValue(vertexValue);
graphic.setTransferFunction(transferFunction);
sgs.add(graphic);
}
}
return sgs;
}

View File

@ -16,6 +16,7 @@ package org.meteoinfo.geo.layer;
import com.l2fprod.common.beans.BaseBeanInfo;
import com.l2fprod.common.beans.ExtendedPropertyDescriptor;
import com.l2fprod.common.beans.editor.ComboBoxPropertyEditor;
import org.meteoinfo.chart.graphic.GeoGraphicCollection;
import org.meteoinfo.common.Extent;
import org.meteoinfo.common.util.GlobalUtil;
import org.meteoinfo.geometry.graphic.Graphic;
@ -516,8 +517,9 @@ public class ImageLayer extends MapLayer {
* @param interpolation Image interpolation
* @return Graphics
*/
public GraphicCollection getGraphics(double xShift, String interpolation) {
GraphicCollection graphics = new GraphicCollection();
public GeoGraphicCollection getGraphics(double xShift, String interpolation) {
GeoGraphicCollection graphics = new GeoGraphicCollection();
graphics.setProjInfo(this._projInfo);
ImageShape ishape = new ImageShape();
ishape.setImage(this.getImage());
Extent extent = this.getExtent();

View File

@ -1,32 +1,32 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\io\radar">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\projection"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\io">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\interpolation"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\interpolate"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar\cinrad"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\chart"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\contour"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\chart\legend"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\plot_cuace_3d_slice.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\cinrad\test_read_radar_mosic.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\savegrid_micaps4.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\plot_cuace_3d_slice.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\cinrad\test_read_radar_mosic.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\io\savegrid_micaps4.py"/>
</RecentFiles>
</File>
<Font>
@ -34,5 +34,5 @@
</Font>
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
<Figure DoubleBuffering="true"/>
<Startup MainFormLocation="-7,-7" MainFormSize="1293,765"/>
<Startup MainFormLocation="-7,0" MainFormSize="1383,860"/>
</MeteoInfo>

View File

@ -168,4 +168,4 @@ class BoundaryNorm(Normalize):
boundaries = np.array(boundaries)
extend = ExtendType.valueOf(extend.upper())
self._norm = JBoundaryNorm(boundaries._array, ncolors, extend)
self._norm = JBoundaryNorm(boundaries._array, extend)