Skip to content

Commit 8028aa9

Browse files
committed
Some small fixes.
1 parent 257384c commit 8028aa9

File tree

7 files changed

+52
-56
lines changed

7 files changed

+52
-56
lines changed

MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
include *.txt
22
include README.md
3+
recursive-include pysgrid *.py

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
[![Build Status](https://travis-ci.org/sgrid/pysgrid.svg?branch=master)](https://travis-ci.org/sgrid/pysgrid)
44

5-
Python tools for sgrid
5+
Python tools for SGRID.

pysgrid/read_netcdf.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ def parse_padding(padding_str, mesh_topology_var):
7070
raw_dim, raw_sub_dim, raw_padding_var = padding_match
7171
dim = raw_dim.split(':')[0]
7272
sub_dim = raw_sub_dim
73-
# Remove parentheses. (That is why regular expressions are bad! You
74-
# need a commend to explain what is going on.)
73+
# Remove parentheses. (That is why regular expressions are bad!
74+
# You need a commend to explain what is going on!!)
7575
cleaned_padding_var = re.sub('[\(\)]', '', raw_padding_var)
7676
# Get the padding value and remove spaces.
7777
padding_type = cleaned_padding_var.split(':')[1].strip()
@@ -124,11 +124,11 @@ def parse_vector_axis(variable_standard_name):
124124

125125
class NetCDFDataset(object):
126126

127-
def __init__(self, nc_dataset_obj):
128-
self.ncd = nc_dataset_obj
127+
def __init__(self, nc):
128+
self.nc = nc
129129
# in case a user as a version netcdf C library < 4.1.2
130130
try:
131-
self._filepath = nc_dataset_obj.filepath()
131+
self._filepath = nc.filepath()
132132
except ValueError:
133133
self._filepath = None
134134
self.sgrid_compliant_file()
@@ -139,7 +139,7 @@ def find_node_coordinates(self, node_dimensions):
139139
cell vertices.
140140
141141
"""
142-
nc_vars = self.ncd.variables
142+
nc_vars = self.nc.variables
143143
node_dims = node_dimensions.split(' ')
144144
node_dim_set = set(node_dims)
145145
x_node_coordinate = None
@@ -169,7 +169,7 @@ def find_node_coordinates(self, node_dimensions):
169169
return None
170170

171171
def find_variables_by_attr(self, **kwargs):
172-
nc_vars = self.ncd.variables
172+
nc_vars = self.nc.variables
173173
matches = []
174174
keys = kwargs.keys()
175175
for nc_var in nc_vars.keys():
@@ -198,7 +198,7 @@ def find_coordinates_by_location(self, location_str, topology_dim):
198198
:param int topology_dim: the topology dimension of the grid
199199
200200
"""
201-
nc_vars = self.ncd.variables
201+
nc_vars = self.nc.variables
202202
vars_with_location = self.find_variables_by_attr(location=location_str)
203203
x_coordinate = None
204204
y_coordinate = None
@@ -276,7 +276,7 @@ def sgrid_compliant_file(self):
276276
277277
"""
278278
try:
279-
find_grid_topology_var(self.ncd)
279+
find_grid_topology_var(self.nc)
280280
except ValueError as e:
281281
raise e
282282

pysgrid/sgrid.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -258,20 +258,20 @@ class SGridAttributes(object):
258258
attributes for either SGrid.
259259
260260
"""
261-
def __init__(self, nc_dataset, topology_dim, topology_variable):
262-
self.nc_dataset = nc_dataset
263-
self.ncd = NetCDFDataset(self.nc_dataset)
261+
def __init__(self, nc, topology_dim, topology_variable):
262+
self.nc = nc
263+
self.ncd = NetCDFDataset(self.nc)
264264
self.topology_dim = topology_dim
265265
self.topology_variable = topology_variable
266-
self.topology_var = self.nc_dataset.variables[self.topology_variable]
266+
self.topology_var = self.nc.variables[self.topology_variable]
267267

268268
def get_dimensions(self):
269-
ds_dims = self.nc_dataset.dimensions
269+
ds_dims = self.nc.dimensions
270270
grid_dims = [(ds_dim, len(ds_dims[ds_dim])) for ds_dim in ds_dims]
271271
return grid_dims
272272

273273
def get_topology_var(self):
274-
grid_topology_var = find_grid_topology_var(self.nc_dataset)
274+
grid_topology_var = find_grid_topology_var(self.nc)
275275
return grid_topology_var
276276

277277
def get_attr_dimension(self, attr_name):
@@ -312,7 +312,7 @@ def get_node_coordinates(self):
312312
def get_variable_attributes(self, sgrid):
313313
dataset_variables = []
314314
grid_variables = []
315-
nc_variables = self.nc_dataset.variables
315+
nc_variables = self.nc.variables
316316
for nc_variable in nc_variables:
317317
nc_var = nc_variables[nc_variable]
318318
sgrid_var = SGridVariable.create_variable(nc_var, sgrid)
@@ -324,11 +324,8 @@ def get_variable_attributes(self, sgrid):
324324
sgrid.grid_variables = grid_variables
325325

326326
def get_angles(self):
327-
try:
328-
# get angles if they exist, otherwise calculate them
329-
grid_angles = self.nc_dataset.variables['angle'][:]
330-
angles = grid_angles
331-
except KeyError:
327+
angles = self.nc.variables.get('angle')
328+
if not angles:
332329
cell_centers = self.get_cell_center_lat_lon()
333330
centers_start = cell_centers[..., :-1, :]
334331
centers_end = cell_centers[..., 1:, :]
@@ -337,8 +334,8 @@ def get_angles(self):
337334

338335
def get_cell_center_lat_lon(self):
339336
grid_cell_center_lon_var, grid_cell_center_lat_var = self.get_attr_coordinates('face_coordinates') # noqa
340-
grid_cell_center_lat = self.nc_dataset.variables[grid_cell_center_lat_var][:] # noqa
341-
grid_cell_center_lon = self.nc_dataset.variables[grid_cell_center_lon_var][:] # noqa
337+
grid_cell_center_lat = self.nc[grid_cell_center_lat_var]
338+
grid_cell_center_lon = self.nc[grid_cell_center_lon_var]
342339
return pair_arrays(grid_cell_center_lon, grid_cell_center_lat)
343340

344341
def get_cell_node_lat_lon(self):
@@ -347,8 +344,8 @@ def get_cell_node_lat_lon(self):
347344
except TypeError:
348345
cell_nodes = None
349346
else:
350-
grid_cell_nodes_lat = self.nc_dataset.variables[grid_cell_nodes_lat_var][:] # noqa
351-
grid_cell_nodes_lon = self.nc_dataset.variables[grid_cell_nodes_lon_var][:] # noqa
347+
grid_cell_nodes_lat = self.nc[grid_cell_nodes_lat_var]
348+
grid_cell_nodes_lon = self.nc[grid_cell_nodes_lon_var]
352349
cell_nodes = pair_arrays(grid_cell_nodes_lon, grid_cell_nodes_lat)
353350
return cell_nodes
354351

pysgrid/utils.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,14 @@ def infer_avg_axes(sgrid_obj, nc_var_obj):
144144
avg_dim = None
145145
continue
146146
else:
147-
avg_dim = var_dim # name of the dimension we're averaging over
148-
break # exit the loop once it's found
147+
avg_dim = var_dim # Name of the dimension we're averaging over.
148+
break # Exit the loop once it's found.
149149
if padding_info is not None and avg_dim is not None:
150150
var_position = var_dims.index(avg_dim)
151151
center_avg_axis = len(var_dims) - var_position - 1
152152
else:
153153
center_avg_axis = None
154-
# define the node averaging axis for a variable
154+
# Define the node averaging axis for a variable.
155155
if center_avg_axis == 1:
156156
node_avg_axis = 0
157157
elif center_avg_axis == 0:
@@ -202,7 +202,7 @@ def calculate_bearing(lon_lat_1, lon_lat_2):
202202

203203
def calculate_angle_from_true_east(lon_lat_1, lon_lat_2):
204204
"""
205-
Return the angle from true east in radians
205+
Return the angle from true east in radians.
206206
207207
"""
208208
bearing = calculate_bearing(lon_lat_1, lon_lat_2)
@@ -211,6 +211,5 @@ def calculate_angle_from_true_east(lon_lat_1, lon_lat_2):
211211
# Unsure if this is the appropriate thing to do for the last grid cell.
212212
angles = np.append(bearing_from_true_east_radians,
213213
bearing_from_true_east_radians[..., -1:],
214-
axis=-1
215-
)
214+
axis=-1)
216215
return angles

requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
netCDF4
1+
netCDF4 >=1.2.0
22
numpy

setup.py

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -26,26 +26,25 @@ def readme():
2626
with open('README.md') as f:
2727
return f.read()
2828

29-
setup(
30-
name='pysgrid',
31-
version=extract_version(),
32-
description='Python package for working with staggered gridded data',
33-
author='Andrew Yan',
34-
author_email='[email protected]',
35-
url='https://github.com/sgrid/pysgrid',
36-
packages=find_packages(),
37-
license='BSD',
38-
long_description=readme(),
39-
install_requires=reqs,
40-
tests_require=['mock', 'nose'],
41-
classifiers=[
42-
'Development Status :: 3 - Alpha',
43-
'Intended Audience :: Developers',
44-
'Intended Audience :: Science/Research',
45-
'License :: OSI Approved :: BSD License',
46-
'Operating System :: POSIX :: Linux',
47-
'Programming Language :: Python',
48-
'Topic :: Scientific/Engineering',
49-
],
50-
include_package_data=True,
51-
)
29+
setup(name='pysgrid',
30+
version=extract_version(),
31+
description='Python package for working with staggered gridded data',
32+
author='Andrew Yan',
33+
author_email='[email protected]',
34+
url='https://github.com/sgrid/pysgrid',
35+
packages=find_packages(),
36+
license='BSD',
37+
long_description=readme(),
38+
install_requires=reqs,
39+
tests_require=['mock', 'nose'],
40+
classifiers=[
41+
'Development Status :: 3 - Alpha',
42+
'Intended Audience :: Developers',
43+
'Intended Audience :: Science/Research',
44+
'License :: OSI Approved :: BSD License',
45+
'Operating System :: POSIX :: Linux',
46+
'Programming Language :: Python',
47+
'Topic :: Scientific/Engineering',
48+
],
49+
include_package_data=True,
50+
)

0 commit comments

Comments
 (0)