bugfix for streamplot function with y reverse

This commit is contained in:
wyq 2025-09-03 17:38:34 +08:00
parent 79f3d6c259
commit b52e26780e
2 changed files with 51 additions and 19 deletions

View File

@ -7378,13 +7378,23 @@ public class GraphicFactory {
udata = uvData[0];
vdata = uvData[1];
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
double[] x = (double[]) ArrayUtil.copyToNDJavaArray_Double(xdata);
double[] y = (double[]) ArrayUtil.copyToNDJavaArray_Double(ydata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v,
x, y, density);
if (x[1] - x[0] < 0) {
ArrayUtils.reverse(x);
udata = udata.flip(1);
vdata = vdata.flip(1);
}
if (y[1] - y[0] < 0) {
ArrayUtils.reverse(y);
udata = udata.flip(0);
vdata = vdata.flip(0);
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v, x, y, density);
int ny = u.length;
int nx = u[0].length;
@ -7508,12 +7518,22 @@ public class GraphicFactory {
vdata = uvData[1];
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
double[] x = (double[]) ArrayUtil.copyToNDJavaArray_Double(xdata);
double[] y = (double[]) ArrayUtil.copyToNDJavaArray_Double(ydata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v,
x, y, density);
if (x[1] - x[0] < 0) {
ArrayUtils.reverse(x);
udata = udata.flip(1);
vdata = vdata.flip(1);
}
if (y[1] - y[0] < 0) {
ArrayUtils.reverse(y);
udata = udata.flip(0);
vdata = vdata.flip(0);
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v, x, y, density);
PolyLine line;
for (int i = 0; i < streamlines.size(); i++) {
line = streamlines.get(i);
@ -7556,12 +7576,22 @@ public class GraphicFactory {
vdata = uvData[1];
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
double[] x = (double[]) ArrayUtil.copyToNDJavaArray_Double(xdata);
double[] y = (double[]) ArrayUtil.copyToNDJavaArray_Double(ydata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v,
x, y, density);
if (x[1] - x[0] < 0) {
ArrayUtils.reverse(x);
udata = udata.flip(1);
vdata = vdata.flip(1);
}
if (y[1] - y[0] < 0) {
ArrayUtils.reverse(y);
udata = udata.flip(0);
vdata = vdata.flip(0);
}
double[][] u = (double[][])ArrayUtil.copyToNDJavaArray_Double(udata);
double[][] v = (double[][])ArrayUtil.copyToNDJavaArray_Double(vdata);
List<PolyLine> streamlines = Contour.tracingStreamline(u, v, x, y, density);
PolyLine line;
ColorBreakCollection cbc;
int ny = u.length;

View File

@ -1,12 +1,9 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MeteoInfo File="milconfig.xml" Type="configurefile">
<Path OpenPath="D:\Working\MIScript\Jython\mis\meteo\calc">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\web"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\others"/>
<Path OpenPath="D:\Working\MIScript\Jython\mis\plot_types\wind">
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\test"/>
<RecentFolder Folder="D:\Working\MIScript\mywork\music"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\special"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\integrate"/>
@ -16,15 +13,20 @@
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\array"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\calc"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\wind"/>
</Path>
<File>
<OpenedFiles>
<OpenedFile File="D:\Working\MIScript\Jython\mis\meteo\calc\mixed_layer_cape_cin.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\meteo\calc\isentropic_analysis.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\meteo\calc\lifted_index.py"/>
<OpenedFile File="D:\Working\MIScript\Jython\mis\meteo\calc\precipitable_water.py"/>
</OpenedFiles>
<RecentFiles>
<RecentFile File="D:\Working\MIScript\Jython\mis\meteo\calc\mixed_layer_cape_cin.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\meteo\calc\isentropic_analysis.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\meteo\calc\lifted_index.py"/>
<RecentFile File="D:\Working\MIScript\Jython\mis\meteo\calc\precipitable_water.py"/>
</RecentFiles>
</File>
<Font>