我有一个.nc文件,我正在尝试绘制地图。我在这里得到了我的数据:https://www.esrl.noaa.gov/psd/data/gridded/data.UDel_AirT_Precip.html(precip.mon.ltm.v301.nc)。纬度从89.75
到-89.75
开始。经度从0.25
开始到359.75
。这就是我所做的:
文件1< -Sys.glob( “precip.mon.ltm * .NC”)
tmfile< -File1
pr_file< -nc_open(tmfile)
LAT = ncvar_get(pr_file, 'LAT')
LON = ncvar_get(pr_file, 'LON')
时间= ncvar_get(pr_file, '时间')
雨= ncvar_get(pr_file, '雨')
image.plot(LON,经纬度,雨[,, 1],主要= “沉淀”)
image.default中的错误(...,breaks = break,add = add,col = col): 增加预期的'x'和'y'值
LAT1< -sort(LAT)
image.plot(LON,LAT1,雨[,, 1],主要= “沉淀”,zlim = C(0,20))
然后地图出来了,但是颠倒了。即,Antartica位居榜首。如何正确地转动我的地图?
答案 0 :(得分:0)
快速破解就是翻转数据本身。
import java.awt.*;
import javax.swing.*;
public class Sierpinski_Triangle extends JPanel {
private static int numberLevelsOfRecursion;
public Sierpinski_Triangle(int numLevels) {
numberLevelsOfRecursion = numLevels;
}
public void paintComponent(Graphics computerScreen) {
super.paintComponent(computerScreen);
Point top = new Point(250, 50);
Point left = new Point(50, 450);
Point right = new Point(450, 450);
drawTriangle(computerScreen, numberLevelsOfRecursion, top, left, right);
}
/**
* Draw a Sierpinski triangle
*
* @param screen
* the surface on which to draw the Sierpinski image
* @param levels
* number of levels of triangles-within-triangles
* @param top
* coordinates of the top point of the triangle
* @param left
* coordinates of the lower-left point of the triangle
* @param right
* coordinates of the lower-right point of the triangle
*/
public static void drawTriangle(Graphics g, int levels, Point top, Point left, Point right) {
/**
* You must COMPLETER THE CODE HERE to draw the Sierpinski Triangle
* recursive code needed to draw the Sierpinski Triangle
*/
Point p1 = top;
Point p2 = left;
Point p3 = right;
if (levels == 2) {
// base case: simple triangle
Polygon tri = new Polygon();
tri.addPoint(250, 50);
tri.addPoint(50, 450);
tri.addPoint(450, 450);
g.setColor(Color.RED);
g.fillPolygon(tri);
} else {
// Get the midpoint on each edge in the triangle
Point p12 = midpoint(p1, p2);
Point p23 = midpoint(p2, p3);
Point p31 = midpoint(p3, p1);
// recurse on 3 triangular areas
drawTriangle(g, levels - 1, p1, p12, p31);
drawTriangle(g, levels - 1, p12, p2, p23);
drawTriangle(g, levels - 1, p31, p23, p3);
}
}
private static Point midpoint(Point p1, Point p2) {
return new Point((p1.x + p2.x) / 2, (p1.y + p2.y) / 2);
}
public static void main(String[] args) {
JFrame frame = new JFrame("SierpinskiTriangle");
Sierpinski_Triangle applet = new Sierpinski_Triangle(1);
frame.add(applet);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(450, 450);
frame.setVisible(true);
}
}
我认为,lon和lat变量也需要按照错误的建议进行不同的定义,例如: (见the related question):
image.plot(lon,lat,precip[,ncol(precip):1,1],main="Precipitation")
<强>更新强> 不知何故,我转换了lat和lon。拜托,现在试试吧。而且您需要将轴标签更改为有意义的内容。