0

昨天和今天之间似乎出了点问题。我想知道您是否可以提供帮助?这都是使用 iris 运行 Python。

基本上当我昨天运行我的代码时,我在这里得到了第一个图表,但今天我得到了第二个: 在此处输入图像描述 在此处输入图像描述

如果我只运行其中一个 CORDEX 模型(蓝线)和一个观察到的数据(黑色),您可以看到它们都运行,但 cordex 模型似乎随着时间的推移发生了一些有趣的事情。 在此处输入图像描述 在此处输入图像描述

所以我打印了每个我得到的 CORDEX 模型的时间坐标

DimCoord([netcdftime._netcdftime.DatetimeNoLeap(1989, 1, 16, 12, 0, 0, 0, 4, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 2, 15, 0, 0, 0, 0, 6, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 3, 16, 12, 0, 0, 0, 0, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 4, 16, 0, 0, 0, 0, 3, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 5, 16, 12, 0, 0, 0, 5, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 6, 16, 0, 0, 0, 0, 1, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 7, 16, 12, 0, 0, 0, 3, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 8, 16, 12, 0, 0, 0, 6, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 9, 16, 0, 0, 0, 0, 2, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 10, 16, 12, 0, 0, 0, 4, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 11, 16, 0, 0, 0, 0, 0, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1989, 12, 16, 12, 0, 0, 0, 2, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 1, 16, 12, 0, 0, 0, 5, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 2, 15, 0, 0, 0, 0, 0, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 3, 16, 12, 0, 0, 0, 1, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 4, 16, 0, 0, 0, 0, 4, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 5, 16, 12, 0, 0, 0, 6, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 6, 16, 0, 0, 0, 0, 2, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 7, 16, 12, 0, 0, 0, 4, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 8, 16, 12, 0, 0, 0, 0, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 9, 16, 0, 0, 0, 0, 3, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 10, 16, 12, 0, 0, 0, 5, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 11, 16, 0, 0, 0, 0, 1, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1990, 12, 16, 12, 0, 0, 0, 3, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 1, 16, 12, 0, 0, 0, 6, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 2, 15, 0, 0, 0, 0, 1, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 3, 16, 12, 0, 0, 0, 2, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 4, 16, 0, 0, 0, 0, 5, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 5, 16, 12, 0, 0, 0, 0, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 6, 16, 0, 0, 0, 0, 3, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 7, 16, 12, 0, 0, 0, 5, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 8, 16, 12, 0, 0, 0, 1, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 9, 16, 0, 0, 0, 0, 4, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 10, 16, 12, 0, 0, 0, 6, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 11, 16, 0, 0, 0, 0, 2, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1991, 12, 16, 12, 0, 0, 0, 4, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 1, 16, 12, 0, 0, 0, 0, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 2, 15, 0, 0, 0, 0, 2, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 3, 16, 12, 0, 0, 0, 3, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 4, 16, 0, 0, 0, 0, 6, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 5, 16, 12, 0, 0, 0, 1, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 6, 16, 0, 0, 0, 0, 4, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 7, 16, 12, 0, 0, 0, 6, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 8, 16, 12, 0, 0, 0, 2, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 9, 16, 0, 0, 0, 0, 5, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 10, 16, 12, 0, 0, 0, 0, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 11, 16, 0, 0, 0, 0, 3, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1992, 12, 16, 12, 0, 0, 0, 5, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 1, 16, 12, 0, 0, 0, 1, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 2, 15, 0, 0, 0, 0, 3, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 3, 16, 12, 0, 0, 0, 4, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 4, 16, 0, 0, 0, 0, 0, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 5, 16, 12, 0, 0, 0, 2, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 6, 16, 0, 0, 0, 0, 5, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 7, 16, 12, 0, 0, 0, 0, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 8, 16, 12, 0, 0, 0, 3, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 9, 16, 0, 0, 0, 0, 6, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 10, 16, 12, 0, 0, 0, 1, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 11, 16, 0, 0, 0, 0, 4, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1993, 12, 16, 12, 0, 0, 0, 6, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 1, 16, 12, 0, 0, 0, 2, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 2, 15, 0, 0, 0, 0, 4, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 3, 16, 12, 0, 0, 0, 5, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 4, 16, 0, 0, 0, 0, 1, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 5, 16, 12, 0, 0, 0, 3, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 6, 16, 0, 0, 0, 0, 6, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 7, 16, 12, 0, 0, 0, 1, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 8, 16, 12, 0, 0, 0, 4, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 9, 16, 0, 0, 0, 0, 0, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 10, 16, 12, 0, 0, 0, 2, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 11, 16, 0, 0, 0, 0, 5, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1994, 12, 16, 12, 0, 0, 0, 0, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 1, 16, 12, 0, 0, 0, 3, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 2, 15, 0, 0, 0, 0, 5, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 3, 16, 12, 0, 0, 0, 6, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 4, 16, 0, 0, 0, 0, 2, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 5, 16, 12, 0, 0, 0, 4, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 6, 16, 0, 0, 0, 0, 0, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 7, 16, 12, 0, 0, 0, 2, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 8, 16, 12, 0, 0, 0, 5, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 9, 16, 0, 0, 0, 0, 1, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 10, 16, 12, 0, 0, 0, 3, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 11, 16, 0, 0, 0, 0, 6, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1995, 12, 16, 12, 0, 0, 0, 1, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 1, 16, 12, 0, 0, 0, 4, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 2, 15, 0, 0, 0, 0, 6, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 3, 16, 12, 0, 0, 0, 0, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 4, 16, 0, 0, 0, 0, 3, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 5, 16, 12, 0, 0, 0, 5, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 6, 16, 0, 0, 0, 0, 1, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 7, 16, 12, 0, 0, 0, 3, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 8, 16, 12, 0, 0, 0, 6, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 9, 16, 0, 0, 0, 0, 2, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 10, 16, 12, 0, 0, 0, 4, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 11, 16, 0, 0, 0, 0, 0, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1996, 12, 16, 12, 0, 0, 0, 2, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 1, 16, 12, 0, 0, 0, 5, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 2, 15, 0, 0, 0, 0, 0, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 3, 16, 12, 0, 0, 0, 1, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 4, 16, 0, 0, 0, 0, 4, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 5, 16, 12, 0, 0, 0, 6, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 6, 16, 0, 0, 0, 0, 2, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 7, 16, 12, 0, 0, 0, 4, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 8, 16, 12, 0, 0, 0, 0, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 9, 16, 0, 0, 0, 0, 3, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 10, 16, 12, 0, 0, 0, 5, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 11, 16, 0, 0, 0, 0, 1, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1997, 12, 16, 12, 0, 0, 0, 3, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 1, 16, 12, 0, 0, 0, 6, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 2, 15, 0, 0, 0, 0, 1, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 3, 16, 12, 0, 0, 0, 2, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 4, 16, 0, 0, 0, 0, 5, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 5, 16, 12, 0, 0, 0, 0, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 6, 16, 0, 0, 0, 0, 3, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 7, 16, 12, 0, 0, 0, 5, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 8, 16, 12, 0, 0, 0, 1, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 9, 16, 0, 0, 0, 0, 4, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 10, 16, 12, 0, 0, 0, 6, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 11, 16, 0, 0, 0, 0, 2, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1998, 12, 16, 12, 0, 0, 0, 4, 350),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 1, 16, 12, 0, 0, 0, 0, 16),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 2, 15, 0, 0, 0, 0, 2, 46),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 3, 16, 12, 0, 0, 0, 3, 75),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 4, 16, 0, 0, 0, 0, 6, 106),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 5, 16, 12, 0, 0, 0, 1, 136),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 6, 16, 0, 0, 0, 0, 4, 167),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 7, 16, 12, 0, 0, 0, 6, 197),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 8, 16, 12, 0, 0, 0, 2, 228),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 9, 16, 0, 0, 0, 0, 5, 259),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 10, 16, 12, 0, 0, 0, 0, 289),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 11, 16, 0, 0, 0, 0, 3, 320),
       netcdftime._netcdftime.DatetimeNoLeap(1999, 12, 16, 12, 0, 0, 0, 5, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 1, 16, 12, 0, 0, 0, 1, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 2, 15, 0, 0, 0, 0, 3, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 3, 16, 12, 0, 0, 0, 4, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 4, 16, 0, 0, 0, 0, 0, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 5, 16, 12, 0, 0, 0, 2, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 6, 16, 0, 0, 0, 0, 5, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 7, 16, 12, 0, 0, 0, 0, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 8, 16, 12, 0, 0, 0, 3, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 9, 16, 0, 0, 0, 0, 6, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 10, 16, 12, 0, 0, 0, 1, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 11, 16, 0, 0, 0, 0, 4, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2000, 12, 16, 12, 0, 0, 0, 6, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 1, 16, 12, 0, 0, 0, 2, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 2, 15, 0, 0, 0, 0, 4, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 3, 16, 12, 0, 0, 0, 5, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 4, 16, 0, 0, 0, 0, 1, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 5, 16, 12, 0, 0, 0, 3, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 6, 16, 0, 0, 0, 0, 6, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 7, 16, 12, 0, 0, 0, 1, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 8, 16, 12, 0, 0, 0, 4, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 9, 16, 0, 0, 0, 0, 0, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 10, 16, 12, 0, 0, 0, 2, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 11, 16, 0, 0, 0, 0, 5, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2001, 12, 16, 12, 0, 0, 0, 0, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 1, 16, 12, 0, 0, 0, 3, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 2, 15, 0, 0, 0, 0, 5, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 3, 16, 12, 0, 0, 0, 6, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 4, 16, 0, 0, 0, 0, 2, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 5, 16, 12, 0, 0, 0, 4, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 6, 16, 0, 0, 0, 0, 0, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 7, 16, 12, 0, 0, 0, 2, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 8, 16, 12, 0, 0, 0, 5, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 9, 16, 0, 0, 0, 0, 1, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 10, 16, 12, 0, 0, 0, 3, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 11, 16, 0, 0, 0, 0, 6, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2002, 12, 16, 12, 0, 0, 0, 1, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 1, 16, 12, 0, 0, 0, 4, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 2, 15, 0, 0, 0, 0, 6, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 3, 16, 12, 0, 0, 0, 0, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 4, 16, 0, 0, 0, 0, 3, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 5, 16, 12, 0, 0, 0, 5, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 6, 16, 0, 0, 0, 0, 1, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 7, 16, 12, 0, 0, 0, 3, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 8, 16, 12, 0, 0, 0, 6, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 9, 16, 0, 0, 0, 0, 2, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 10, 16, 12, 0, 0, 0, 4, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 11, 16, 0, 0, 0, 0, 0, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2003, 12, 16, 12, 0, 0, 0, 2, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 1, 16, 12, 0, 0, 0, 5, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 2, 15, 0, 0, 0, 0, 0, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 3, 16, 12, 0, 0, 0, 1, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 4, 16, 0, 0, 0, 0, 4, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 5, 16, 12, 0, 0, 0, 6, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 6, 16, 0, 0, 0, 0, 2, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 7, 16, 12, 0, 0, 0, 4, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 8, 16, 12, 0, 0, 0, 0, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 9, 16, 0, 0, 0, 0, 3, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 10, 16, 12, 0, 0, 0, 5, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 11, 16, 0, 0, 0, 0, 1, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2004, 12, 16, 12, 0, 0, 0, 3, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 1, 16, 12, 0, 0, 0, 6, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 2, 15, 0, 0, 0, 0, 1, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 3, 16, 12, 0, 0, 0, 2, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 4, 16, 0, 0, 0, 0, 5, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 5, 16, 12, 0, 0, 0, 0, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 6, 16, 0, 0, 0, 0, 3, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 7, 16, 12, 0, 0, 0, 5, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 8, 16, 12, 0, 0, 0, 1, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 9, 16, 0, 0, 0, 0, 4, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 10, 16, 12, 0, 0, 0, 6, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 11, 16, 0, 0, 0, 0, 2, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2005, 12, 16, 12, 0, 0, 0, 4, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 1, 16, 12, 0, 0, 0, 0, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 2, 15, 0, 0, 0, 0, 2, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 3, 16, 12, 0, 0, 0, 3, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 4, 16, 0, 0, 0, 0, 6, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 5, 16, 12, 0, 0, 0, 1, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 6, 16, 0, 0, 0, 0, 4, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 7, 16, 12, 0, 0, 0, 6, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 8, 16, 12, 0, 0, 0, 2, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 9, 16, 0, 0, 0, 0, 5, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 10, 16, 12, 0, 0, 0, 0, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 11, 16, 0, 0, 0, 0, 3, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2006, 12, 16, 12, 0, 0, 0, 5, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 1, 16, 12, 0, 0, 0, 1, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 2, 15, 0, 0, 0, 0, 3, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 3, 16, 12, 0, 0, 0, 4, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 4, 16, 0, 0, 0, 0, 0, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 5, 16, 12, 0, 0, 0, 2, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 6, 16, 0, 0, 0, 0, 5, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 7, 16, 12, 0, 0, 0, 0, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 8, 16, 12, 0, 0, 0, 3, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 9, 16, 0, 0, 0, 0, 6, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 10, 16, 12, 0, 0, 0, 1, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 11, 16, 0, 0, 0, 0, 4, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2007, 12, 16, 12, 0, 0, 0, 6, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 1, 16, 12, 0, 0, 0, 2, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 2, 15, 0, 0, 0, 0, 4, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 3, 16, 12, 0, 0, 0, 5, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 4, 16, 0, 0, 0, 0, 1, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 5, 16, 12, 0, 0, 0, 3, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 6, 16, 0, 0, 0, 0, 6, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 7, 16, 12, 0, 0, 0, 1, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 8, 16, 12, 0, 0, 0, 4, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 9, 16, 0, 0, 0, 0, 0, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 10, 16, 12, 0, 0, 0, 2, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 11, 16, 0, 0, 0, 0, 5, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2008, 12, 16, 12, 0, 0, 0, 0, 350),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 1, 16, 12, 0, 0, 0, 3, 16),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 2, 15, 0, 0, 0, 0, 5, 46),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 3, 16, 12, 0, 0, 0, 6, 75),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 4, 16, 0, 0, 0, 0, 2, 106),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 5, 16, 12, 0, 0, 0, 4, 136),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 6, 16, 0, 0, 0, 0, 0, 167),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 7, 16, 12, 0, 0, 0, 2, 197),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 8, 16, 12, 0, 0, 0, 5, 228),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 9, 16, 0, 0, 0, 0, 1, 259),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 10, 16, 12, 0, 0, 0, 3, 289),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 11, 16, 0, 0, 0, 0, 6, 320),
       netcdftime._netcdftime.DatetimeNoLeap(2009, 12, 16, 12, 0, 0, 0, 1, 350)], standard_name=u'time', calendar=u'365_day', long_name=u'time', var_name='time')

我为观察到的数据得到了这个:

DimCoord([datetime.datetime(1901, 1, 16, 0, 0),
       datetime.datetime(1901, 2, 15, 0, 0),
       datetime.datetime(1901, 3, 16, 0, 0), ...,
       datetime.datetime(2015, 10, 16, 0, 0),
       datetime.datetime(2015, 11, 16, 0, 0),
       datetime.datetime(2015, 12, 16, 0, 0)], standard_name='time', calendar=u'gregorian', long_name=u'time', var_name='time')

所以我有点困惑为什么它昨天有效但今天无效。你觉得你能帮上忙吗?

这是我正在运行的代码的简化版本

import matplotlib.pyplot as plt
import iris
import iris.coord_categorisation as iriscc
import iris.plot as iplt
import iris.quickplot as qplt
import iris.analysis.cartography
import matplotlib.dates as mdates

#the first part of the code is all about the CORDEX models, the second half brings in the observed data, and the third plots the annual temperature in a line graph.

def main():
    #PART 1: CORDEX MODELS
    #bring in all the models we need and give them a name
    CCCma = '/exports/csce/datastore/geos/users/s0xxxx/Climate_Modelling/AFR_44_tas/ERAINT/1979-2012/tas_AFR-44_ECMWF-ERAINT_evaluation_r1i1p1_CCCma-CanRCM4_r2_mon_198901-200912.nc'  

    #Load exactly one cube from given file
    CCCma = iris.load_cube(CCCma)

    #remove flat latitude and longitude and only use grid latitude and grid longitude to make consistent with the observed data, also make sure all of the longitudes are monotonic 
    lats = iris.coords.DimCoord(CCCma.coord('latitude').points[:,0], \
                                standard_name='latitude', units='degrees')
    lons = CCCma.coord('longitude').points[0]
    for i in range(len(lons)):
        if lons[i]>100.:
            lons[i] = lons[i]-360.
    lons = iris.coords.DimCoord(lons, \
                                standard_name='longitude', units='degrees')

    CCCma.remove_coord('latitude')
    CCCma.remove_coord('longitude')
    CCCma.remove_coord('grid_latitude')
    CCCma.remove_coord('grid_longitude')
    CCCma.add_dim_coord(lats, 1)
    CCCma.add_dim_coord(lons, 2)

    #we are only interested in the latitude and longitude relevant to Malawi

    Malawi = iris.Constraint(longitude=lambda v: 32.5 <= v <= 36., \
                         latitude=lambda v: -17. <= v <= -9.) 

    CCCma = CCCma.extract(Malawi)

    #time constraignt to make all series the same
    iris.FUTURE.cell_datetime_objects = True
    t_constraint = iris.Constraint(time=lambda cell: 1989 <= cell.point.year <= 2008)

    CCCma = CCCma.extract(t_constraint)

    #data is in Kelvin, but we would like to show it in Celcius
    CCCma.convert_units('Celsius')

    #We are interested in plotting the graph with time along the x ais, so we need a mean of all the coordinates, i.e. mean temperature across whole country    
    iriscc.add_year(CCCma, 'time') 

    CCCma = CCCma.aggregated_by('year', iris.analysis.MEAN)

    CCCma.coord('latitude').guess_bounds()
    CCCma.coord('longitude').guess_bounds()
    CCCma_grid_areas = iris.analysis.cartography.area_weights(CCCma)
    CCCma_mean = CCCma.collapsed(['latitude', 'longitude'],
                                                   iris.analysis.MEAN,
                                                   weights=CCCma_grid_areas)


    #PART 2: OBSERVED DATA
    #bring in all the files we need and give them a name
    CRU= '/exports/csce/datastore/geos/users/s0xxxx/Climate_Modelling/Actual_Data/cru_ts4.00.1901.2015.tmp.dat.nc'

    #Load exactly one cube from given file
    CRU = iris.load_cube(CRU, 'near-surface temperature')

    #define the latitude and longitude
    lats = iris.coords.DimCoord(CRU.coord('latitude').points, \
                                standard_name='latitude', units='degrees')
    lons = CRU.coord('longitude').points

    #we are only interested in the latitude and longitude relevant to Malawi 
    Malawi = iris.Constraint(longitude=lambda v: 32.5 <= v <= 36., \
                         latitude=lambda v: -17. <= v <= -9.) 
    CRU = CRU.extract(Malawi)

    #time constraignt to make all series the same
    iris.FUTURE.cell_datetime_objects = True
    t_constraint = iris.Constraint(time=lambda cell: 1989 <= cell.point.year <= 2008)
    CRU = CRU.extract(t_constraint)

    #We are interested in plotting the graph with time along the x ais, so we need a mean of all the coordinates, i.e. mean temperature across whole country    
    iriscc.add_year(CRU, 'time') 

    CRU = CRU.aggregated_by('year', iris.analysis.MEAN)

    CRU.coord('latitude').guess_bounds()
    CRU.coord('longitude').guess_bounds()
    CRU_grid_areas = iris.analysis.cartography.area_weights(CRU)
    CRU_mean = CRU.collapsed(['latitude', 'longitude'],
                                                   iris.analysis.MEAN,
                                                   weights=CRU_grid_areas)


    #PART 3: PLOT LINE GRAPH - ANNUAL
    #set major plot indicators for x-axis                                              

    plt.gca().xaxis.set_major_locator(mdates.YearLocator(5))

    #assign the line colours
    qplt.plot(CCCma_mean, label='CanRCM4_ERAINT', lw=1.5, color='blue')
    qplt.plot(CRU_mean, label='Observed', lw=2, color='black')

    #create a legend and set its location to under the graph
    plt.legend(loc="upper center", bbox_to_anchor=(0.5,-0.05), fancybox=True, shadow=True, ncol=2)

    #create a title
    plt.title('Mean Near Surface Temperature for Malawi 1989-2008', fontsize=11)   

    #add grid lines
    plt.grid()

    #save the image of the graph and include full legend
    plt.savefig('ERAINT_Temperature_LineGraph_Annual', bbox_inches='tight')

    #show the graph in the console
    iplt.show()




if __name__ == '__main__':
    main()

谢谢!埃里卡

4

2 回答 2

1

我不知道您的time坐标发生了什么,但一种解决方法可能是专门针对您的year坐标进行绘图:

qplt.plot(CCCma_mean.coord('year'), CCCma_mean, label='CanRCM4_ERAINT', lw=1.5, color='blue')
qplt.plot(CRU_mean.coord('year'), CRU_mean, label='Observed', lw=2, color='black')
于 2017-09-12T22:48:43.547 回答
0

谢谢@RuthC。那成功了。它似乎将时间绘制为默认值,并且由于某些数据是自 1949 年以来的天数,而另一个是自 1900 年以来的天数,因此在 x 轴上将它们绘制成相隔 49 年。虽然奇怪的是它在前一天起作用了!我的软件一定发生了一些变化。

请注意,我还必须删除此代码:

 plt.gca().xaxis.set_major_locator(mdates.YearLocator(5))

否则 x 轴不会在底部显示年份数据。

欣赏它!埃里卡

于 2017-09-14T08:12:24.877 回答