public static SpatialCell CorrectLonsTo180_180(this SpatialCell cq) { if (cq.LonMax - cq.LonMin == 360) { cq.LonMin = -180; cq.LonMax = 180; return(cq); } if (cq.LonMin == -180 && cq.LonMax == -180) { return(cq); } if (cq.LonMax == 180 && cq.LonMin == 180) { cq.LonMin = cq.LonMax = -180; return(cq); } if (cq.LonMax > 180) { cq.LonMax -= 360; } if (cq.LonMin >= 180) { cq.LonMin -= 360; } return(cq); }
public static SpatialCell CorrectLonsTo0_360(this SpatialCell cq) { if (Math.Abs(cq.LonMin - cq.LonMax) == 360) { cq.LonMin = 0; cq.LonMax = 360; return(cq); } if ((cq.LonMax == 0 && cq.LonMin == 0)) { return(cq); } if ((cq.LonMax == 360 && cq.LonMin == 360)) { cq.LonMin = cq.LonMax = 0; return(cq); } if (cq.LonMax <= 0) { cq.LonMax += 360; } if (cq.LonMin < 0) { cq.LonMin += 360; } if (cq.LonMax >= 0 && cq.LonMax <= 360 && cq.LonMin == 360) { cq.LonMin = 0; } return(cq); }