Daha çox

ArcGIS, bərabər olmayan proyeksiya ilə iki nöqtə arasındakı məsafəni necə hesablayır?

ArcGIS, bərabər olmayan proyeksiya ilə iki nöqtə arasındakı məsafəni necə hesablayır?


Bu əvvəlki sualım üçün bir cavab sualıdır, Koordinat sistemi proqnozları haqqında yaxşı yazılmış giriş mətnləri təklif edə bilərsinizmi?


Tutaq ki, bildiyim hər şey üçün konformal, lakin bərabər məsafəli olmayan CH1903 xəritə proyeksiyası ilə işləyirəm. Məna, açılar (forma) qorunub saxlanılmışdır, lakin sahələr, məsafələr və miqyas deyil. (Ən azından bunlar qorunub saxlanılmayıb tam olaraq). İndiyə qədər yaxşı.

İndi iki nöqtə arasındakı məsafəni hesablamaq istədikdə ArcGIS-in hansı hesablama apardığını düşünürəm. ArcObjects-də mən istifadə edə bilərəm IP yaxınlığı Operatoruinterfeys aşağıdakı kimi:

IPoint a =…, b =…; ikiqat məsafə = ((IProximityOperator) a). ReturnDistance (b);

Sual: Məsafələri dəqiq saxlamayan bir istinad sistemi ilə işləyərkən, ArcGIS iki nöqtə arasındakı məsafəni soruşduqda (yuxarıda göstərildiyi kimi) nə edərdi?

  • Sadəcə bəzi Pifaqor riyaziyyatını edir (a2 + b2 = c2) məsafəni əldə etmək, yəni qaytarılmış məsafənin yalnız proyeksiya imkan verdiyi qədər dəqiq olacağını deməkdir?

  • Yoxsa daha dəqiq bir məsafə əldə etmək üçün bir növ yenidən proyeksiya kimi daha mürəkkəb bir şey edəcəkmi?

(Eyni sual, lakin ümumiyyətlə: Həndəsələr proqnozlaşdırıldıqdan sonra, ArcGIS bütün hesablamaları sadəcə Öklid məkanında aparır, yoxsa istifadə edilmiş xəritə proyeksiyası yenə də məsafələr, bucaqlar, sahələr və s. Hesablamalarına təsir edirmi?)


Geodezik məsafələrin hesablanması üçün stabil bir metod istəyirsinizsə, Richie Carmichael-in ESRI-nin Proyeksiya Mühərriki üçün sarmağı məsləhət görürəm.

Yeniləmə: Richie'nin kodunu Vista64-də ArcGIS 10.0 ilə sınadım və zəng etdikdən sonra bir istisna aldımYük kitabxanası. Buna daha sonra baxacağam.

Hələ ki, başqa bir cavabın şərhlərindəki suallara cavab verən bir neçə kod.

Kod, IProximityOperator-ı məkan istinadları olan və olmayan nöqtələrlə müqayisə edir. Sonra böyük dairə məsafəsini tapmaq üçün azimutal bərabər məsafəli proyeksiyanı (ilk nöqtə toxunma nöqtəsi olmaqla) necə istifadə edəcəyimizi göstərir.

Şəxsi boşluq Testi () {IPoint p1 = yeni PointClass (); p1.PutCoords (-98.0, 28.0); IPoint p2 = yeni PointClass (); p2.PutCoords (-78.0, 28.0); Debug.Print ("Öklidian məsafəsi {0}", EuclidianDistance (p1, p2)); Debug.Print ("Spatialrefsiz məsafə {0}", GetDistance (p1, p2)); ISpatialReferenceFactory srf = yeni SpatialReferenceEnvironmentClass (); IGeographicCoordinateSystem gcs = srf.CreateGeographicCoordinateSystem ((int) esriSRGeoCSType.esriSRGeoCS_WGS1984); p1.SpatialReference = qcs; p2.SpatialReference = qcs; Debug.Print ("Spatialref ilə məsafə {0}", GetDistance (p1, p2)); Debug.Print ("Böyük dairə məsafəsi {0}", GreatCircleDist (p1, s2)); } xüsusi ikiqat GetDistance (IPoint p1, IPoint p2) {return ((IProximityOperator) p1) .ReturnDistance (p2); } xüsusi cüt EuclidianDistance (IPoint p1, IPoint p2) {return Math.Sqrt (Math.Pow ((p2.X - p1.X), 2.0) + Math.Pow ((p2.Y - p1.Y), 2.0) ); } xüsusi ikiqat GreatCircleDist (IPoint p1, IPoint p2) {ISpatialReferenceFactory srf = yeni SpatialReferenceEnvironmentClass (); IProjectedCoordinateSystem pcs = srf.CreateProjectedCoordinateSystem ((int) esriSRProjCSType.esriSRProjCS_WGS1984N_PoleAziEqui); pcs.set_CentralMeridian (doğru, p1.X); ((IProjectedCoordinateSystem2) ədəd) .LatitudeOfOrigin = p1.Y; p1.SpatialReference = pcs.GeographicCoordinateSystem; p1.Layihə (ədəd); p2.SpatialReference = pcs.GeographicCoordinateSystem; p2.Layihə (ədəd); qaytarılması EuclidianDistance (p1, p2); }

Budur çıxış:

Öklidian məsafəsi 20 məsafəsiz bir məsafə 20 məsafəli yol ilə məsafə 20 böyük dairə məsafəsi 1965015.61318737

Bunu proyeksiya mühərriki dll (pe.dll) ilə sınamaq maraqlı olacağını düşünürəm. Heç vaxt Richie'nin kodunu işləsəm nəticə çıxaracağam.

Yeniləmə: Richies kodunu x86 üçün tərtib etmək üçün dəyişdirdikdən sonra işə saldım. Maraqlıdır ... mənə verdiyi böyük dairə məsafəsi 1960273.80162999 - yuxarıdakı azimutal bərabər məsafəli metoddan qayıdan əhəmiyyətli bir fərqdir.


ArcGIS 10-da, indi GetDistanceGeodezik (iki həndəsə arasındakı geodeziya məsafəsi), GetLengthsGeodezik (hər bir çox xəttin geodeziya uzunluqlarını qaytarmaq) və DensifyGeodezik (köşələri birləşdirən geodeziya xətləri boyunca nöqtələr düzəldərək bir çox xətti sıxlaşdırın, IPolyc4 istifadə edir: IGeometryServer2) : GeodesicDensify) metodları.

Digər cavablarda da qeyd edildiyi kimi, ArcGIS hələ də əsasən planar hesablamalardan istifadə edir.

Melita Kennedy


Digər cavablara bəzi şərhlər (birbaşa şərh vermək üçün hələ kifayət deyil!).

Esrinin azimutal bərabər məsafəli proyeksiyası elipsoidləri dəstəkləyir. GreatCircleDist kodu bir elipsoid / sferoid əsaslı GCS istifadə edən bir PCS yaradır, beləliklə mərkəz / mənşə nöqtəsindən məsafələr böyük dairə məsafələri deyil, geodezik məsafələr olacaqdır. Həm də sadələşdirilə bilər. İlk nöqtənin proqnozlaşdırılan koordinatlarını bilirik, çünki proyeksiyanın mərkəzi: 0,0. Beləliklə, yalnız 2-ci nöqtənin proqnozlaşdırılması lazımdır. Daha sonra sadələşdirilmiş EuclidianDistance funksiyasından istifadə edilə bilər.

Nəticələri pe.dll-in geodeziya funksiyalarına qarşı yoxladım və uyğun gəldi. Richie'nin tətbiqinin bir kürə istifadə etdiyinə bənzəyir, buna görə test tətbiqində böyük dairə məsafələrini / koordinatlarını qaytarır. Nəticələr uyğun gəlmir. Radius dəyərlərini tanımadım; Düşünürəm ki, onunla bu barədə danışmalıyam!


ArcGIS ilə bağlı hər hansı bir cavabın dəqiqliyi istənilən vaxt dəyişə bilər - bildiyimiz hər şey üçün xəbərdarlıq və sənədləşmədən növbəti xidmət paketində yeni prosedurlar tətbiq ediləcəkdir. Deyilənə görə, ESRI proqramı uzun müddətdir Öklid hesablamalarını istifadə etmişdir (məs., məsafələr üçün Pifaqor düsturu) proqnozlaşdırılan koordinatlar istifadə edildikdə. Çox vaxt təsvir etdiyiniz kimi hesablamalarda, proqramın proyeksiya məlumatlarına girişi belə olmur, bəs başqa nə etmək olar?

Sualınız özü bərabər məsafəli proyeksiya üçün Öklid məsafəsi hesablamalarının düzgün olduğunu göstərir. Heç bir şey həqiqətdən uzaq ola bilməz. Bir nöqtəli bərabər məsafəli proyeksiya üçün Öklid məsafəsi əsas nöqtəyə geodeziya məsafəsinə bərabər olmasına zəmanət verilir; iki nöqtəli bərabər məsafəli proyeksiya üçün hər iki əsas nöqtəyə Öklid məsafəsinin geodeziya məsafəsinə bərabər olmasına zəmanət verilir. Bu zəmanətlərin müqabilində, digər bütün cüt cütlər arasındakı metrik təhrif, seçim edə biləcəyi digər proqnozlarla müqayisədə ümumiyyətlə çox artır.


Dataframe R-də qatın məsafənin enlemini hesablayın

Sualımı soruşmaq üçün doğru yer olub-olmadığına əmin deyiləm (R və bu saytda yeniyəm). Sualım aşağıdakılardır: uzunluq və enlem nöqtələri arasındakı məsafəni necə hesablaya bilərəm?

Bu saytda problemimə cavab tapmaq üçün axtardım, ancaq cavablar yalnız 2 nöqtəni nəzərdən keçirdi (207000-dən çox satırdan ibarət bir məlumat dəstim var).

Aşağıdakı sütunları ehtiva edən 'adsb_relevant_columns_correct_timedifference' adlı bir məlumat çərçivəm var: Zəng, Hündürlük, Sürət, İstiqamət, Tarix_Vaxtı, Enlem, Boylam.

Hər ölçmə arasındakı məsafəni (metrlə) hesablamaq istərdim (hər sıra yeni bir ölçmədir) və bunu 'Məsafə' adlı yeni bir sütun olaraq əlavə etmək istəyirəm. Bu ilk məsafə hesablanması ikinci sıraya gəlməlidir, çünki sonrakı məqsədlər üçün. Buna görə, 'məsafə' sütununun ilk satırı sıfır və ya NA ola bilər, bunun əhəmiyyəti yoxdur.

Beləliklə, birinci ölçmə (Lat 70.6086 və Uzun 58.2959) ilə ikinci ölçü (Lat 72.1508 və 58.7894) arasındakı məsafəni bilmək istərdim. Sonra ikinci ilə üçüncü ölçü arasındakı məsafə. Sonra üçüncü və dördüncü arasında və s. 207000-dən çox ölçmə üçün.

Gözlənilən nəticə belə olmalıdır:

Distm funksiyasını R-də tapdım, bunun üçün tam verilənlər dəsti əvəzinə yalnız iki ölçmə üçün əl ilə edə bilərəm.

Aşağıdakı kodu sınadım

Lakin, aşağıdakı səhvi aldım

Mutate_impl-də səhv (.data, nöqtələr): Qiymətləndirmə xətası: Bir vektor üçün səhv uzunluq 2 olmalıdır.

Uzun izahım üçün üzr istəyirəm, amma ümid edirəm sualım aydın oldu. Zəhmət olmasa kimsə mənə bir neçə ölçmə arasındakı məsafəni necə hesablayacağımı və bunu məlumat cədvəlimə yeni bir sütun kimi əlavə edəcəyimi deyə bilərmi?


Parametrlər

Məkan avtokorrelyasiyasının hesablanacağı xüsusiyyət sinfi.

Mekansal avtokorrelyasiyanın qiymətləndirilməsində istifadə olunan ədədi sahə.

Alətin nəticələrin qrafik xülasəsini yaradacağını müəyyənləşdirir.

  • Yoxlandı - HTML faylı olaraq qrafik xülasə yaradılacaq.
  • Seçilməyib - Qrafik xülasə yaradılmayacaq. Bu, standartdır.

Xüsusiyyətlər arasındakı məkan münasibətlərinin necə təyin olunduğunu müəyyənləşdirir.

  • Tərs məsafə - Yaxınlıqdakı qonşu xüsusiyyətlər hədəf xüsusiyyətinin hesablamalarında uzaq xüsusiyyətlərdən daha çox təsir göstərir.
  • Tərs məsafə kvadrat şəklindədir - Bu tərs məsafəyə bərabərdir, ancaq yamac daha kəskindir, beləliklə təsir daha tez azalır və yalnız bir hədəf xüsusiyyətinin ən yaxın qonşuları bu xüsusiyyət üçün hesablamalarda əhəmiyyətli dərəcədə təsir göstərəcəkdir.
  • Sabit məsafə zolağı - Hər bir xüsusiyyət qonşu xüsusiyyətlər kontekstində təhlil olunur. Göstərilən kritik məsafənin daxilindəki qonşu xüsusiyyətlər (məsafə zolağı və ya eşik məsafəsi) bir ağırlıq alır və hədəf xüsusiyyəti üçün hesablamalara təsir göstərir. Kritik məsafədən kənar qonşu xüsusiyyətlər sıfır ağırlıq alır və hədəf xüsusiyyətlərinin hesablamalarına təsir göstərmirlər.
  • Laqeydlik zonası - Hədəf xüsusiyyətinin göstərilən kritik məsafədəki xüsusiyyətlər (məsafə zolağı və ya eşik məsafəsi) birinin ağırlığını alır və bu xüsusiyyət üçün hesablamaları təsir edir. Kritik məsafəni keçdikdən sonra çəkilər (və qonşu xüsusiyyətin hədəf xüsusiyyət hesablamalarına təsiri) məsafə ilə azalır.
  • Ən yaxın qonşular - Ən yaxın k xüsusiyyətlər təhlilə daxil edilmişdir. Analizə daxil ediləcək qonşuların sayı (k), Qonşuların Sayı parametri ilə təyin olunur.
  • Yalnız uyğunluq kənarları - Yalnız sərhəd və ya üst-üstə düşən qonşu çoxbucaqlı xüsusiyyətlər hədəf çoxbucaqlı xüsusiyyət üçün hesablamaları təsir edəcəkdir.
  • Uzlaşma kənarları künclər - Sərhəd paylaşan, qovşaq paylaşan və ya üst-üstə düşən çoxbucaqlı xüsusiyyətlər hədəf çoxbucaqlı xüsusiyyət üçün hesablamaları təsir edəcəkdir.
  • Fayldan məkan ağırlıqları əldə edin - Məkan münasibətləri müəyyən bir məkan ağırlığı faylı ilə müəyyən edilir. Mekansal çəkilər sənədinə gedən yol Weights Matrix File parametri ilə təyin olunur.

Hər bir xüsusiyyətdən qonşu xüsusiyyətlərə qədər məsafələrin necə hesablandığını təyin edir.

  • Öklid - İki nöqtə arasındakı düz xətt məsafəsi (qarğa uçduğu kimi) istifadə ediləcək.
  • Manhattan - Düz açıda oxlar boyunca ölçülən iki nöqtə arasındakı məsafədən (şəhər bloku) istifadə ediləcək. Bu, x və y koordinatları arasındakı (mütləq) fərqi cəmləşdirməklə hesablanır

Məkan ağırlıqlarının standartlaşdırılmasının tətbiq ediləcəyini müəyyənləşdirir. Nümunə dizaynı və ya tətbiq edilmiş birləşdirmə sxeminə görə xüsusiyyətlərinizin paylanması potensial olaraq qərəzli olduqda, sıra standartlaşdırması tövsiyə olunur.

  • Yoxdur - Məkan ağırlıqlarının standartlaşdırılması tətbiq edilmir.
  • Sıra - Mekansal çəkilər standartlaşdırılır, hər bir ağırlıq sıra cəminə bölünür (bütün qonşu xüsusiyyətlərin çəkilərinin cəmi). Bu, standartdır.

Müxtəlif tərs məsafə və sabit məsafə variantları üçün kəsmə məsafəsi. Bir hədəf xüsusiyyəti üçün göstərilən kəsik xaricindəki xüsusiyyətlər, bu xüsusiyyət üçün analizlərdə nəzərə alınmır. Bununla birlikdə, laqeydlik zonası üçün, verilən məsafədən kənar xüsusiyyətlərin təsiri məsafəyə görə azalır, məsafə hüdudlarında olanlar eyni dərəcədə nəzərə alınır. Girilən məsafə dəyəri çıxış koordinat sistemi ilə uyğun olmalıdır.

Məkan münasibətlərinin tərs məsafəli konseptləşdirmələri üçün 0 dəyəri bu parametr boş qaldıqda eşik məsafəsinin tətbiq olunmadığını, standart bir eşik dəyərinin hesablandığını və tətbiq olunduğunu göstərir. Bu varsayılan dəyər, hər xüsusiyyətin ən azı bir qonşusunun olmasını təmin edən Öklid məsafəsidir.

Bu parametr çoxbucaqlı bitişiklik (yalnız uyğunluq kənarları və ya uyğunluq kənarları künclər) və ya fayldan məkan ağırlıqları seçildikdə heç bir təsir göstərmir.

Xüsusiyyətlər arasındakı məkan və potensial əlaqələri təyin edən ağırlıqları ehtiva edən bir sənədin yolu.

Analizə daxil ediləcək qonşuların sayını göstərən tam ədəd.

Nəticə çıxarıldı

Nəticələrin qrafik xülasəsi olan bir HTML faylı.

Məkan avtokorrelyasiyasının hesablanacağı xüsusiyyət sinfi.

Mekansal avtokorrelyasiyanın qiymətləndirilməsində istifadə olunan ədədi sahə.

  • NO_REPORT - Qrafik xülasə yaradılmayacaq. Bu, standartdır.
  • GENERATE_REPORT - HTML faylı olaraq qrafik xülasə yaradılacaqdır.

Xüsusiyyətlər arasındakı məkan münasibətlərinin necə təyin olunduğunu müəyyənləşdirir.

  • INVERSE_DISTANCE - Yaxınlıqdakı qonşu xüsusiyyətlər hədəf xüsusiyyəti üçün hesablamalarda uzaq xüsusiyyətlərdən daha çox təsir göstərir.
  • INVERSE_DISTANCE_SQUARED - Bu, INVERSE_DISTANCE ilə eynidir, ancaq yamac daha kəskindir, beləliklə təsir daha tez azalır və yalnız bir hədəf xüsusiyyətinin ən yaxın qonşuları bu xüsusiyyət üçün hesablamalarda əhəmiyyətli dərəcədə təsir göstərəcəkdir.
  • FIXED_DISTANCE_BAND - Hər bir xüsusiyyət qonşu xüsusiyyətlər kontekstində təhlil olunur. Göstərilən kritik məsafədəki qonşu xüsusiyyətlər (Distance_Band_or_Threshold) bir ağırlıq alır və hədəf xüsusiyyəti üçün hesablamalara təsir göstərir. Kritik məsafədən kənar qonşu xüsusiyyətlər sıfır ağırlıq alır və hədəf xüsusiyyətlərinin hesablamalarına təsir göstərmirlər.
  • ZONE_OF_INDIFFERENCE - Bir hədəf xüsusiyyətinin göstərilən kritik məsafədəki xüsusiyyətlər (Distance_Band_or_Threshold) birinin ağırlığını alır və bu xüsusiyyət üçün hesablamaları təsir edir. Kritik məsafəni keçdikdən sonra çəkilər (və qonşu xüsusiyyətin hədəf xüsusiyyət hesablamalarına təsiri) məsafə ilə azalır.
  • K_NEAREST_NEIGHBORS - Ən yaxın k xüsusiyyətləri təhlilə daxil edilmişdir. Analizə daxil ediləcək qonşuların sayı (k) number_of_neighbors parametri ilə təyin olunur.
  • CONTIGUITY_EDGES_ONLY - Yalnız sərhəd və ya üst-üstə düşən qonşu çoxbucaqlı xüsusiyyətlər hədəf çoxbucaqlı xüsusiyyət üçün hesablamaları təsir edəcəkdir.
  • CONTIGUITY_EDGES_CORNERS - Sərhəd paylaşan, qovşaq paylaşan və ya üst-üstə düşən çoxbucaqlı xüsusiyyətlər hədəf çoxbucaqlı xüsusiyyət üçün hesablamaları təsir edəcəkdir.
  • GET_SPATIAL_WEIGHTS_FROM_FILE - Məkan münasibətləri müəyyən bir məkan ağırlığı faylı ilə müəyyən edilir. Mekansal çəkilər sənədinə gedən yol Weights_Matrix_File parametri ilə təyin edilmişdir.

Hər bir xüsusiyyətdən qonşu xüsusiyyətlərə qədər məsafələrin necə hesablandığını təyin edir.

  • EUCLIDEAN_DISTANCE - İki nöqtə arasındakı düz xətt məsafəsi (qarğa uçduğu kimi) istifadə ediləcək.
  • MANHATTAN_DISTANCE - Düz açıda oxlar boyunca ölçülən iki nöqtə arasındakı məsafə (şəhər bloku) istifadə ediləcək. Bu, x və y koordinatları arasındakı (mütləq) fərqi cəmləşdirməklə hesablanır

Məkan ağırlıqlarının standartlaşdırılmasının tətbiq ediləcəyini müəyyənləşdirir. Nümunə dizaynı və ya tətbiq edilmiş birləşdirmə sxeminə görə xüsusiyyətlərinizin paylanması potensial olaraq qərəzli olduqda, sıra standartlaşdırması tövsiyə olunur.

  • YOX - Məkan ağırlıqlarının standartlaşdırılması tətbiq edilmir.
  • SIRA - Mekansal çəkilər standartlaşdırılır, hər çəki sıra cərgəsinə bölünür (bütün qonşu xüsusiyyətlərin çəkilərinin cəmi). Bu, standartdır.

Müxtəlif tərs məsafə və sabit məsafə variantları üçün kəsmə məsafəsi. Bir hədəf xüsusiyyəti üçün göstərilən kəsik xaricindəki xüsusiyyətlər, bu xüsusiyyət üçün analizlərdə nəzərə alınmır. Bununla birlikdə, ZONE_OF_INDIFFERENCE üçün, verilən məsafədən kənar xüsusiyyətlərin təsiri məsafə ilə azalır, məsafə hüdudlarında olanlar eyni dərəcədə nəzərə alınır. Girilən məsafə dəyəri çıxış koordinat sistemi ilə uyğun olmalıdır.

Məkan münasibətlərinin tərs məsafəli konsepsiya üçün 0 dəyəri, bu parametr boş qaldıqda eşik məsafəsinin tətbiq olunmadığını, standart bir eşik dəyərinin hesablandığını və tətbiq olunduğunu göstərir. Bu varsayılan dəyər, hər xüsusiyyətin ən azı bir qonşusunun olmasını təmin edən Öklid məsafəsidir.

Bu parametr çoxbucaqlı uyğunluq (CONTIGUITY_EDGES_ONLY və ya CONTIGUITY_EDGES_CORNERS) və ya GET_SPATIAL_WEIGHTS_FROM_FILE məkan konsepsiya seçildikdə heç bir təsir göstərmir.

Xüsusiyyətlər arasındakı məkan və potensial əlaqələri təyin edən ağırlıqları ehtiva edən bir sənədin yolu.

Analizə daxil ediləcək qonşuların sayını göstərən tam ədəd.

Nəticə çıxarıldı

Nəticələrin qrafik xülasəsi olan bir HTML faylı.

Kod nümunəsi

Aşağıdakı Python pəncərə skriptində SpatialAutocorrelation alətinin necə istifadə ediləcəyi göstərilir.

Aşağıdakı müstəqil Python skriptində SpatialAutocorrelation alətinin necə istifadə ediləcəyi göstərilir.


ArcGIS Çalışma Zamanı: Fərqli məkan istinadlarında eyni xəritə nöqtələri arasındakı açıları hesablayarkən fərqli nəticələr əldə etmək

DotNet 10.2.6 üçün ArcGIS Runtime SDK ilə inkişaf edirəm.

Xəritədəki iki nöqtə arasındakı azimutu (şimaldan dərəcələr) hesablamağa çalışıram.

Xəritədə 3857 (WGS_1984_Web_Mercator_Auxiliary_Sphere) məkan referansı var və istifadəçi ekranı üçün 4326 (GCS_WGS_1984) məkan referansı istifadə edirəm.

İstifadəçi POV-un şortlaşdırılması üçün istifadəçiyə xəritədəki yerini və xəritədə hazırda baxdığı başqa bir nöqtəni vurmasına icazə verirəm. Sonra verilən iki nöqtə arasındakı azimut bucağını hesablamaq üçün sadə bir cəsarətdən istifadə edirəm.

Xəritə məkan istinadını (3857) istifadə edərkən məntiqi nəticələr əldə edirəm. İki nöqtəni istifadəçi məkan referansına (4326) proyektləşdirəndə və eyni hesablamanı etdikdə a

Azimut 45 dərəcə olduqda 5 dərəcə səhv (bütün kvadrantlar üçün eynidir, yəni 135, 225 və 315).

Nümunədəki nöqtələr arasındakı məsafə təxminən 500 m-dir. Bucaq hesablanması:


R-də bir xətt boyunca iki nöqtə arasındakı coğrafi məsafəni necə hesablamaq olar?

R-ə idxal etdiyim iki formalı sənədim var ki, sona çatım. Avtobus marşrutlarını ehtiva edən bir məkan xətləri məlumatları. Avtobus dayanacaqlarını ehtiva edən bir məkan nöqtəsi dataframe.

Verilən marşrutu dayanacaqları ilə təyin etmək belə görünür.

Nümunə Məlumat

Bu keçid iki marşrut nümunəsi ilə zip şəklində yükləmək üçün iki shapefile daxildir.

Məqsədim hər bir dayanacaq cütü arasındakı coğrafi məsafəni hesablamaqdır: dayanacaq 1-dən 2-yə, 2-dən 3-ə qədər və s. Əsas avtobus marşrutu boyunca.

Tapdığım metodların əksəriyyəti öklid məsafəsini və ya burada işləməyəcək 'qarğa uçur' hesablayır.

Bu yazı, marşrutun ümumi məsafəsini hesablamaq üçün əla bir iş görən bir calcLength funksiyasına sahib olan PBSmapping-dən bəhs edir, amma dayanma cütlüyü vəziyyətinə uyğun bir yol tapa bilmirəm və faktiki olaraq subset üçün bir yol tapa bilmirəm öz xüsusiyyətlərinə görə shapefile.

Riverdist paketi eyni dərəcədə maraqlıdır, amma tətbiq etmək üçün bir yol tapa bilmədiyim çaylar üçün olduqca optimallaşdırılmışdır.


ArcGIS, bərabər olmayan proyeksiya ilə iki nöqtə arasındakı məsafəni necə hesablayır? - Coğrafi İnformasiya Sistemləri

Qlobal Konumlandırma Sistemi (GPS), hər biri Yer kürəsindən 11000 dəniz mili uzağında öz orbitində olan 24 peykdən ibarət bir bürcdən və peyklərin normal işlədiyinə əmin olan beş yerüstü stansiyadan meydana gələn dünya miqyaslı bir radio-naviqasiya sistemidir. GPS peyklərinin hər biri Yerin ətrafında 12 saat çəkir.

GPS bu peykləri bir neçə metrə qədər mövqeləri dəqiq hesablamaq üçün istinad nöqtəsi kimi istifadə edir. Əslində, inkişaf etmiş GPS formaları ilə ölçüləri bir santimetrdən də yaxşı edə bilərsiniz! Hər bir peyk, dəqiq bir zaman mesajı ilə birləşdirilən siqnalları yayımlamaq üçün dəqiq bir saatla təchiz edilmişdir. Torpaq bölməsi işıq sürəti ilə hərəkət edən peyk siqnalını alır. Bu sürətdə belə, siqnal alıcıya çatmaq üçün ölçülə bilən bir müddət tələb edir. Siqnalın göndərildiyi vaxt və alınan vaxt arasındakı fərq, işığın sürətinə vurularaq, alıcıya peykə olan məsafəni hesablamaq imkanı verir. Tam funksionallığı göstərmək üçün bir qrafik.

GPS qəbulediciləri yalnız bir neçə inteqrasiya olunmuş dövrə miniatürləşdirilmişdir və beləliklə çox qənaətlidir. Və bu texnologiyanı praktik olaraq hər kəs üçün əlçatan edir. Bu günlərdə GPS avtomobillərə, gəmilərə, təyyarələrə, inşaat avadanlığına, film hazırlayan cihazlara, təsərrüfat maşınlarına, hətta dizüstü kompüterlərə yol tapır. Tezliklə GPS demək olar ki, telefon kimi təməl olacaqdır.

Bu necə işləyir?

GPS-in beş addımda necə işlədiyini təqdim edirik:

GPS-in əsasını peyklərdən "üçbucaq" təşkil edir.

"Üçbucaq" etmək üçün GPS qəbuledicisi radio siqnallarının hərəkət müddətindən istifadə edərək məsafəni ölçür.

Səyahət müddətini ölçmək üçün GPS-in çox dəqiq vaxta ehtiyacı var.

Uzaqlıqla yanaşı, peyklərin kosmosda harada olduğunu da dəqiq bilmək lazımdır.

Nəhayət, atmosferdə gəzərkən siqnal təcrübələrinin gecikməsini düzəltməlisiniz. GPS alıcısı ilə peyklər arasındakı saat fərqlərini də düzəltməlisiniz.

Üçbucaqlanma addımı buna bənzər bir şeydir. Əlinizdə etibarlı GPS qəbulediciniz var. GPS-in edə biləcəyi şey, bir sıra peyklərdən hər hansı birinə olan məsafəni dəqiq ölçməkdir. Satellite 1-dən cihazınız (GPS vahidi) peyklə olan məsafənizi 11000 mil məsafədə ölçür, yalnız özünüzü Yerdəki bir dairədə özünüzü Yerdən başlaya bilərsiniz Now from From Satellite 2-dən (məs. GPS vahidi peykdən olan məsafənizi 12000 mil məsafədə ölçür. İndi peyklərdə mərkəzləşdirilmiş kürələrin və müvafiq radiusların kəsişməsində olmağınız üçün lokallaşdırılmışsınız. Kürələrin kəsişməsi dairədir. Ardından məsafəni əldə edin üçüncü bir peykdən () bizə üç kürənin kəsişməsində yerləşməyimizə imkan verir və bu kəsişmə iki nöqtədir (kürə ilə kəsilmiş dairə ümumilikdə iki nöqtədir.) nöqtələrdən biri olduğunuz yerdir. Digər nöqtə nadir hallarda planetin səthindədir və buna görə bir az hesablaşmaqla bu ehtimalı aradan qaldıraraq yerini müəyyənləşdirə bilərsiniz.Bu geniş vuruşlar onun necə edildiyi deməkdir, lakin incə detallar var və bu məsafələrin hesablanmasında yatırlar.



Eyni vəziyyətin başqa bir görünüşü, peyklərdə mərkəzləşmiş kürələri göstərir. Aşağıdakı şəkildə yer kürəsi planet kürələrin kəsişməsinin ortasına doğru kiçik bir dairədir.

Dörd peykdən müşahidələrin dəqiq mövqe verə biləcəyini görmək üçün asan bir yol.

* Hər bir tədbirdə mövqeyiniz nəticə nöqtələrinin yerləşməsindədir.

İndi əksər GPS bölmələri altı peykdən ölçmələr axtarır və müəyyənləşdirir. Bu, yalnız ən kiçik kvadrat üsullarından istifadə edərək dəqiqliyi artıra bilər. Ən az kvadratlar haqqında əlavə məlumat üçün bir link.

Məsafə tam olaraq necə hesablanır?

Artıq bilirik ki, peyklərin yerləşdiyi yerlər və bizdən uzaqlaşsaq, mövqeyimizi dəqiq müəyyənləşdirə bilərik. Ancaq məsafənin necə hesablandığını bilməliyik. Əslində bir neçə yol var. Budur məsafəni hesablamaq üçün bəzi üsullar.

Bir "cetvel" ilə birbaşa ölçmə.

Üçbucaqlarda bucaqları ölçərək məsafələr çıxarıldı.

İşıq sürətindən istifadə edərək məsafənin ölçülməsi (işığın yayılma müddəti).

Yuxarıda qeyd edildiyi kimi GPS metodları işığın yayılma müddətinin birbaşa ölçülməsi ilə əlaqədardır. Məsafəni işıqla necə ölçmək olar? Bir neçə metod var. Birincisi, məsafə birbaşa bir nəbz göndərərək və iki nöqtə arasında necə keçməyin lazım olduğunu ölçməklə ölçülə bilər. Bu ən geniş yayılmış metod siqnalın və nəbzin ötürüldüyü ilə əks olunan siqnalın geri dönməsinin arasındakı vaxtı əks etdirməkdir. İki yönlü adlanan bu cür sistemlər, tək millimetr dəqiqlik tələb edən radar və peyk lazer səviyyəsində istifadə olunur. Saniyələrin dəqiqliyini təyin edə bilən bir saat tələb edirlər (3 picoseconds). Saat sabitliyinə ehtiyac var. Bu uzun müddət davam edən bir saat bir ildə 0,03 saniyə qazanacaq və ya itirəcəkdir. Bu cür avadanlıq bahadır, peyklər təxminən 1 milyon dollardır. Bu barədə daha sonra.

GPS-ə qayıdın

Bir siqnalın keçmə vaxtını və siqnalın yayılma sürətini bilsək, məsafəni və ya məsafəni təyin edə bilərik. GPS qəbuledicisi saatı peyk saatı ilə mükəmməl bir şəkildə sinxronlaşdırılmadığından, aralıklar səhvdir. Bu səbəbdən bunlara pseudoranges deyilir. Məsafələri dəqiq ölçmək üçün saatlar arasındakı vaxt əvəzliyini təyin etməliyik.

Dörd peykdən məsafələrimiz olduğunu və peyklərin dəqiq mövqelərini bildiyimizi düşünsək, aşağıdakı sistem tənliklərini həll etməliyik.

işığın sürəti harada və qəbuledici saat ofset vaxtı. Alıcının saat ofseti GPS vaxtı ilə daxili alıcı vaxtı arasındakı fərqdir. Aydındır ki, bütün bunların əsas hissəsi yalnız bir saatlıq ofset vaxtının olmasıdır. Bu, bütün peyklərin mükəmməl bir şəkildə sinxronizasiya edilmiş saatlara sahib olması deməkdir və bu nəzarət saytlarının vəzifələrindən yalnız biridir. Yuxarıdakı bilinməyənlər və. Bir daha təkrarlayaq: GPS alıcısının və peykin saatları mükəmməl bir şəkildə sinxronlaşdırılsaydı, zaman ofset sıfır olardı.

GPS qəbuledicisi yalnız incə bir elektron mexanizm deyil, həm də çoxlu riyaziyyat edə bilər. Vay və belə kiçik bir paketə qoydular!

Hələ daha çox riyaziyyat

Bu sistem necə həll olunur? Çox dəyişkən və xətti deyil. Məhz bu cür sistemlər üçün hazırlanmış çoxsaylı metodlar mövcuddur. Ən başlıcası, məşhur Newton metodudur. Bir dəyişənin funksiyaları üçün Newton metodunun əsaslarına bir keçid verdik. Bir sözlə. Tənliyi həll etmək üçün ilkin bir təxmin edin, hesablayın. Sonra ifadəni əvəz edin və hesablayın və bu şəkildə davam edin. Yəni hesablayırıq

və dəyəri kifayət qədər sıfıra yaxınlaşana qədər bunu etməyə davam edin.

Ümumi çox dəyişkən halda eyni tənlik işləyir, lakin biraz fərqli bir görkəmə malikdir. Qoyun

həll ediləcək sistem olsun., burada və sütun vektorlarıdır və hər bir funksiya dəyişənlərin hər birinin funksiyasıdır. Jacobian matrisini təyin edin

Bəzi başlanğıc vektorudursa, onda Nyuton təkrarlamalardır

in tərs matrisi haradadır

Newton metodu üçün yaxınlaşma problemləri əfsanədir. Ancaq yaxşı bir başlanğıc dəyərimiz varsa, Newton metodu çox vaxt sürətlə yaxınlaşır. Bu barədə daha çox məlumatı bir ölçülü müalicəmizdə görə bilərsiniz.

Mövqe yeri səhvinin mənbələri

GPS ölçməsində bir çox səhv mənbəyi var. Bunlar arasında atmosfer, ionosfer, peyk orbiti səhvləri, qəbuledici səs-küy, çox yollu qeyri-müəyyənliklər və peyk saatı səhvləri var.

Dəqiq məsafələr əldə etmək üçün bir sıra digər düzəlişlər və fəndlər tələb olunur. Bəzən GPS bölmələri ikili tezlik ötürülməsini istifadə edir, çünki bütün müşahidələrə xas olan ionosfer səhvləri iki fərqli tezlikdə aparılan peyk müşahidələri ilə iki tezlikdəki müşahidələr birləşdirilərək modelləşdirilə bilər və əhəmiyyətli dərəcədə azaldıla bilər.

Son vaxtlara qədər başqa bir səhv mənbəyi qəsdən yaradıldı. Lakin 2000-ci ilin avqust ayından etibarən siqnalın qəsdən deqradasiyası olan Siqnalın Seçmə Mövcudluğu söndürüldü. Buna görə yatay mövqenin dəqiqliyi 5-7 metr aralığındadır.

Optik sistemlər

Optik sistemlərdə düz bir reflektor, işığın siqnalının dəyişən güzgüə tam dik olmasına ehtiyac olduğu üçün işləmir. Beləliklə, aşağıda göstərildiyi kimi ən çox istifadə olunan bir künc küpü reflektorudur.

Məsafəni ölçmək üçün alternativ bir metod, gələn və gedən davamlı dalğa arasındakı faz fərqini ölçməkdir. Belə bir cihaza interferometr deyilir.

Bunun arxasında riyaziyyat elementar trigonometriyadır. Gedən siqnalın verildiyini düşünək

və eyni zamanda gecikmiş siqnal. Gələn siqnal eyni tezliklidir, lakin fazadır. Beləliklə siqnal alırıq

Siqnal geri qaytarıldıqda, çıxan siqnal ilə vurulur (döyülür)

Trig şəxsiyyətlərini tətbiq edirik

əldə etmək

Şərtlər və orijinal siqnalın iki dəfə tezliyində salınır. Uzun müddətə nisbətən məhsul üzərində orta hesabla sıfır əldə edirik. Qalan şərtlər fazın sinusu və kosinusudur.

İndi məsafəmiz varmı? Tam olaraq deyil. Əgər məsafə 1 dalğa boyundan azdırsa, onda cavab misilsizdir. Məsafə 1 dalğa uzunluğundan çoxdursa, tam dövrlərin sayına ehtiyacımız var. Tədqiqat alətləri bundan istifadə edir və çox tezliklərdə faz fərqi ölçmələri aparır, sonra məsafəni təyin etmək üçün yaranan tənliklər sistemini həll edir.

İstinadlar

GPS texnologiyası: http://www.trimble.com/gps/ http://www-gpsg.mit.edu/

GPS əsasları http://www-gpsg.mit.edu/

fGPS Land Naviqasiya: Michael Ferguson, Randy Kalisek, Leah Tucker, Glassford Publishing ISBN: 0965220257, 1997 tərəfindən NAVSTAR Uydu Sisteminin Ölkə istifadəçiləri üçün tam bir kitabçadır.

Hər kəs üçün GPS: Qlobal Konumlandırma Sisteminin sizin üçün necə işləyə biləcəyi L. Casey Larijani, Amer Interface Corp ISBN: 0965966755, 1998

Qlobal Pozisiya Sistemi və CİS: Michael Kennedy Bk & ampCD ROM nəşri Ann Arbor Pr Inc tərəfindən təqdimat ISBN: 1575040174, 1996

GPS Təlimatı: Əsaslar & amp; Proqramlar, Steve Dye, Frank Baylin, Baylin / Gale Productions ISBN: 0917893298, 1997

GPS Ani Naviqasiya: Kevin Monahan, Don Douglass, Fine Edge Productions tərəfindən əsaslardan inkişaf etmiş texnikalara praktik bir rəhbər ISBN: 0938665480, 1998

Məşqlər

Künc kubu reflektorunun künc radians olduqda radianları işıq əks etdirdiyini göstərin. Künc bucağı radians olduqda əks bucağı nə qədərdir?

Fərz edək ki, tam iki fərqli tezlik əks olunmasına aid faz açısına sahibsiniz. Bu, GPS ilə peyk arasındakı məsafəni daha yaxşı əldə etməyə necə kömək edə bilər?

Sistemi niyə həll etdiyini izah edin

üç peykin mövqeləri və məsafələri nəzərə alınaraq bənzərsiz, dəqiq GPS qəbuledici mövqeyi vermir. Axı üç tənlik və üç bilinməyən var. Bu vəziyyətdə vaxt əvəzi olmadığını unutmayın.

Yuxarıdakı sistemi həll etməyin yollarından biri hər iki tərəfi kvadratlaşdırmaq və cüt tənliklərin fərqlərini hesablamaq və ortaya çıxan sistemi həll etməkdir. Dörd peyk məsafəsi ilə sistemi üç bilinməyən və üçün xətti sistemə çevirə biləcəyimizi göstərin

Xətti sistem nədir?


Tampon məsafəsinin təsviri

Tampon məsafəsi parametri sabit bir dəyər və ya ədədi dəyərlər olan bir sahə kimi daxil edilə bilər.

Nümunə 1: Sabit məsafə

Aşağıda, 20 məsafədən, FLAT-ın son növündən, FULL-un bir yan növündən və BÜTÜNün həll olunma növündən istifadə edən bir xətt xüsusiyyət sinifinin tamponu göstərilir.

Tampon məsafəsi sabit olduğu üçün bütün xüsusiyyətlər eyni eni ilə tamponlanır.

Nümunə 2: Sahədən məsafə

Bu nümunə məsafə üçün 10, 20 və 30 dəyərləri olan ədədi bir sahə istifadə edən bir xətt xüsusiyyət sinifinin tamponunu, son FLAT tipini, FULL-un bir yan növünü və BÜTÜNün bir həll növünü göstərir.

Because the buffer distances are dependent on the field values, various buffer widths can be applied in the same operation.


How does ArcGIS compute the distance between two points with a non-equidistant projection? - Geographic Information Systems

trajectory_distance is a Python module for computing distances between 2D-trajectory objects. It is implemented in Cython.

9 distances between trajectories are available in the trajectory_distance paket.

  1. SSPD (Symmetric Segment-Path Distance) [1]
  2. OWD (One-Way Distance) [2]
  3. Hausdorff [3]
  4. Frechet [4]
  5. Discret Frechet [5]
  6. DTW (Dynamic Time Warping) [6]
  7. LCSS (Longuest Common Subsequence) [7]
  8. ERP (Edit distance with Real Penalty) [8]
  9. EDR (Edit Distance on Real sequence) [9]

All distances but Discret FrechetDiscret Frechet are are available with Euclidean və ya Spherical option :

Euclidean is based on Euclidean distance between 2D-coordinates.

Spherical is based on Haversine distance between 2D-coordinates.

Grid representation are used to compute the OWD distance.

Python implementation is also available in this depository but are not used within traj_dist.distance module.

trajectory_distance is tested to work under Python 3.6 and the following dependencies:

  • NumPy >= 1.16.2
  • Cython >= 0.29.6
  • shapely >= 1.6.4.post2
  • geohash2 == 1.1
  • pandas >= 0.24.2
  • scipy >= 0.20.3
  • A working C/C++ compiler.

This package can be build using distutils .

Move to the package directory and run :

to build Cython files. Then run:

to install the package into your environment.

You only need to import the distance module.

All distances are in this module. There are also two extra functions 'cdist', and 'pdist' to compute pairwise distances between all trajectories in a list or two lists.

Trajectory should be represented as nx2 numpy array. See traj_dist/example.py file for a small working exemple.

Some distance requires extra-parameters. See the help function for more information about how to use each distance.


How does ArcGIS compute the distance between two points with a non-equidistant projection? - Geographic Information Systems

This function computes and returns the distance matrix computed by using the specified distance measure to compute the distances between the rows of a data matrix.

Usage

Arguments

a numeric matrix, data frame or "dist" object.

the distance measure to be used. This must be one of "euclidean" , "maximum" , "manhattan" , "canberra" , "binary" or "minkowski" . Any unambiguous substring can be given.

logical value indicating whether the diagonal of the distance matrix should be printed by print.dist .

logical value indicating whether the upper triangle of the distance matrix should be printed by print.dist .

The power of the Minkowski distance.

An object with distance information to be converted to a "dist" object. For the default method, a "dist" object, or a matrix (of distances) or an object which can be coerced to such a matrix using as.matrix() . (Only the lower triangle of the matrix is used, the rest is ignored).

passed to format inside of print() .

further arguments, passed to other methods.

Details

Available distance measures are (written for two vectors xy):

Usual distance between the two vectors (2 norm aka L_2), sqrt(sum((x_i - y_i)^2)).

Maximum distance between two components of xy (supremum norm)

Absolute distance between the two vectors (1 norm aka L_1).

sum(|x_i - y_i| / (|x_i| + |y_i|)). Terms with zero numerator and denominator are omitted from the sum and treated as if the values were missing.

This is intended for non-negative values (e.g., counts), in which case the denominator can be written in various equivalent ways Originally, R used x_i + y_i, then from 1998 to 2017, |x_i + y_i|, and then the correct |x_i| + |y_i|.

(aka asymmetric binary): The vectors are regarded as binary bits, so non-zero elements are &lsquoon&rsquo and zero elements are &lsquooff&rsquo. The distance is the nisbət of bits in which only one is on amongst those in which at least one is on.

The səh norm, the səhth root of the sum of the səhth powers of the differences of the components.

Missing values are allowed, and are excluded from all computations involving the rows within which they occur. Further, when Inf values are involved, all pairs of values are excluded when their contribution to the distance gave NaN or NA . If some columns are excluded in calculating a Euclidean, Manhattan, Canberra or Minkowski distance, the sum is scaled up proportionally to the number of columns used. If all pairs are excluded when calculating a particular distance, the value is NA .

The "dist" method of as.matrix() and as.dist() can be used for conversion between objects of class "dist" and conventional distance matrices.

as.dist() is a generic function. Its default method handles objects inheriting from class "dist" , or coercible to matrices using as.matrix() . Support for classes representing distances (also known as dissimilarities) can be added by providing an as.matrix() or, more directly, an as.dist method for such a class.

Value

dist returns an object of class "dist" .

The lower triangle of the distance matrix stored by columns in a vector, say do . If n is the number of observations, i.e., n <- attr(do, "Size") , then for i < j &le n, the dissimilarity between (row) i and j is do[n*(i-1) - i*(i-1)/2 + j-i] . The length of the vector is n*(n-1)/2, i.e., of order n^2.

The object has the following attributes (besides "class" equal to "dist" ):

integer, the number of observations in the dataset.

optionally, contains the labels, if any, of the observations of the dataset.

logicals corresponding to the arguments diag and upper above, specifying how the object should be printed.

optionally, the call used to create the object.

optionally, the distance method used resulting from dist() , the ( match.arg() ed) method argument.

İstinadlar

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

Mardia, K. V., Kent, J. T. and Bibby, J. M. (1979) Multivariate Analysis. Academic Press.

Borg, I. and Groenen, P. (1997) Modern Multidimensional Scaling. Theory and Applications. Springer.

See Also

daisy in the cluster package with more possibilities in the case of mixed (continuous / categorical) variables. hclust .


Entropic regularization and the Sinkhorn iterations

Biz təriflə başlayırıq entropy of a matrix:

As in the notion of entropy of a distribution in information theory, a matrix with a low entropy will be sparser, with most of its non-zero values concentrated in a few points. Conversely, a matrix with high entropy will be smoother, with the maximum entropy achieved with a uniform distribution of values across its elements. With a regularization coefficient $varepsilon​$, we can include this in the optimal transport problem to encourage smoother coupling matrices:

By making $varepsilon$ higher, the resulting coupling matrix will be smoother, and as $varepsilon$ goes to zero it will be sparser, with the solution being close to that of the original optimal transport problem.

By introducing this entropic regularization, the optimization problem is made convex and can be solved iteratively using the Sinkhorn iterations 2. The solution can be written in the form $mathbf

= ext(mathbf)mathbf ext(mathbf)$, and the iterations alternate between updating $mathbf$ and $mathbf$:

where $mathbf$ is a kernel matrix calculated with $mathbf$. Since these iterations are solving a regularized version of the original problem, the corresponding Wasserstein distance that results is sometimes called the Sinkhorn distance. The iterations form a sequence of linear operations, so for deep learning models it is straightforward to backpropagate through these iterations.


Find our Post Graduate Program in AI and Machine Learning Online Bootcamp in top cities:

AdTarixPlace
Post Graduate Program in AI and Machine Learning Cohort starts on 9th Jul 2021,
Weekend batch
Your CityView Details
Post Graduate Program in AI and Machine Learning Cohort starts on 12th Jul 2021,
Weekend batch
Your CityView Details
Post Graduate Program in AI and Machine Learning Cohort starts on 23rd Jul 2021,
Weekend batch
Your CityView Details

Videoya baxın: 1-39. nöqtənin koordinatları iki nöqtə arasındakı məsafə