我的地图(在R中)是颠倒的。如何将其重新打开?

时间:2017-04-17 01:34:07

标签: r dictionary plot flip

我有一个.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位居榜首。如何正确地转动我的地图?

1 个答案:

答案 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。拜托,现在试试吧。而且您需要将轴标签更改为有意义的内容。

Precip