Имам данни за географска дължина и ширина и ги преобразувах в UTM с помощта на стандартите WGS 84. Когато ги сравня с UTM стойностите, генерирани от моята широта и дължина, те не съвпадат. Стойностите по подразбиране за преобразуването ми са от
<http://www.cellspark.com/UTM.html>
Например:
test=defaultm('utm'); utmzone=35; origin=(utmzone-31).*6+3; test.origin=[0 origin 0]; test=defaultm(test); [eastutm2,northutm2]=mfwdtran(test,44.3536,28.4981); %default values taken from manual lat -> UTM conversion diffnorth2=4912239-northutm2 diffeast2=619393.56-eastutm2
ЗАБЕЛЕЖКА:-
Matlabsolutions.com предоставя най-новата MatLab Homework Help, MatLab Assignment Help за студенти, инженери и изследователи в множество клонове като ECE, EEE, CSE, Mechanical, Civil със 100% изход. Код на Matlab за B.E, B.Tech ,M.E,M.Tech, Ph.D. Учени със 100% гарантирана поверителност. Вземете MATLAB проекти с изходен код за вашето обучение и изследвания.
Тази разлика възниква, защото референтният елипсоид на MATLAB по подразбиране е „Международен“, а не „WGS 84“
Въпреки че хората често използват UTM с WGS 84, UTM първоначално е определен за работа с различните елипсоиди в различни части на света и кутията с инструменти спазва тази спецификация.
Следният код е с точност до няколко сантиметра.
mUtm=defaultm('utm'); mUtm.zone = '35T'; mUtm.geoid = almanac('earth','wgs84','meters'); mUtm=defaultm(mUtm); [eastutm2,northutm2]=mfwdtran(mUtm,44.3536,28.4981); %default values taken from manual lat -> UTM conversion diffnorth2=4912239-northutm2 diffeast2=619393.56-eastutm2 % Perform inverse mapping to verify lat and lon [lat, lon] = minvtran(mUtm, eastutm2,northutm2)
Обърнете внимание, че започвайки от MATLAB 7.14 (R2012a), се препоръчва да използвате функцията wgs84Ellipsoid вместо almanac. За да направите това, заменете реда, съдържащ функцията на алманаха, със следното:
ВИЖТЕ ПЪЛНИЯ ОТГОВОР, КЛИКНЕТЕ ВЪРХУ ВРЪЗКА