@staticmethod<EOL><INDENT>def load(filename,<EOL>center=None, center_right=None, radius=None, method='<STR_LIT>',<EOL>registration='<STR_LIT>', chirality=None, sphere_radius=None,<EOL>pre_affine=None, post_affine=None, meta_data=None):<DEDENT>
<EOL>if pimms.is_str(filename):<EOL><INDENT>filename = os.path.expandvars(os.path.expanduser(filename))<EOL>if not os.path.isfile(filename):<EOL><INDENT>raise ValueError('<STR_LIT>' % filename)<EOL><DEDENT>gz = (len(filename) > <NUM_LIT:3> and filename[-<NUM_LIT:3>:] == '<STR_LIT>')<EOL>dat = None<EOL>with (gzip.open(filename, '<STR_LIT>') if gz else open(filename, '<STR_LIT>')) as f:<EOL><INDENT>dat = json.load(f)<EOL><DEDENT>fname = filename<EOL><DEDENT>else:<EOL><INDENT>dat = json.load(filename)<EOL>fname = '<STR_LIT>'<EOL><DEDENT>dat = {k.lower():denormalize(v) for (k,v) in six.iteritems(dat)}<EOL>params = dict(center=center, center_right=center_right, radius=radius, method=method,<EOL>registration=registration, chirality=chirality, sphere_radius=sphere_radius,<EOL>pre_affine=pre_affine, post_affine=post_affine)<EOL>dat = {k:(dat[k] if k in dat else v)<EOL>for (k,v) in six.iteritems(params)<EOL>if v is not None or k in dat}<EOL>return MapProjection.denormalize(dat)<EOL>
MapProjection.load(file) yields the map projection indicated by the given file name or file
  object file. Map projections define the parameters of a projection to the 2D cortical
  surface via a registartion name and projection parameters.

Note that although load uses the normalize/denormalize system, it does not call
denormalize(data) but rather MapProjection.denormalize(data); this is because
MapProjection's load/save system expects that it will not encode type-data as the
normalization system does.

The following options may be given; all of these options represent parameters that may or
may not be defined by the map-projection file; in the case that a parameter is defined by
the file, the optional argument is ignored. To force parameters to have particular values,
you must modify or copy the map projection that is yielded by this function (but note that
all the parameters below match parameters of the map projection class). All of these
parameters except the method (default: 'orthographic'), registration (default: 'native'),
and meta_data parameters have default values of None, which means that they are, by default,
handled by the MapProjection class. The meta_data parameter, if provided, is merged with any
meta-data in the projection file such that the passed meta-data is overwritten by the file's
meta-data.
  * center specifies the 3D vector that points toward the center of the map.
  * center_right specifies the 3D vector that points toward any point on the positive x-axis
    of the resulting map.
  * radius specifies the radius that should be assumed by the model in radians of the
    cortical sphere. If the default (None) is given, then pi/3.5 is used.
  * method specifies the projection method used (default: 'orthographic').
  * registration specifies the registration to which the map is aligned (default: 'native').
  * chirality specifies whether the projection applies to left or right hemispheres.
  * sphere_radius specifies the radius of the sphere that should be assumed by the model.
    Note that in Freesurfer, spheres have a radius of 100.
  * pre_affine specifies the pre-projection affine transform to use on the cortical sphere.
  * post_affine specifies the post-projection affine transform to use on the 2D map.
  * meta_data specifies any additional meta-data to attach to the projection.