Wrap longitude to 0–360°
A western longitude of -74.006° becomes 285.994° on the 0–360 axis that climate and ocean datasets use. Enter any finite longitude and get it wrapped into the range from 0 up to, but not including, 360, with the correction shown. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Longitude
- -74.006
- Longitude 360
- 285.994
- Delta degrees
- 360
- Convention
- 0_to_360_east
Many climate models, ocean reanalyses, and satellite Level-3 products store longitude on a zero-to-three-hundred-sixty degree grid rather than the signed one-hundred-eighty convention common in web maps. Feeding a negative western longitude into those arrays silently lands in the wrong cell, and converting by hand with ad-hoc modulo formulas often leaves a negative residue or a value of exactly three hundred sixty that some loaders reject. This wrap-longitude calculator takes any finite decimal-degree longitude, applies a stable positive-modulo map into the half-open interval from zero inclusive to three hundred sixty exclusive, and returns the wrapped value plus a small diagnostic delta so you can audit the correction.
Why climate and ocean data use 0–360° longitude
Cartographic web maps and GPS devices almost always expose longitude as a signed value from negative one hundred eighty through positive one hundred eighty, with west negative and east positive and the antimeridian at plus or minus one hundred eighty. Climate and ocean communities grew up on a different bookkeeping choice: grids that start at the Greenwich meridian at zero degrees and increase continuously eastward until just below three hundred sixty degrees, so a global field is one unbroken axis without a sign flip in the middle of the Pacific.
Reanalysis products, coupled atmosphere–ocean models, and many CMIP-style archives therefore expect longitudes already on that zero-to-three-hundred-sixty axis before bilinear remapping, zonal means, or land–sea masks are applied. The modular identity longitude three-sixty equals the positive remainder of longitude modulo three hundred sixty after folding negatives, maps every real angle onto that half-open interval. Zero stays zero at Greenwich; negative ten becomes three hundred fifty; three hundred seventy becomes ten; one hundred eighty stays one hundred eighty at the date-line side of the signed convention.
Exactly three hundred sixty is folded back to zero so the open end of the interval does not produce a duplicate of the origin.
What to enter and what you get back
Send a single required field named longitude as a finite number of decimal degrees. There is no geographic “valid range” rejection beyond finiteness: values far outside the usual globe, such as five hundred forty or negative seven hundred twenty, are intentionally accepted and reduced modulo three hundred sixty, because batch pipelines often accumulate unwrapped tracks or multi-revolution headings before they normalize.
Classic checks include negative seventy-four point zero zero six for a western city mapping sample, zero for the prime meridian, one hundred eighty for the antimeridian under the signed convention, three hundred seventy for a value that should collapse to ten, and deliberately non-finite input to exercise the error path. Wire the free browser form for quick sanity checks, then call the identical contract from scripts when you preprocess climate NetCDF, CF-compliant CSV exports, or answer keys.
Where wrapping longitude to 0–360° shows up in real work
Earth-system scientists regridding model output onto observational products constantly convert between signed longitudes from web GIS and the zero-to-three-hundred-sixty axes baked into ocean temperature cubes, atmospheric pressure levels, and sea-ice concentration grids; a single trusted wrap removes spreadsheet drift between lab notebooks. Data engineers building ETL for public climate portals need deterministic modular reduction so nightly jobs do not flip a Pacific cell by a few degrees after a floating-point edge case.
Educators teaching map projections and coordinate conventions want students to see that negative seventy-four and two hundred eighty-six describe the same meridian under different range policies without hand-calculating remainders under exam pressure. If you later need the inverse conversion toward signed negative one hundred eighty through one hundred eighty, great-circle distances, or decimal-to-DMS formatting, treat those as separate search intents and landings rather than overloading this wrap-longitude page.
What you can do with it
Climate and ocean NetCDF preprocessing
Normalize signed GPS or GIS longitudes into the 0–360° axis expected by reanalysis grids, CMIP archives, and CF-compliant ocean cubes before remapping.
Batch ETL for public climate portals
Apply a deterministic modular wrap across entire longitude columns so nightly jobs never leave negative residues or a duplicate 360° origin cell.
FAQ
What range does this wrap longitude into?
The half-open interval [0, 360): zero inclusive, three hundred sixty exclusive. Exactly 360 folds to 0 so the origin is not duplicated.
How is a western longitude such as −74° converted?
For example −74 becomes 286, which is the same meridian measured eastward from Greenwich on a 0–360 grid.
Does the tool reject values outside −180…180?
No. Any finite real is accepted and reduced modulo 360.
What is the difference between 0–360 and −180…180?
Signed −180…180 is common in web maps (west negative). Climate and ocean grids often use 0–360 eastward from Greenwich so the global axis is continuous without a mid-Pacific sign flip.
What does the wrap-longitude calculator cost?
The browser tool is free and runs locally.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/wrap-longitude-360 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"longitude":-74.006}'const res = await fetch("https://api.kit.forhosting.com/geo/wrap-longitude-360", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"longitude": -74.006
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/wrap-longitude-360",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"longitude": -74.006
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/wrap-longitude-360", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"longitude":-74.006}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"longitude":-74.006}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/wrap-longitude-360", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"longitude": -74.006
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.wrap_longitude_360",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Why climate and ocean data use 0–360° longitude
If you paste a western-hemisphere city such as New York at about negative seventy-four degrees into a 0–360 grid without wrapping, the lookup falls outside the axis or aliases into an empty halo.
Input contract, response shape, and validation
Missing fields, empty strings, non-numeric tokens, NaN, and Infinity fail with invalid_input and are not charged. On success the response echoes the cleaned longitude, returns longitude_360 as the wrapped result in the half-open interval from zero inclusive to three hundred sixty exclusive, sets already_in_range true when the input was already inside that band, reports delta_degrees as the principal signed correction applied, documents range with min zero and max_exclusive three hundred sixty, labels convention as zero_to_360_east, and includes formula and method strings for display and logging. Pricing for successful API calls is the published base of $0.002 per item; validation failures do not consume prepaid balance.
Where wrapping longitude to 0–360° shows up in real work
Because this capability is a pure parse engine, API pricing is the published base of $0.002 per successful item and failed validation does not consume balance.
Integration use cases
Teaching longitude range conventions
Show students that western longitudes become values above 180° on a 0–360 grid, with golden JSON they can trust in homework and unit tests.