areaint в Matlab против areaPolygon или areapl в R

Я получаю два разных набора значений, когда пытаюсь вычислить площадь многоугольника в Matlab vs. R. В Matlab я использовал areaint (со ссылочным эллипсоидом, установленным на WGS84). В R я попробовал как geosphere :: areaPolygon на широте и долготе, так и splancs :: areapl в евклидовых координатах, преобразованных в сетку. Результаты R согласуются друг с другом, но не с расчетом в Matlab. Эти два набора отличаются в среднем на 25% (Matlab ниже). Что мне не хватает?


person c.gutierrez    schedule 23.10.2012    source источник
comment
Вместо этого попробуйте воспользоваться списком рассылки R-Sig-Geo. Не уверен, что здесь вы получите ответ.   -  person Brandon Bertelsen    schedule 24.10.2012
comment
Что произойдет, если вы попробуете построить простой многоугольник, площадь которого вам известна?   -  person Dennis Jaheruddin    schedule 24.10.2012
comment
Спасибо, размещено на R-Sig-Geo. ссылка   -  person c.gutierrez    schedule 25.10.2012
comment
@DennisJaheruddin Используя автономный пример из? AreaPolygon: p ‹- rbind (c (-180, -20), c (-140,55), c (10, 0), c (-140, -60), c (-180, -20)) library (geosphere) areaPolygon (p) #result in m ^ 2 [1] 2.12582e + 14 Вот параллельный код в Matlab (требуется Mapping Toolkit): p = [- 180 -20 ; -140 55; 10 0; -140-60; -180 -20]; area = areaint (p (:, 2), p (:, 1), referenceEllipsoid ('wgs84', 'km'))% результат в km ^ 2 area = 2.524097207871018e + 08 ››› Результаты составляют ~ 20% (~ 40e6 км ^ 2) разные.   -  person c.gutierrez    schedule 25.10.2012


Ответы (1)


По-видимому, результат Matlab был получен из неправильно отформатированной входной матрицы: areaint () требует (lat, lon), тогда как вход R был правильно отформатирован как (lon, lat). Это верно для любой из ранее упомянутых функций R.

См. Также: http://r-sig-geo.2731867.n2.nabble.com/template/NamlServlet.jtp?macro=reply&node=7581419

person c.gutierrez    schedule 26.10.2012