11"""
2- Support for netcdftime axis in matplotlib.
2+ Support for cftime axis in matplotlib.
33
44"""
55
1212import matplotlib .ticker as mticker
1313import matplotlib .transforms as mtransforms
1414import matplotlib .units as munits
15- import netcdftime
15+ import cftime
1616import numpy as np
1717
1818# Define __version__ based on versioneer's interpretation.
2727
2828class CalendarDateTime (object ):
2929 """
30- Container for :class:`netcdftime .datetime` object and calendar.
30+ Container for :class:`cftime .datetime` object and calendar.
3131
3232 """
3333 def __init__ (self , datetime , calendar ):
@@ -49,7 +49,7 @@ def __repr__(self):
4949
5050class NetCDFTimeDateFormatter (mticker .Formatter ):
5151 """
52- Formatter for netcdftime .datetime data.
52+ Formatter for cftime .datetime data.
5353
5454 """
5555 # Some magic numbers. These seem to work pretty well.
@@ -81,13 +81,13 @@ def pick_format(self, ndays):
8181
8282 def __call__ (self , x , pos = 0 ):
8383 format_string = self .pick_format (ndays = self .locator .ndays )
84- dt = netcdftime .utime (self .time_units , self .calendar ).num2date (x )
84+ dt = cftime .utime (self .time_units , self .calendar ).num2date (x )
8585 return dt .strftime (format_string )
8686
8787
8888class NetCDFTimeDateLocator (mticker .Locator ):
8989 """
90- Determines tick locations when plotting netcdftime .datetime data.
90+ Determines tick locations when plotting cftime .datetime data.
9191
9292 """
9393 def __init__ (self , max_n_ticks , calendar , date_unit , min_n_ticks = 3 ):
@@ -143,7 +143,7 @@ def tick_values(self, vmin, vmax):
143143
144144 self .ndays = float (abs (vmax - vmin ))
145145
146- utime = netcdftime .utime (self .date_unit , self .calendar )
146+ utime = cftime .utime (self .date_unit , self .calendar )
147147 lower = utime .num2date (vmin )
148148 upper = utime .num2date (vmax )
149149
@@ -153,7 +153,7 @@ def tick_values(self, vmin, vmax):
153153 # TODO START AT THE BEGINNING OF A DECADE/CENTURY/MILLENIUM as
154154 # appropriate.
155155 years = self ._max_n_locator .tick_values (lower .year , upper .year )
156- ticks = [netcdftime .datetime (int (year ), 1 , 1 ) for year in years ]
156+ ticks = [cftime .datetime (int (year ), 1 , 1 ) for year in years ]
157157 elif resolution == 'MONTHLY' :
158158 # TODO START AT THE BEGINNING OF A DECADE/CENTURY/MILLENIUM as
159159 # appropriate.
@@ -162,27 +162,27 @@ def tick_values(self, vmin, vmax):
162162 for offset in months_offset :
163163 year = lower .year + np .floor ((lower .month + offset ) / 12 )
164164 month = ((lower .month + offset ) % 12 ) + 1
165- ticks .append (netcdftime .datetime (int (year ), int (month ), 1 ))
165+ ticks .append (cftime .datetime (int (year ), int (month ), 1 ))
166166 elif resolution == 'DAILY' :
167167 # TODO: It would be great if this favoured multiples of 7.
168168 days = self ._max_n_locator_days .tick_values (vmin , vmax )
169169 ticks = [utime .num2date (dt ) for dt in days ]
170170 elif resolution == 'HOURLY' :
171171 hour_unit = 'hours since 2000-01-01'
172- hour_utime = netcdftime .utime (hour_unit , self .calendar )
172+ hour_utime = cftime .utime (hour_unit , self .calendar )
173173 in_hours = hour_utime .date2num ([lower , upper ])
174174 hours = self ._max_n_locator .tick_values (in_hours [0 ], in_hours [1 ])
175175 ticks = [hour_utime .num2date (dt ) for dt in hours ]
176176 elif resolution == 'MINUTELY' :
177177 minute_unit = 'minutes since 2000-01-01'
178- minute_utime = netcdftime .utime (minute_unit , self .calendar )
178+ minute_utime = cftime .utime (minute_unit , self .calendar )
179179 in_minutes = minute_utime .date2num ([lower , upper ])
180180 minutes = self ._max_n_locator .tick_values (in_minutes [0 ],
181181 in_minutes [1 ])
182182 ticks = [minute_utime .num2date (dt ) for dt in minutes ]
183183 elif resolution == 'SECONDLY' :
184184 second_unit = 'seconds since 2000-01-01'
185- second_utime = netcdftime .utime (second_unit , self .calendar )
185+ second_utime = cftime .utime (second_unit , self .calendar )
186186 in_seconds = second_utime .date2num ([lower , upper ])
187187 seconds = self ._max_n_locator .tick_values (in_seconds [0 ],
188188 in_seconds [1 ])
@@ -196,7 +196,7 @@ def tick_values(self, vmin, vmax):
196196
197197class NetCDFTimeConverter (mdates .DateConverter ):
198198 """
199- Converter for netcdftime .datetime data.
199+ Converter for cftime .datetime data.
200200
201201 """
202202 standard_unit = 'days since 2000-01-01'
@@ -215,8 +215,8 @@ def axisinfo(unit, axis):
215215 date_unit = date_unit )
216216 majfmt = NetCDFTimeDateFormatter (majloc , calendar = calendar ,
217217 time_units = date_unit )
218- datemin = CalendarDateTime (netcdftime .datetime (2000 , 1 , 1 ), calendar )
219- datemax = CalendarDateTime (netcdftime .datetime (2010 , 1 , 1 ), calendar )
218+ datemin = CalendarDateTime (cftime .datetime (2000 , 1 , 1 ), calendar )
219+ datemax = CalendarDateTime (cftime .datetime (2010 , 1 , 1 ), calendar )
220220 return munits .AxisInfo (majloc = majloc , majfmt = majfmt , label = '' ,
221221 default_limits = (datemin , datemax ))
222222
@@ -238,7 +238,7 @@ def default_units(cls, sample_point, axis):
238238 else :
239239 # Deal with a single `sample_point` value.
240240 if not hasattr (sample_point , 'calendar' ):
241- msg = ('Expecting netcdftimes with an extra '
241+ msg = ('Expecting cftimes with an extra '
242242 '"calendar" attribute.' )
243243 raise ValueError (msg )
244244 else :
@@ -249,7 +249,7 @@ def default_units(cls, sample_point, axis):
249249 def convert (cls , value , unit , axis ):
250250 """
251251 Converts value, if it is not already a number or sequence of numbers,
252- with :func:`netcdftime .utime().date2num`.
252+ with :func:`cftime .utime().date2num`.
253253
254254 """
255255 shape = None
@@ -270,11 +270,11 @@ def convert(cls, value, unit, axis):
270270 raise ValueError ('The values must be numbers or instances of '
271271 '"nc_time_axis.CalendarDateTime".' )
272272
273- if not isinstance (first_value .datetime , netcdftime .datetime ):
273+ if not isinstance (first_value .datetime , cftime .datetime ):
274274 raise ValueError ('The datetime attribute of the CalendarDateTime '
275- 'object must be of type `netcdftime .datetime`.' )
275+ 'object must be of type `cftime .datetime`.' )
276276
277- ut = netcdftime .utime (cls .standard_unit , calendar = first_value .calendar )
277+ ut = cftime .utime (cls .standard_unit , calendar = first_value .calendar )
278278
279279 if isinstance (value , CalendarDateTime ):
280280 value = [value ]
0 commit comments