I've got a set of data that is referenced to NZ TOPO50 locations. I've been trying to work out how to convert them to something useful like WGS84 lat/lon.
I have gone through the documentation at http://www.linz.govt.nz and am still stuck.
An example is "BA32 582206" becomes "36 50 50S 174 46 28E". I have found the NZ-topo-50-map-sheets.xls that has a 5 point mulitpolygon to describe BAS32, but I can not work out how the 58/2 and 20/6 become 174 46 28E and 36 50 50S respectively.
Use the online tool at
http://apps.linz.govt.nz/coordinate-conversion/index.aspx
choose as input coordinates system "New Zealand Transverse Mercator Projection" and as output coordniate system "World Geodetic System 1984"
Your input coordinates should be something like
5413457 North
1528677 East
Than you get your WGS84 Coordinates.
Related
If I have the following coordinates obtained from the Google API:
[longitude] => 18.12288
[latitude] => -23.1233399
I want to know how accurate this coordinate is. In other words, what area does this specific coordinate cover? Is it a 1 meter by 1 meter area, or is it less accurate and maybe cover a 50 by 50 meter area? How do you calculate the area it covers?
UPDATE
Using this calculator, I could get:
0.000001 = .1 meter
0.00001 = 1 meter
0.0001 = 11 meters
0.001 = 111 meters
0.01 = 1113 meters / 1.1 km
0.1 = 11132 meters / 11.1 km
1.0 = 111319 meters / 111 km
Is this correct?
you can work it out here
http://www.csgnetwork.com/gpscoordconv.html
Coords are usually meter accurate if the seconds are well defined.
Apparently i neeed more rep to comment, anyhow,
No, your last comment is wrong.
coords are usually pim point accurate assuming you have seconds included in your coord.
To work out standard coordinates
xx.xxxxxxxxx
the first two numbers are your degrees
so it will look like this "xx" and "xxxxxxx" for the remainder,
to get minutes, you divide the remainder by 60,
it looks like this now "xx" "xx" "xxxxx"
and what is the decimal of that equation is again divided by 60, to get your seconds.
you may be left with decimals after you work out seconds, but those are fine, the more numbers you have, the more accurate your coord will be.
hope this helps.
The length of a degree in a a projected system (2d system such as the one used by Google Maps) depends on the latitude. Using this simple calculator, you can see that if you change the latitude from 0 degrees to 90 degrees (Equator to North Pole), you get a different length (by up to a kilometer - 110km at North Pole vs 111km at Equator).
Wikipedia has a good summary of the lengths at the equator and those match the ones you typed out. Based on the lat/long that you provided, the accuracy would be around 1 meter.
Given a SHP file corresponding to European countries, and...
Given defined area corresponting to France such :
West : 005° 48' W
East : 010° E
North : 051° 30' N
South : 041° N
How to get only the dots/geometries which intersects my defined area with gdal ? so my crop indeed is a real crop, which just keep the necessary geometries. Strong preference to gdal, ogr or console solutions.
Use GDAL's ogr2ogr command-line utility. If you have a file Europe.shp which has a spatial reference with units of degrees, then use the -clipsrc option with decimal degrees to make a new shapefile:
ogr2ogr -clipsrc -5.8 41 10 51.5 France.shp Europe.shp
There is also an example at the ogr2ogr page with France used as an example.
I have this file from tsp.gatech but the lat lng coordinate is divide into two half. Why is this?
COMMENT: Created July 7, 2012, www.tsp.gatech.edu/data/usa/
1 33613.158800 86118.306100
2 33100.954000 85529.675300
3 31571.835200 85250.489300
For example the first coordinate should be 33.613158800 86.118306100.
Update: I searched for New York City and I found it lat lng coordinate to be similar.
Update 2: I think it's incorrect formated see this image of points: http://www.tsp.gatech.edu/data/usa/img/usa115475_large.jpg. I get the points from a file from this website: http://www.tsp.gatech.edu/data/usa/index.html. The site is about a challenge and the file I downloaded is usa115475.tsp.
Euclidean Distance would tend to suggest the values are X,Y distances from a reference point (in feet, meters, kilometers, miles, ...). But this is normally reserved for small scale mapping where the effects of the curvature of the earth can be considered minor.
If the data seems to correspond to decimal degrees that are incorrectly formatted, there could be an error in whatever system is returning the data. But its better to review your own processes before pointing the finger. What query/process/code are you doing to obtain this data?
Warning: I know nothing about GIS. That will become very apparent in a moment, of course. My vocabulary isn't going to be spot on, either, Apologies.
I need to recreate parts of a "Strategy Map" that looks like this as "real geo-spatial" map:
Why? Because if I can manage to plot the boxes ("Maximize Shareholder Value", "Exceed Customer Expectations", etc.) on a map in correct relation to each other, I can do some very fun stuff in a data visualization tool I'm working with.
I can build the strategy map above in Visio, and then use a script to export the shapes I care about as X, Y points OR Polygons. One of the boxes above might looks like this once exported:
ShapeNo ShapeName PointNo X Y
1 Exceed Cust 2 37 155
1 Exceed Cust 4 116 155
1 Exceed Cust 6 116 234
1 Exceed Cust 8 37 234
1 Exceed Cust 10 37 155
...or it might look like this:
POLYGON ((37 155, 116 155, 116 134, 37 234, 37,155))
Regardless, I have a bunch of points, and I need to turn these into lat/lon coordinates, using lat/lon (0,0) as my point of reference. In the map above, 0,0 might be beneath the "Exceed Customer Expectations" box - more or less dead center.
Then, I suspect I can find a tool that will convert this jumble of stuff into an ESRI shapefile and I can import directly into my dataviz tool.
Are there any known (free) tools, scripts, libraries, etc.that might do some of this for me?
Your problem shouldn't be solved with a GIS but I can appreciate that you have found some cool dataviz features that require a shapefile.
The problem is that you want to take some x,y points and convert them to lat/lon. Latitude-longitude refer specifically to points on the earth's surface and the points in your problem have no relation to the earth's surface.
Another way to think of this is that you are trying to take random points and say one represents the capital of Russia and the other represents a large city in Germany etc.
Another problem is that you want to have a 0,0 reference point but latitude and longitude have a datum as a reference point which is a specific geographic location.
It's hard to suggest an alternative method to solve your problem without more information on your familiarity with graphic design tools, but lat/lon with GIS are not the direction to be looking.
Many people do convert x,y points to lat/lon but this is not a direct conversion. Cartesian coordinates require a known projection and datum in order for this conversion to be accurate.
Check out this link for an in depth explanation of why arbitrary x,y cannot be converted to lat/lon.
On the other hand, +1 for an out-of-the-box original idea for strategy map design!
I am reverse engineering a transportation visualization app. I need to find out the latitude for the origin of their data feed. Specifically what XY 0,0 is. The only formulas I have found calculate distance between two points, or location of a bearing/distance.
They use the XY to display a map in a very legacy application. The XY is in FEET.
I have these coordinates:
47.70446615506108, -122.34469839507263: x=1268314, y=260622
47.774182540800616,-122.3412994737105: x=1269649, y=286031
47.60024792289405, -122.32767331735774: x=1271767, y=222532
47.57012494413499, -122.29129609983679: x=1280532, y=211374
I need to find out what the latitude and longitude of x=0, y=0 is and what the formula would be to find this out.
They have two data feeds, one is more current than the other. The feed with the most current data does NOT include latitude, longitude, but only XY. I am trying to extrapolate based on their less current, yet more informative (includes lat, lon) data feed what 0,0 is so I can simply convert their (more current) data feed's XY coordinates to latitude and longitude.
If you look at the first 2 lines of data, and subtract the latitude
47.7044 - 47.7741 = -0.06972 degrees
There are 60 nautical miles per degree of latitude, and 6076 feet per nautical mile.
-.06972 * 60 * 6076 = 25,415 ft
Subtracting the two 'Y' values:
260662 - 286031 = 25,409 ft
So indeed that seems to prove the X and Y values are in feet.
If you take any of the Y values, and convert back to degrees, for example
260622 ft / ( 6076 ft/nm ) / ( 60 nm/degree ) = .71
286031 ft / 6076 / 60 = .78
So subtracting those values from the latitudes of (47.70 and 47.77) gives you very close to exactly 47 degrees, which should be your y=0 point.
For longitude, a degree is 60 nautical miles at the equator and 0 miles at the poles. So the number of miles per degree has to be multiplied by the cosine of the latitude, so approx cos(47 degrees), or .68. So instead of 6076 nm per degree, it's about 4145 nm.
So for the X values,
1268314 ft / ( 4145 ft/nm ) / ( 60 nm/degree ) = 5.10 degrees
1269649 ft / 4145 / 60 = 5.10 degrees
These X numbers increase as the latitude increases (less negative), so I believe you should add 5.1 degrees, which means the X base point is about
-122.3 + 5.1 = 117.2 West longitude for your x=0 point.
This is roughly the position of Spokane WA.
So given X=1280532, Y=211374
Lat = 47 + ( 211374 / 6096 / 60 ) = 47.58
Lon = -117.2 - ( 1280532 / ( 6096 * cos(47.58)) / 60 ) = -122.35
Which is roughly equivalent to the given data 47.57 and -122.29
The variance may be due to different projections - the X,Y system may be a "flattened" projection as opposed to lat/long which apply to a spherical projection? So to be accurate you may yet need more advanced math or that open source library :)
This question may also be helpful, it contains code for calculating great circle distances:
Calculate distance between two latitude-longitude points? (Haversine formula)
There are many different coordinate systems. You need to find out the what the coordinate systems are for both the lat/lon's (e.g. WGS84 etc) and x/y's first (e.g. some sort of projected system probably).
Once you have that information there are several tools you can use to do conversions and manipulations. One example (of a free open source coding library) is proj4.
Ask them what coordinate system they're using! (or if you got the dataset from some database, look at the metadata for the dataset and it should tell you. Otherwise I'd be skeptical of its value)
Most likely this is one of the state plane coordinate systems. They're for localized areas of the earth (kind of like UTM), and are frequently used for surveying.
You can use CORPSCON (or other GIS programs; ExpertGPS will do this if you have the GIS Option Pack but it's not free. I forget whether GPSBabel does conversion) to convert between lat/long and any of the state plane coordinate systems. You'll also need to know which datum the coordinates are in. WGS84 and NAD83 are very close but NAD27 is different.
You've got good advice on coordinate systems already, so I'll just chime in with the library I've used with great success in the past.
Geotrans is approved for use by the US Department of Defence, so you can be sure that it is well tested. You can grab it from here:
http://earth-info.nga.mil/GandG/geotrans/index.html
That might not be the right link as that page talks about the application, not the library. I expect the library is in the Developers package. Licensing terms were very liberal from memory, but make sure you review the terms before using it commercially.
Edit:
An interesting discussion on Geotrans licensing can be found here:
http://www.mail-archive.com/debian-legal#lists.debian.org/msg39263.html
Over here, I said this:
In Java, I would use the OpenMap converter from a point's expression in UTM to one using Latitude and Longitude (assuming a WGS-84 ellipsoid which is most commonly used in GPS).
OpenMap is open source and I would post a link to their download page but they have a short license script in the way. So, to avoid being rude, I won't deep link. Instead, head to their homepage and click Downloads.
That should either solve your problem directly or at least point you towards a useful algorithm.
I've used Brenor Brophey's gPoint PHP class to do this on a couple of occasions. Solid results, GPL code, and easily deployed. Recommended.