Бештар

Табдил додани координатаҳои X, Y ба lat / long бо истифодаи pyproj ва Proj.4 координатҳои нодурустро бар мегардонад

Табдил додани координатаҳои X, Y ба lat / long бо истифодаи pyproj ва Proj.4 координатҳои нодурустро бар мегардонад


Ман скрипти python менависам, ки файлҳои сершумори XML-ро дар бар мегирад, ки координатаҳои x ва y доранд ва ҳамаи онҳоро ба файли CSV-и ягона муттаҳид мекунанд. Арзи ҷуғрофӣ ва тӯлонӣ дар csv талаб карда мешаванд, аммо ман дар табдили координатаҳои x, y дар Огайо Шимолӣ Давлатии ҳавопаймо ба WGS84 мушкилӣ мекашам.

>>> p = Proj (r '+ proj = lcc + lat_1 = 41.7 + lat_2 = 40.43333333333333 + lat_0 = 39.66666666666666 + lon_0 = -82.5 + x_0 = 600000 + y_0 = 0 + ellps = GRS80 + datum = NAD83 + адад = мо -ft + no_defs ') # Nad83 State Plane State Ohio Ohio Feet Proet объект бо истифода аз параметрҳо >>> p (739400.91,2339327.3, tesverse = True) (-80.138057868777224, 60.278230707978487) >>> p1 = Proj (init = "epsg: 3734 ") # Nad83 State Plane State Ohio, North America Feet Proj object истифода рамзи EPSG >>> p1 (739400.91,2339327.3, баръакс = Рост) (-80.138057868777224, 60.278230707978487)

Ҳарду усули дар боло овардашуда натиҷаи якхеларо ба даст меоранд, аммо ин дарозмуддат дар ҷое дар Ҳудзон Бэй ҷойгир аст. Вақте ки ман координатаҳоро дар ArcMap тартиб медиҳам, дарозии дурусти дароз чунин аст: -81.142311,41.688205.

* Аҳамият диҳед, ки ҳама дарозии дароз пешниҳод карда мешавад, зеро ин тартиби истифодаи Proj мебошад

Оё касе медонад, ки чаро ман координатҳои нодурустро аз Proj.4 ва pyproj мегирифтам?


Ҳангоми давидан ман ҳамон натиҷаҳоро ба даст меорам, ки @geographikaгдалтрансформва асбоби proj.4cs2cs:

$ gdaltransform -s_srs EPSG: 3734 -t_srs EPSG: 4326 739400.9 2339327.3 -87.3195485720169 45.9860670658218 0 cs2cs + proj = lcc + lat_1 = 41.7 + lat_2 = 40.43333333333333 + lat_on = 66_66 = 0_66 = 66_06 = GRS80 + маълумот = NAD83 + воҳид = us-ft + no_defs + ба + proj = lonlat + datum = WGS84 739400.9 2339327.3 87d19'10.375 "W 45d59'9.841" N 0.000

Баргардонидани координатаҳои x ва y нуқтаи шумо, аммо натиҷаеро медиҳад, ки шумо дар ArcMap мебинед:

gdaltransform -s_srs EPSG: 3734 -t_srs EPSG: 4326 2339327.3 739400.9 -81.1423086719059 41.6882035384526 0

Аз ин рӯ, ба шумо лозим меояд, ки санҷиши визуалӣ гузаронед, то шумо x ва y-и худро бо роҳи дуруст давр занед. Ин мушкилотест, ки ман дар гузашта дучор омадам, вақте ки шумо ду натиҷаи ба ҳам монандро ба даст меоред, ки онро ба хатогии мудаввар ё чизе гузоштед.


PyProj тахмин мезанад, ки координатҳои шумо дар метр мебошанд. Ман гумон мекунам, ки чизи марбут ба пойҳо / метрҳо сабаби ин масъала аст.

Даъвати мисоли синфи Proj бо далелҳои lon, lat, lon / lat (ба дараҷа) ба x / y координатаҳои проексияи харитаи ватаниро (ба метр) табдил медиҳад

Агар калимаи ихтиёрии 'preserve_units' рост бошад, воҳидҳо дар координатаҳои проексияи харита маҷбур нестанд, ки метр бошанд.

http://pyproj.googlecode.com/svn/trunk/docs/pyproj.Proj-class.html

Оё координатҳои ибтидоии шумо дар пойҳо ҳастанд? Вақте ки шумо маълумотро ба ArcMap бор мекунед, харита кадом воҳидҳоро истифода мебарад?

Ин координатаҳоро каме наздик мекунад:

p1 = Proj (init = "epsg: 3734") # 1 пиёда = 0.3048 метр конв = 0.3048 чоп p1 (739400.91 * гард, 2339327.3 * гард, баръакс = Рост) (-87.3195533069909, 45.98605408134072)

Масъалаи монандро дар инҷо пайдо кардан мумкин аст.


Ман аслан кӯшиш мекардам, ки ҳамин чизро иҷро кунам, ба истиснои шабакаи ҳавопаймоии OH ҷануб ва ба саволи шумо рӯ ба рӯ шудам. Ман бо 3735 натиҷаҳои хато мегирифтам, ҳоло бо 3729 натиҷаҳои дуруст мегирам. Ман умедворам, ки агар шумо аз 3734 ба 3728 гузаред, шумо натиҷаҳои дуруст хоҳед гирифт.

EPSG: 3728: NAD83 (NSRS2007) / Ohio North (ftUS) EPSG: 3729: NAD83 (NSRS2007) / Ohio South (ftUS) EPSG: 3734: NAD83 / Ohio North (ftUS) EPSG: 3735: NAD83 / Ohio South (ftUS)

Ман лати пешбинишудаи шуморо истифода кардам, дароз ва камтар аз як пиёда ҳастам.

p2 = pyproj.Proj (init = "epsg: 3728", preserve_units = Рост)

p2 (-81.142311,41.688205)

(2339326.6558868014, 739401.4226131936)

ва 2339327.3, 739400.91