Skip to content

Commit e3eea4b

Browse files
committed
Merge pull request #1772 from UV-CDAT/fix-proj4-minus3-annie
BUG: proj4 over option causes problems with polar projections
2 parents 11ceb27 + c688c62 commit e3eea4b

1 file changed

Lines changed: 26 additions & 30 deletions

File tree

Packages/vcs/Lib/vcs2vtk.py

Lines changed: 26 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -570,24 +570,22 @@ def projectArray(w, projection, wc, geo=None):
570570
pname = projDict.get(projection._type, projection.type)
571571
projName = pname
572572
pd.SetName(projName)
573-
if projection.type == 'aeqd':
574-
# this is a temporary branch to keep the same
575-
# baselines
573+
if (projection.type == 'aeqd' or
574+
projection.type == 'polar stereographic'):
576575
setProjectionParameters(pd, projection)
576+
elif projection.type == "polar (non gctp)":
577+
if ym < yM:
578+
pd.SetOptionalParameter("lat_0", "-90.")
579+
pd.SetCentralMeridian(xm)
580+
else:
581+
pd.SetOptionalParameter("lat_0", "90.")
582+
pd.SetCentralMeridian(xm + 180.)
577583
else:
578584
pd.SetOptionalParameter("over", "true")
579-
if projection.type == "polar (non gctp)":
580-
if ym < yM:
581-
pd.SetOptionalParameter("lat_0", "-90.")
582-
pd.SetCentralMeridian(xm)
583-
else:
584-
pd.SetOptionalParameter("lat_0", "90.")
585-
pd.SetCentralMeridian(xm + 180.)
586-
else:
587-
setProjectionParameters(pd, projection)
588-
if ((not hasattr(projection, 'centralmeridian') or
589-
numpy.allclose(projection.centralmeridian, 1e+20))):
590-
pd.SetCentralMeridian(float(xm + xM) / 2.0)
585+
setProjectionParameters(pd, projection)
586+
if ((not hasattr(projection, 'centralmeridian') or
587+
numpy.allclose(projection.centralmeridian, 1e+20))):
588+
pd.SetCentralMeridian(float(xm + xM) / 2.0)
591589
geo.SetSourceProjection(ps)
592590
geo.SetDestinationProjection(pd)
593591

@@ -613,24 +611,22 @@ def project(pts, projection, wc, geo=None):
613611
pname = projDict.get(projection._type, projection.type)
614612
projName = pname
615613
pd.SetName(projName)
616-
if projection.type == 'aeqd':
617-
# this is a temporary branch to keep the same
618-
# baselines
614+
if (projection.type == 'aeqd' or
615+
projection.type == 'polar stereographic'):
619616
setProjectionParameters(pd, projection)
617+
elif projection.type == "polar (non gctp)":
618+
if ym < yM:
619+
pd.SetOptionalParameter("lat_0", "-90.")
620+
pd.SetCentralMeridian(xm)
621+
else:
622+
pd.SetOptionalParameter("lat_0", "90.")
623+
pd.SetCentralMeridian(xm + 180.)
620624
else:
621625
pd.SetOptionalParameter("over", "true")
622-
if projection.type == "polar (non gctp)":
623-
if ym < yM:
624-
pd.SetOptionalParameter("lat_0", "-90.")
625-
pd.SetCentralMeridian(xm)
626-
else:
627-
pd.SetOptionalParameter("lat_0", "90.")
628-
pd.SetCentralMeridian(xm + 180.)
629-
else:
630-
setProjectionParameters(pd, projection)
631-
if (not hasattr(projection, 'centralmeridian') or
632-
numpy.allclose(projection.centralmeridian, 1e+20)):
633-
pd.SetCentralMeridian(float(xm + xM) / 2.0)
626+
setProjectionParameters(pd, projection)
627+
if (not hasattr(projection, 'centralmeridian') or
628+
numpy.allclose(projection.centralmeridian, 1e+20)):
629+
pd.SetCentralMeridian(float(xm + xM) / 2.0)
634630
geo.SetSourceProjection(ps)
635631
geo.SetDestinationProjection(pd)
636632
geopts = vtk.vtkPoints()

0 commit comments

Comments
 (0)