lon_convert.lua


NAME
    lon_convert

FUNCTION
    lon_convert(lon)

NOTES
    Converts longitude to project Atlantic in the center.
    lon is expected to vary from -180 to 180

INPUTS
    lon - number or zeArray object as longitude in degree

OUTPUTS
    Modifies lon if it is a zeArray object; otherwise returns lon.

SOURCE

function lon_convert(lon)
    if (type(lon) == "userdata") then
        n = lon:size() - 1
        for k = 0, n, 2 do
            local v1 = lon:getele(k, 0)
            local v2 = lon:getele(k+1, 0)
            if (v1 > 0 or v2 > 0) then
                v1 = v1 - 180
                v2 = v2 - 180
            else
                v1 = v1 + 180
                v2 = v2 + 180
            end
            lon:setele(k, 0, v1)
            lon:setele(k+1, 0, v2)
        end
    else
        if (lon >= 0) then
            lon = lon - 180
        else
            lon = lon + 180
        end
        return lon
    end
end