Daha çox

Lat / Lon nöqtəsini başqa Lat / Lon nöqtə bucağından hesablamaq


Bir alqoritm etməliyəm:

:

Mənim bir fikrim var O radius dairəsinin mərkəzi r, bu dairədə iki nöqtə var P1P2.

  • Mən nöqtənin enini və uzunluğunu bilirəm O dərəcə ilə
  • Mən radiusu bilirəm r metrlə
  • Enini və boylamını bilirəm P1 dərəcə ilə

Nöqtənin enini və uzunluğunu bilmək istəyirəm P2 eyni dairədə bucağı bilirəm a xətt arasında dərəcə ilə OP1OP2.

Bu problemi necə həll etmək olar?

GPS nöqtələri O,P1P2 Fransanın cənubunda yerləşir.


P1 nöqtəsi əhəmiyyətsizdir, əgər bir dairə olduğu təqdirdə r həmişə eyni olacaq, bu, rulman teta və mənşə nöqtəsi ilə birlikdə vacibdir. Tetanı tapmaq üçün sadəcə təqdim etdiyiniz bucaqdan yol açın a.

  1. Səthinizin bir olduğunu düşünmək a kürə:

    δ = məsafə r / Yer radiusu (hər ikisi eyni vahiddə) lat_P2 = asin (sin lat_O ⋅ cos δ + cos lat_O ⋅ sin δ ⋅ cos θ) lon_P2 = lon_O + atan ((sin θ ⋅ sin δ ⋅ cos lat_O) / (cos δ - sin lat_O ⋅ sin lat_P2))

    Yuxarıdakı düsturda lat, lon və teta radian şəklində verilməlidir. Teta, sizin nümunənizdə olduğu kimi, şimaldan saat yönündədir. Koordinatlar mənfi olarsa mütləq dəyərlərdən istifadə edin.

    Bunu axtarmaq istəyirsinizsə, bu Haversine tənliyinin uyğunlaşmasıdır. Seçdiyiniz Yer radiusu qədər dəqiq olacaq.

  2. Səthinizi bir elipsoid:

    Tamam, bu daha mürəkkəbdir, buna görə səni Vincentinin formuluna bağlayacağam. P2-nizi tapmaq üçün Direct Formula-dan istifadə etmək istəyirsiniz. Eyni tədbirlər burada mənfi koordinatlarla əlaqəlidir.


GeoTools-da bu cür hesablama üçün GeodeticCalculator istifadə edə bilərsiniz:

DefaultGeographicCRS crs = DefaultGeographicCRS.WGS84; GeodeticCalculator calc = yeni GeodeticCalculator (crs); GeometryFactory geomFactory = yeni GeometryFactory (); Nöqtə nöqtəsi = geomFactory.createPoint (yeni Koordinat (0.0, 50.0)); calc.setStartingGeographicPoint (point.getX (), point.getY ()); // dərəcələrdə azimut -180 - 180 ikiqat azimut = 90.0; // metrlərlə məsafə ikiqat məsafə = 5000; calc.setDirection (azimut, məsafə); Point2D p = calc.getDestinationGeographicPoint (); System.out.println (p);

Anten və # 39s koordinatları, açıları və peyk hündürlüyü verilən peyk koordinatlarını (lat, uzun) necə hesablamaq olar

Torpaq stansiyası (anten) koordinatları (lat, uzun) yüksəklik (El) və Azimuth (Az) verildikdə, hündürlüyü məlum olan peyk koordinatlarını (lat, uzun) necə hesablamaq olar?

Sadələşdirmə məqsədilə Yer kürəsi kürə kimi qəbul edilə bilər.

Xülasə: Göy sferasında proqnozlaşdırılan peykin koordinatlarını hesablamağa çalışıram. Yəni üfüqi koordinat sistemi dəyərlərindən və müşahidə mövqeyindən cari yer zolağı mövqeyidir.

Problem bu iki rəqəmdə göstərilə bilər:


GNSS-dən alınan məlumatların uzununa / en / hündürlük olaraq karla içərisində x y z koordinatlarına necə çevriləcəyini bilmək istərdim? # 2737

GNSS-dən alınan məlumatları karla içərisində XYZ koordinatlarına necə çevirəcəyimi bilmək istərdim? bunun mümkün yolu varmı?

Mətn uğurla yeniləndi, lakin bu səhvlərlə qarşılaşdı:

Hazırda tapşırığı bir problemə çevirə bilmirik. Zəhmət olmasa bir daha cəhd edin.

Məsələ uğurla yaradıldı, lakin şərhi hazırda yeniləyə bilmirik.

Glopezdiest 16 Noyabr 2020 şərh etdi

Salam @Gilaine. Bu, mütləq edilə bilər, amma düzgün xatırlasam, bunu əvvəlcədən təyin edilmiş bir funksiya yoxdur.

Bir şəhərin OpenDRIVE sənədinə (Unreal / CarlaUE47Content / Carla / Maps / OpenDrive) daxil olsanız, geoReference-ı görə bilərsiniz (Bu .xodr sənədinin 3-cü və ya 4-cü sətri kimidir).

Oradan bəzi həndəsələrə ehtiyac var, ancaq xəritənin düz olduğunu düşünürsənsə, coğrafi koordinatlar x və y-ə uyğun gəlir (açıq-aydın bir miqyasla) və hündürlük yalnız z dəyəridir.

Gilaine 27.04.2020 & # 8226 şərh etdi

Salam @glopezdiest gec cavabım üçün təəssüf edirəm ki, indi yoxlayıram, uzun və gec üçün istinad tapdım
+ lat_0 = 4.9000000000000000e + 1 + lon_0 = 8.0000000000000000e + 0 və mən dəyər bir az enlem = 49.064139 ətrafında alıram
boylam = 8.202199
bunu necə edəcəyimi daha dəqiqləşdirə bilərsinizmi? Fərqli sensorlardan alınan məlumatları birləşdirməyə çalışıram, buna görə x y və z-ə çevrilmək istədim.
Həm də bəhs etdiyiniz tərəzi sabitdir, yoxsa yox?

Glopezdiest 28.04.2020 tarixində şərh etdi

Bəli, miqyas sabitdir. Bununla demək istədiyim 1 dərəcə dəyişikliyidir enlik hər zaman eyni dəyişikliyə uyğun olacaq y.

Əsasən yerin ölçüsündə bir sferada dərəcələrdə müəyyən bir dəyişiklik yaşadığınızı bilirsiniz. Daha sonra bu dərəcə dəyişməsinin yer üzündəki məsafə baxımından nə demək olduğunu hesablamalısınız.

Riyazi olaraq, belə bir şey olardı (dəqiq nəticə deyil, bəzi terminlər yoxdur):

y = - (lat-49) * earth_radius (burada mənfi işarəni vurğulamaq kifayətdir)
x = (lon-8) * torpaq_radiusu

Sizə daha dəqiq formulu verməyə kömək etmək istərdim, amma qoyduğum yeri tapa bilmirəm, üzr istəyirəm.

Gilaine 29 Noyabr 2020 & # 8226 şərh etdi

Yardımınızı çox qiymətləndirirəm.

Glopezdiest 29 Noyabr 2020 şərh etdi

Elə bir şey. Simulyasiyadakı məqamları boyayan carla.DebugHelper istifadə etməyi məsləhət görürəm, beləliklə onların düzgün olub olmadığını əyani olaraq yoxlaya bilərsiniz.

Gilaine 11 iyun 2020 şərh etdi

Bir çox tənliyi sınadım, amma yenə də tapa bilmədim @glopezdiest

GabiShahmayster 15 iyun 2020 şərh etdi

Bir çox tənliyi sınadım, amma yenə də tapa bilmədim @glopezdiest

Salam GIlaine,
Carla'nın yerləri, şərqdən cənuba doğru hizalanmış, sol əlli bir Kartezyen çərçivəsi olan qeyri-real mühərrik istinad sətrində müəyyənləşdirilir (GeoLocation və müəyyən bir mövqenin yer dəyərlərini müşahidə edərək asanlıqla təsdiq edə bilərsiniz.

Y-koordinat işarəsini dəyişdirərək soldan şərqdən cənuba yuxarı yeri sağdan şərqdən şimaldan yuxarıya çevirə bilərsiniz. https://github.com/carla-simulator/ros-bridge/blob/master/carla_ros_bridge/src/carla_ros_bridge/transforms.py#L59.

Daha sonra OpenDrive xəritəsinin coğrafi mənşəyində yerləşən ENU çərçivəsinin mənşəyi ilə (0,0,0) şərqdən şimala (ENU) çərçivədə bir koordinat əldə edəcəksiniz.
Sonra bu ENU koordinatlarını coğrafi koordinatlara çevirməlisiniz.

Bildiyim qədəri ilə, ENU koordinatlarını yer mərkəzli-torpaqla sabitləşdirilmiş (ECEF) koordinatlarına çevirmək və sonra ECEF koordinatlarını coğrafi koordinatlara çevirmək ciddi bir yol olacaq.

Gilaine 16 iyun 2020 & # 8226 şərh etdi

Bənzər bir şey yazdım, amma yenə də bir şeyin səhv olduğunu düşünürəm:

Opendrivedakı coğrafi istinad:

lat_0 = 4.9000000000000000e + 1
lon_0 = - 8.0000000000000000e + 0

enlik = 48.791695
Boylam = - 8.413367
hündürlük = 1.376821

lat = np.deg2rad (enlem)
lon = np.deg2rad (uzunluq)
alt = np.deg2rad (hündürlük)

x = - math.sin (lon_0) * lat - math.cos (lon_0) * math.sin (lat_0) * lon + math.cos (lon_0) * math.cos (lat_0) * alt

y = math.cos (lon_0) * lat - math.sin (lon_0) * math.sin (lat_0) * lon + math.sin (lon_0) * math.cos (lat_0) * alt

z = math.cos (lat_0) * lon + math.sin (lat_0) * alt

GabiShahmayster 16 iyun 2020 & # 8226 şərh etdi

@GabiShahmayster
Salam Qabi,

Bənzər bir şey yazdım, amma yenə də bir şeyin səhv olduğunu düşünürəm:

Opendrivedakı coğrafi istinad:

lat_0 = 4.9000000000000000e + 1
lon_0 = 8.0000000000000000e + 0

Oxu:

enlik = 48.791695
boylam = 8.413367
hündürlük = 1.376821

lat = np.deg2rad (enlem)
lon = np.deg2rad (uzunluq)
alt = np.deg2rad (hündürlük)

x = - math.sin (lon_0) * lat - math.cos (lon_0) * math.sin (lat_0) * lon + math.cos (lon_0) * math.cos (lat_0) * alt

y = - (math.cos (lon_0) * lat - math.sin (lon_0) * math.sin (lat_0) * lon + math.sin (lon_0) * math.cos (lat_0) * alt)

z = math.cos (lat_0) * lon + math.sin (lat_0) * alt

Əvvəla, üzr istəyirəm, ehtimal ki, orijinal sualınızı səhv başa düşdüm və əksinə deyil, coğrafi koordinatların çevrilməsinə bir karla yeri ilə bağlı ətraflı məlumat verdim.

Sadə bir şeylə başlayaq.
Nümunənizdəki rəqəmlər (enlem = 48.791695, Boylam = 8.413367) mənşəyindən çox uzaqdır (təxminən 37 [km], https://www.geodatasource.com/distance-calculator-a görə. Etibarlı bir karla yeri, probleminiz üçün?

Gilaine 16 iyun 2020 & # 8226 şərh etdi

Hey Qabi,
Carla'da GNSS-dən alınan dəyərlər bunun ətrafında Town 3-dədir.
enlik = 48.998151
boylam = 8.000191
mənzil = 1.225561

Xəritədə təsadüfi bir nöqtədən başlayıram və bunlar GNSS-dən aldığım məlumatlardır.
konvertasiya etdikdə mənə delta dəyərləri kimi verir, yekunlaşdırmağa çalışdım, amma bunun doğru olub-olmadığına əmin deyiləm, bu halda əsas həqiqət və ölçmə arasındakı fərq böyükdür.
səhv bir şey edirəm?

GabiShahmayster 16 iyun 2020 şərh etdi

Hey Qabi,
Carla'da GNSS-dən alınan dəyərlər bunun ətrafında Town 3-dədir.
enlik = 48.998151
boylam = 8.000191
mənzil = 1.225561

Xəritədə təsadüfi bir nöqtədən başlayıram və bunlar GNSS-dən aldığım məlumatlardır.
konvertasiya etdikdə mənə delta dəyərləri kimi verir, yekunlaşdırmağa çalışdım, amma bunun doğru olub-olmadığına əmin deyiləm, bu halda əsas həqiqət və ölçmə arasındakı fərq böyükdür.
səhv bir şey edirəm?

Yardımınızı həqiqətən çox qiymətləndirirəm.

Kifayət qədər yaxın (axtardığınız dəqiqliyə və OpenDrive-ın geodeziya hesablamalarına bağlıdır) təxmini enlem / boy fərqlərini hesablamaq, xəritənin coğrafi mənşəyini götürmək, yerin əyrilik radiuslarından istifadə edərək metrlərə çevirmək və Carla'nın yerini (qeyri-real) -motor çərçivəsi) x = şərq, y = cənub, z = yuxarıdır.
Sizin nümunəniz üçün belə olmalıdır:
`
map = api.map #map dünya.get_map () tərəfindən əldə edilmiş
dərəcəRadians = 1 / 180.0 * np.pi
geolocation_of_map_origin: GeoLocation = map.transform_to_geolocation (Yer (0,0,0))
çap ("Xəritə mənşəli GeoLocation: <0: s> n" .format (str (geolocation_of_map_origin)))

Xəritənin mənşəli GeoLocation: GeoLocation (en = 49.000000, Boylam = 8.000000, hündürlük = 0.000000)
Test nöqtəsinin həqiqi GeoLocation: GeoLocation (enlem = 48.998151, en = boyun = 8.000191, hündürlük = 1.225561)
Şimal / Cənubi yer kürəsi radiusu = 6371848.628169 [m] | Şərq / Qərb yer əyrilik radiusu = 4192434.938469 [m]
delta şimal = -205.626806 | delta East = 13.975813 | delta Alt = 1.225561
Test nöqtəsinin təxmin edilən Carla Yeri (real olmayan mühərrik çərçivəsi): Yer (x = 13.975813, y = 205.626801, z = 1.225561)
Təxmini Carla Yerinin GeoLocation (doğrulama üçün): GeoLocation (en = 48.998153, Boylam = 8.000191, hündürlük = 1.225561)


Coğrafi Məkan Ayarlanması Haqqında

Müəllif:

Coğrafi yerləşmə məlumatlarını bir rəsm sənədinə əlavə etmək, rəsmdəki nöqtələri Yer səthindəki coğrafi yerlərə uyğunlaşdırır.

Bir rəsm sənədindəki coğrafi yer məlumatları coğrafi marker olaraq bilinən bir varlığın ətrafında qurulur. Coğrafi marker, yer səthində məlum enlem və boylam yerlərinə uyğun bir model məkanında bir istinad nöqtəsini göstərir. Proqram eyni zamanda şimal istiqamətini də bu yerdə tutur. Bu məlumatlara əsasən proqram rəsm sənədindəki bütün digər nöqtələrin coğrafi koordinatlarını əldə edə bilər.

Tipik olaraq coğrafi yer koordinatları (məsələn, en, en və boy) və koordinatları təyin etmək üçün istifadə olunan koordinat sistemi (məsələn, WGS 84) ilə müəyyən edilir. Üstəlik bir yerin koordinatları bir CBS koordinat sistemindən digərinə dəyişə bilər. Beləliklə, coğrafi markerin coğrafi yerini təyin etdiyiniz zaman sistem CİS koordinat sisteminin detallarını da əks etdirir.

Tipik olaraq CAD təsvirləri vahiddir və 1: 1 miqyasda çəkilir. Rəsm vahidinin təmsil etdiyi xətti vahidi seçməkdə sərbəstsiniz. Digər tərəfdən CİS sistemləri koordinat sisteminin xətti vahidlərinə qərar verməsinə imkan verir. CAD koordinatlarını CBS koordinatlarına uyğunlaşdırmaq üçün sistemin CAD rəsm vahidlərini xətti vahidlər baxımından şərh etməsi lazımdır. Sistem, INSUNITS sistem dəyişkənliyində saxlanılan ayarı bir rəsm vahidinin standart xətti ölçüsü kimi istifadə edir. Bununla yanaşı, coğrafi yer məlumatlarını daxil etdiyiniz zaman fərqli bir xətti ölçmə təyin etmək seçiminiz var (rəsm vahidi üçün).

Bir rəsmə coğrafi marker əlavə etdikdən sonra bunları edə bilərsiniz:

  • Proqramı günəş və göy simulyasiyasını həyata keçirdiyiniz zaman avtomatik olaraq günəş işığının bucağını müəyyənləşdirin (fotometrik tədqiqatlar).
  • Onlayn xəritələr xidmətindən bir baxışa bir xəritə əlavə edin.
  • Ətraf mühit tədqiqatları aparın.
  • Coğrafi yerləri qeyd etmək və əlaqəli qeydləri qeyd etmək üçün mövqe işarələrindən istifadə edin.
  • Yerin algılanmasına dəstək verən sistemlərdə özünüzü xəritədə real vaxtda tapın.
  • AutoCAD Map 3D-ə ixrac edin və modelin özünü avtomatik olaraq yerləşdirməsini gözləyin.
  • Coğrafi yer məlumatlarını ehtiva edən və avtomatik olaraq özlərini yerləşdirmələrini gözləyən raster sənədləri idxal edin (Bunun üçün AutoCAD Raster Design tələb olunur).

GEOREMOVE əmrindən istifadə edərək bir rəsm sənədindən coğrafi yer məlumatlarını silə bilərsiniz. Coğrafi marker və CİS koordinat sistemi rəsm sənədindən silinir. Bununla birlikdə, mövqe işarələri rəsm sənədində qalmağa davam edir.


İstinad nöqtəsinin ölçülməsi

İstehlakçı-GPS cihazı vasitəsilə bir nöqtənin tək ölçülməsi dəqiq deyil. Sapmalar bir neçə on metrə qədər artır. Çoxsaylı ölçmələr (səpələnmələr) və EGNOS təkmilləşdirmələri mümkündür. Ən yaxşı nəticələr diferensial-GPS cihazları vasitəsi ilə əldə edilir, lakin xeyli dərəcədə bahalıdır.

Uzunmüddətli ölçmələrlə dəqiq istinad nöqtələri də yaradıla bilər. Buna görə sərbəst sahə ilə göyə görmə qabiliyyəti ilə dəqiq bir təyin olunan nöqtəyə ehtiyacınız var:

EGNOS peyklərinin daha yaxşı görünməsi üçün üfüq 10..20 ° -dən aşağı və xüsusilə cənubdan boş olmalıdır.

Peyk PRN Şəxsiyyət vəsiqəsi Vəzifə İstiqamət sağa işarə edən Elev. Almaniyada Şərh
Inmarsat AOR-E 120 33 Atlantik 15,5 ° W 195,5° 25..30°
Sənət 124 37 Afrika 21,5 ° E 158,5°
Inmarsat IOR-W 126 39 Afrika 25,0 ° E 155° hazırda test sistemi
Sirius 5 5,0 ° E 175° 2011-ci ilin sonundan

Sadə metod

Cihazınızda hər dəqiqə yalnız bir nöqtəyə qənaət etmək rejimi varsa (bəzi cihazlar köçürülməsə, avtomatik olaraq bunu edir), sadəcə cihazı istinad nöqtəsinə qoyub 10 saatdan sonra geri qaytara bilərsiniz (batareya olduğu müddətdə) işləyir). Günlük sənədindən orta dəyəri hesablayırsınız. Bununla hər hansı bir peyk və hava anomaliyasını ortadan qaldırdınız və (sərbəst sahədə) bir submetr-dəqiq mövqe əldə etdiniz.

Mürəkkəb metod

Cihazınızda dəqiqəlik rejimi yoxdursa, bir neçə məqamda bir neçə nöqtəni ölçüb sonra orta dəyəri hesablayaraq oxşar dəqiq nəticə əldə edə bilərsiniz.

Sərbəst bir ərazidə (və ya onun planında) bir-birindən bir neçə on metr məsafədə olan və hər an şübhəsiz yenidən tapıla bilən bir baxış nöqtəsini qeyd edin. Uyğun "kalibrləmə sahələri" bunlardır: drenajlı böyük park yerləri, qalıq bunkerləri olan Danimarka Şimal dənizi sahilindəki çimərlik, möhkəm işarələri olan idman meydançaları, və s.

Bütün nöqtələr (üçbucaqlar) arasındakı məsafələri bir ölçü bantı və ya lazer məsafəsi ölçücüsü ilə ölçün.

GPS ilə bu nöqtələrin mövqelərini təyin edin: Cihazı hər nöqtədə ən azı bir dəqiqə hərəkətsiz bağlayın. Fərqli peyk bürclərinə və ehtimal ki, fərqli atmosfer şəraitinə sahib olmaq üçün ölçümü ən azı 90 dəqiqə aralığında on dəfə təkrarlayın. Belə bir cəhd üçün 15 saat lazımdır.

Hər bir səpələnmənin ortalamasını hesablayın:

LAT cəmi / səpələnmədə nöqtələrin sayı = LAT [ortalama] Cəmi LON / səpələnmədə yerlərin xal sayı = LON [orta]

Bəzi GPS cihazları bunun üçün daxili bir funksiyaya malikdir. Alternativ olaraq, cədvəl kimi qeyd edin və avtomatik hesablanmasına icazə verin.

Dəqiq bilmək istəyirsinizsə, balların yalnız yarısı üzrə 20 ölçmə edin. Bu, bütün ölçmə dəyərlərinin uzunmüddətli atmosfer pozğunluqları ilə eyni istiqamətə dəyişdirilə biləcəyi ehtimal olunan müntəzəm səhvləri istisna edir.

yuxarı sağ:
əvvəlində hərəkət səhvi

  1. İki istinad nöqtəsi arasındakı koordinat fərqlərindən kənar məsafələri hesablayın (və ya redaktorda vurun)
  2. Ölçülmüş və hesablanmış məsafə arasındakı fərqi müəyyənləşdirin
  3. Orta fərqi hesablayın: bütün fərqləri birlikdə sayın və miqdarlarına görə bölün.

Nəticə cihazın maksimum ümumi dəqiqliyi və yaxşı şəraitdə ətraf mühitin təsirləri üçün bir nisbətdir. Ətraf mühitin təsirləri azalırsa, dəqiqlik də azalır. 90 dəqiqəlik bir intervalda dəqiqədə on dəfə GPS məlumatlarının dəqiqliyinə baxın. Səpələnmənin ortalamasını hesablayın.

Ayrıca bir neçə nöqtəni ölçə bilər və hər səpələnmə sahəsinin ortasını daha dəqiq bir istinad nöqtəsinə gətirə bilərsiniz:

Cəmi LAT [Orta] / müşahidələrin sayı = LAT [cəmi] Cəmi LON [Orta] / müşahidələrin sayı = LON [cəmi]


Aviasiya Formulary veb səhifəsində bu problem üçün standart bir düstur var. Bu səhifədə bir çox başqa faydalı düsturlar da var.

İndi müxtəlif xüsusi işlərə baxaq.

Xüsusi bir hal, iki nöqtənin eyni olmasıdır. O zaman bir nöqtədən digərinə doğru olan (kurs açısı kimi də bilinir) rulman yaxşı təyin olunmur. Rulman kəsişmə üçün ümumi alqoritmdə istifadə olunduğundan bu alqoritmi istifadə edə bilmərik. Ancaq açıq kəsişmə nöqtəsi başlanğıc nöqtələri ilə eynidır.

Hər iki nöqtə də şimal və ya cənub qütbündədirsə, oradan çıxan hər bir yol Şimaldan eyni rulmana sahibdir, buna görə də yataq əslində sizə həmin nöqtədən hansı yolun çəkildiyini demir. Bu xüsusi hal səhv hesab olunmalıdır, düşünürəm, bəlkə də bir nöqtə şimal qütbü, digəri cənub qütbüdürsə (bu halda birini "" kəsişmə "kimi seçə bilərsiniz).

Qalan xüsusi hallar iki nöqtə üçün eyni deyil, nə də bir dirəkdə.

Başlanğıc nöqtələri bir-birinin antipodlarıdırsa, yəni Yer üzündə bir-birinə zidddirsə, yolların hər biri Yerin ətrafında yarım gəzdikdən sonra digər nöqtəyə çatır. Məsələn, $ 20 $ N $ 30 $ E nöqtəsi $ 20 $ S $ 150 $ W antipodlarıdır. İki yolun başlanğıc rulmanları $ pi $ radian ($ 180 $ dərəcə) hər hansı bir çoxluğuna qədər əlavə edərsə, onda iki yol eyni böyük dairə boyunca hərəkət edir və sonsuz sayda kəsişmə nöqtəsi var. Biri seçməlisinizsə, bu iki başlanğıc nöqtəsindən biri və ya onların arasındakı iki nöqtədən biri ola bilər, hər nöqtədəki ilk rulmanları nəzərə alaraq qərar verə bilərsiniz.

Xallar antipod deyilsə, iki nöqtədən gələn yolların eyni böyük dairə boyunca hərəkət etməsi hələ mümkündür. Məsələn, iki başlanğıc nöqtəsi $ 20 $ N $ 10 $ E və $ 40 $ N $ 10 $ E və hər ikisi Şimaldan $ dərəcə götürməklə başlayırsa, hər iki yol eyni böyük dairəni eyni istiqamətdə gəzir. Eyni iki başlanğıc nöqtəsini istifadə edərək, bir yol $ dərəcə daşıyaraq başlayırsa, digəri $ 180 dərəcə daşıyaraq başlayırsa, eyni böyük dairəni əks istiqamətlərdə gəzəcəklər. Hər iki halda da, hər nöqtədən gələn yol digər nöqtədən keçir və nəticədə başlanğıc nöqtəsinə gəlmək üçün Yerin ətrafında dövr edir.

Cığırların eyni böyük dairəni keçib-getmədiyini izah etməyin bir yolu, hər nöqtədən digər nöqtəyə qədər rulman və ya hərəkət bucağına baxmaqdır. $ A $ nöqtəsindən $ B $ nöqtəsinə istiqamət $ A $ -dan başlayan yolun verilmiş daşıyıcısı ilə eynidirsə, bu yol hər iki nöqtədən keçəcəkdir. $ A $ - B $ istiqamətləri verilmiş rulmanın tam əksinədirsə ($ pm pi $ radians və ya $ pm180 $ dərəcə fərqi), yol yenə də getməli olduğunuz hər iki nöqtədən keçəcəkdir. digər nöqtəyə çatmaq üçün Yerin yarısından çox.

$ A $ -dan verilən yolun $ B $ -dan keçib keçməməsinə qərar vermək üçün bir funksiya yaza bilərsiniz. Daha sonra $ B $ yolunun $ A $ keçib keçməməsinə qərar vermək üçün eyni funksiyanı istifadə edə bilərsiniz. Hər iki yol da digər nöqtədən keçərsə, hər ikisi eyni böyük dairədədir. Texniki cəhətdən hər hansı bir nöqtə eyni dərəcədə "" "kəsişmə nöqtəsidir, buna görə yalnız sizin üçün məntiqli olanı seçməlisiniz: birinci nöqtə, ikinci nöqtə, aralarındakı bir nöqtə və ya hətta orta nöqtənin antipodları. Seçim hər nöqtədəki ilkin rulmanın digər nöqtəyə doğru və ya ondan uzaq olmasına bağlı ola bilər.

Başqa bir vəziyyətdə, yollar tam iki nöqtədə kəsişəcəkdir. İki kəsişmə bir-birinin antipodlarıdır. Hər iki nöqtədəki ilkin rulmanlar eyni kəsişmə nöqtəsinə doğru olarsa, bu nöqtəni "" "kəsişmə kimi seçərdim. (Kəsişmə ya başlanğıc nöqtəsindən Yerin yarısına qədər ola bilər.)

Ancaq mümkündür ki, hər bir yolun başlanğıc dayağı iki kəsişmə nöqtəsindən fərqli birinə doğru istiqamətlənsin. O zaman bəlkə də hansı nöqtənin hansı kəsişməyə yaxın olduğuna görə bir və ya digər nöqtəni seçmək üçün bəzi kriteriyalarla çıxış etməlisiniz. Bu alqoritmə ehtiyac duyduğum tətbiqdə bu vəziyyət normal olaraq ortaya çıxmamalıydı, buna görə özbaşına "" "kəsişmə nöqtəsinin ilk yolla çatdığı kəsişmə olmasına qərar verdim.


Lat / Lon nöqtəsini başqa Lat / Lon nöqtə bucağından hesablamaq - Coğrafi İnformasiya Sistemləri

tidegravity, I.M. Longman tərəfindən Journal of Geophysical Research, Vol 64, No.-da dərc olunduğu kimi, Ay və Günəş səbəbiylə gelgit sürətlərini hesablamaq üçün Ivor Longman'ın sxemini həyata keçirən bir Python kitabxanasıdır. 12, 1959 Bu, qravimetrik tədqiqat məlumatlarını düzəltmək üçün faydalı ola bilər, çünki Günəşin və Ayın gelgit təsirlərinə görə cazibə qüvvələri yer ölçənlərin yerləşməsindən və Günəşin nisbi mövqelərindən asılı olaraq bir neçə yüz mikroGal sırası ilə ola bilər. Ay bir-birinə və sörveyer.

Səssiz və pandas kitabxanaları gelgit düzəlişlərinin işlənməsi və düzəliş üçün traektoriya məlumatlarının idxalı üçün tələb olunur

Matplotlib kitabxanası isteğe bağlı bir tələbdir və hal-hazırda məlumatların əyani təsvirini hazırlamaq üçün yalnız nümunələrdə istifadə olunur.

Aşağıdakı API funksiyaları təmin olunur (gələcək versiyalarda dəyişiklik edilə bilər):

həll_düzən_gəld (lat, lon, alt, vaxt)

Səssiz sıra girişlərindən Günəş / Ay səbəbiylə ümumi cazibə düzəlişini həll edin

həll_düzən_gəlir_scalar (lat, lon, alt, vaxt)

Шийдвэрлэх_longman_tide ətrafında sarma, lat / lon / alt və tək bir DateTime obyekti üçün tək skaler dəyərləri qəbul edir.

həll_ nöqtəsi_corr (lat, lon, alt, t0, n = 3600, artım = 'S')

T0 ilə müəyyən edilmiş bir müddət ərzində gelgit düzəlişini statik (skalar) mövqe parametrləri üçün verilən artımda n nöqtə ilə qaytarın

həll_tide_df (df, lat = 'lat', lon = 'lon', alt = 'alt')

Bir pandas DataFrame (df) obyektini giriş olaraq qəbul edən sarıcı, df bir DatetimeIndex və lat / lon / alt sütunlarına sahib olmalıdır. Alternativ sütun adları parametrlər vasitəsi ilə təmin edilə bilər ki, bu da DataFrame girişindən komponentlərin çıxarılması üçün istifadə ediləcəkdir.

  • I.M. Longman "Ay və Günəşə görə Gelgit Sürətlənmələrini Hesablamaq üçün Forumlas" Jeofizik Tədqiqatlar Jurnalı, c. 64, yox. 12, 1959, s. 2351-2355
  • P. Schureman "Harmonik analiz və gelgit proqnozlaşdırma təlimatı" ABŞ Sahil və Geodeziya Araşdırması, 1958

Bu kitabxana John Leeman'ın LongmanTide Python tətbiqetməsinin əsərinə əsaslanır. LongmanTide

Nümunələr qovluğunda uzunmüddətli həll etmə funksiyalarından necə istifadə ediləcəyini göstərən bir neçə nümunə skript var.

Budur müəyyən bir müddət ərzində statik enlik / uzunluq / hündürlük üçün düzəliş seriyasının 1 saniyəlik fasilələrlə hesablanmasının sadə bir nümayişi.


Həndəsi Koordinatlarda Nöqtələr Mərkəzi

Yer üzündə beş geostasionar peyk var və əhatə dairəsinin kobud bölgəsini bilmək üçün xəritənizə avtomatik olaraq yerlərinin mərkəzinə keçmək üçün ehtiyacınız var. Sayı xəttində bu çox çətin bir problem deyil, çünki kütlə mərkəzi tapmaq və ya bəzi təsadüfi miqdar üçün ortalama:

Enlem bu şəkildə işləyir, ancaq uzunluq fərqlidir.

Uzunluq niyə fərqlidir?

Uzunluğu çətinləşdirən şey, həqiqətən çox yaxın olan nöqtələrin, ümumiyyətlə istifadə etdiyimiz koordinat sistemində çox böyük bir aralığa sahib olmasıdır. Aşağıdakı nümunəni götürək: Tonqa 175.2 ° W, Tuvalu 179.2 ° E-də yerləşir. 5.6 ° uzunluq olmalıdır, çünki 180 ° W / E-dən 4.8 ° və 0.8 ° olduqları üçün. Ancaq normal olaraq uzunluğu şərqin müsbət, qərbin mənfi olduğu bir rəqəm xətti [-180 °, 180 °] olaraq gördüyümüz üçün bu iki nöqtə

ayrı! Hansı cavab düzgündür? Hər ikisi də var, ancaq xəritədəki nöqtələrin mərkəzini tapmaq üçün bir həll yolu tapsaq, bu bəzi narahatçı problemlərə səbəb ola bilər. Tonga və Tuvalu ilə nümunəmizdə ilk həll adalara yaxşıca yaxınlaşdırılırdı, ikincisi isə dünyanın 354,4 ° -ni əhatə edəcək qədər uzaqlaşdırılırdı.

Hələ də Tonga və Tuvalu ilə işləyirik, bu iki ölkənin ortalama yeri nə olacaq? Ortalama balın cəmi / sayıdır, buna görə əldə edirik

və ya baş meridianın şərqində 2 °. Qəribə görünür, çünki dünyanın digər tərəfindədir.

Bir az mənasız görünən nəticələr əldə etdiyimiz üçün problemimizin daha dəqiq bir həlli olmalıdır.

Başqa bir yol tapmaq

Buradakı problem, uzunluğu son nöqtələrin bir-birindən aralı olduğu bir rəqəm xətti kimi görməsindədir, əslində son nöqtələr eyni fiziki yeri təmsil edir. Bu çətinlikdən keçməyin bir yolu, xətt seqmentini radius bir (ölçülü dairə) olan iki ölçülü bir halqaya uyğunlaşdırmaqdır. Bu əlverişlidir, çünki indi -180 ° və + 180 ° bu yeni iki ölçülü koordinat sistemində eyni nöqtədədir: ((- 1,0) ).

Aşağıda yuxarıda göstərilən peyk probleminin təsviri verilmişdir. Beş peyk yer üzündə düzülmüşdür. Solda yerləşən koordinat sistemi uzunluğu təmsil edir, çünki normal olaraq sağdakı koordinat sistemi xəritələşdirməni göstərmək üçün müvafiq yerlərdə dərəcə ilə çevrilmiş uzunluqdur. Xəritədə asanlıqla gördüyünüz kimi, normal uzunluğu (qırmızı ×) götürmək düzgün dəyərlə (qızıl ulduz) müqayisədə uzaq bir dəyər verir. Koordinat sistemi yalnız dövri sərhəd dəyərləri olmayan bir say xətti olsaydı, barmağınızdakı xətti qırmızı × -də tarazlaya bilərsiniz.

Qızıl ulduzu tapmağımıza kömək edən çevrilmə aşağıdakılardır:

burada indeks məlumat cədvəlindəki giriş (girişlər) deməkdir.

Nöqtələr mərkəzimizi tapmaq üçün, artıq və (bunlara deyəcəyik və) ortalamasını tapmalı, sonra aralarındakı bucağı tapmalıyıq. Bucaq tərs toxunuş tapılaraq hesablana bilər. Hansı kvadrantın seçilməsinə diqqət yetirmək üçün giriş işarələrini qoruyan iki arqumentli tərs toxunuş olan atan2-dən istifadə edəcəyik.

Bu uzunluq üçün hesablama və enlik üçün yuxarıda göstərilən hesablama aşağıdakı SQL əmrini SQL redaktoruna yerləşdirərək KARTO-da asanlıqla hesablana bilər. Hesablanmış dəyərlər bunlardır: yuxarıdakı müzakirəyə əsaslanan avg_lon, düz uzunluq uzunluğuna əsaslanan avg_lon_naive və orta enqə avq_lat.

Kənara: Bu hesablamanı çox sayda nöqtə üzərində aparırsınızsa, SQL funksiyası cəmi () avg () -dən daha sürətli olacaq. Tangens əks / bitişik olaraq təyin olunduğundan, ümumi çoxluqlar ləğv olunur. Bu, ortalamalarda istifadə olunan məxrəcin hər ikisi üçün ləğv edəcəyi və buna görə də bu hesablamalar üçün avg () -ın cəmi () ilə əvəz edilə biləcəyi deməkdir.

Avg_lon üçün nəticə Tuvalu və Tonga arasında olduğu üçün məntiqlidir. avg_lon_naive sadəcə səhvdir. Diqqət yetirin ki, dərəcələri radianlara çevirməliyik və sonra yenidən işləyirik. İki nöqtə vəziyyəti üçün iki hesablanmış uzunluğun 180 ° aralı olduğuna da diqqət yetirin. Daha böyük bir verilənlər bazası üçün avg_lon_naive nəticəsi daha mənasız olur.

Aşağıdakı birləşdirilmiş verilənlər bazasının köməyi ilə xəritədə görünən məlumatları görə bilərsiniz. Orta uzunluğu tapmaq üçün sadəlövh yanaşmanın işə yaramadığı çox açıqdır.

Məkan təhlilini sınamaq istəyirsiniz?

Ağırlıqlı Xal Mərkəzi

Bu nəticələr ümumiləşdirilmiş xal mərkəzinə qədər ümumiləşdirilə bilər. Əgər çəki çəkmək istədiyiniz sütun varsa, o zaman əldə edirik

Tangens arqumentlərin nisbətini götürdüyündən, məxrəclər ləğv edər və tənliyimiz kompüter üçün asanlaşdıracaq şəkildə asanlaşdırar!

SQL-də bu tənlik belə görünür:

Pro İpucu: Açıq bir enlem və ya uzunluq sütununuz yoxdursa, məlumatı birbaşa the_geom-dan latın əvəzinə ST_Y (the_geom) və lon'u ST_X (the_geom) ilə əvəz edə bilərsiniz.

Hər şey burada CARTO-da açıq məlumatlarla əlaqədardır. Xəritəni və məlumatları klonlaşdırmaq istəyirsinizsə, ikisini də burada görün. Xoşbəxt Xəritəçəkmə!


Konsentrik dairələrdə iki nöqtə arasındakı məsafəni hesablayın

İki konsentrik dairə arasında ən qısa məsafəni tapmağa çalışıram. Artıq dairələrin iki nöqtəsi və radiusları arasındakı bucağı bilirəm, amma ikisi arasındakı məsafəni necə hesablayacağımdan əmin deyiləm.

Aşağıdakı nümunəni təsəvvür edin, burada $ R_1 = 2 $ və $ R_2 = 3 $ və nöqtələr 45 dərəcə ilə ayrılır. Bu iki nöqtə arasındakı məsafəni hesablamaq istərdim. Hər hansı bir yardım çox qiymətləndirilir. Təşəkkürlər!

Mənə daha aydın deyim. Xətti məsafəyə ehtiyacım yoxdur, bunu heç bir problem edə bilmirəm. Bu iki nöqtəni birləşdirən qövs olmaq üçün məsafəyə ehtiyacım var. Yay $ R_1 $ və $ R_2 $ arasında sabit bir sürətlə "yüksəlməlidir". Bu əlaqə də ən daxili dairə ilə kəsişməməlidir.

Əsasən problemimi sadələşdirməyə çalışıram. Hal-hazırda bir kürədə iki nöqtə olan böyük dairə məsafəm var, ancaq bu, iki nöqtənin eyni radiusda olduğunu düşünür. Yer stansiyası ilə peyk və ya buna bənzər bir şey arasındakı məsafəni tapmağa çalışarkən bu həmişə doğru deyil. Hər iki cisimin enini, uzunluğunu və hündürlüyünü bilirəm, buna görə onların açısal ayrılmasını tapa bilərəm, amma onları birləşdirən yayların məsafəsini necə hesablayacağımı bilmirəm.


2 Cavablar 2

Başqa bir şeyə ehtiyacınız var.

Bir sekstant və dəniz xronometrinə (zərif saat) ehtiyacınız var. Sextant bir ulduzun və ya günəşin meylini ölçür və enlemi təyin etməyə kömək edir. Bunu bildikdən sonra xronometr və bəzi əlavə trigonometriyadan istifadə edərək uzunluq verir. Bunlardan ikisini də necə edəcəyimi bilmirəm, buna görə bəzi məqalələr:

Pusula Yer üzündəki müəyyən bir nöqtəyə istiqamət verən bir mıknatısdır. Riyaziyyat bu məlumatları hər hansı bir mövqe məlumatı əldə etmək üçün istifadə etmək üçün işləmir, çünki yer üzündəki bir çox nöqtə eyni pusula davranışına sahib olacaqdır. Həqiqi şimalın fərqli bir alətdən hansı istiqamətdə olduğunu bildiyinizə baxmayaraq, bütün məlumatlar sizi lokal dəyişkənliyinizlə əlaqələndirir. Bu sizi çox böyük, əyri bir əyri ola biləcək bir yerə gətirir:

Düşüncə: Birinci merak etməkdən uzaqsan və dənizdə olarkən uzunluğu ölçmək üçün bir yol tapmaq bir neçə yüz il əvvəl elə böyük bir şey idi ki, bunu edə bilən hər kəsə böyük mükafatlar təqdim olunurdu. Rəqabət o qədər şiddətli idi ki, nəticədə bu barədə bir film çəkildi. Uzunluq yaradıcılığı adı sizin üçün maraqlı ola bilər.

Müasir bir maqnit variasiya cədvəlinə ehtiyacınız var. Dərəcələri Doğru Şimala qoyun. Bu sizə 200 mil məsafəni verəcəkdir. Maqnetik Şimal hər il bir az dəyişir.

Sonra günəşin həqiqi şərqə çıxdığını və ya həqiqi qərbə batdığını və o gün üçün orada olan dəyişikliyi bilməlisiniz. Bunu etmək üçün Almanaxda qrafiklər var.

Sonra günortanın günorta saatlarında hansı açıda olduğunu yoxlayın. Şimaldadır, yoxsa cənuba? Bunun üçün olduğunuzu düşündüyünüz yerə olan açı fərqini bilməlisiniz. Bunun üçün sekstant ən yaxşısıdır, lakin bəzi kobud hesablamalar pusula ilə edilə bilər.

Now you're still lost, but you know what area you are in. Choose a big piece of land & dead reckon sail to it. This is why I like a cheap transistor radio with a pull out antenna. At sea you can pick up stations at 200 miles, or sometimes at night up to 500 miles, and have an idea were they are. Head straight for one. Or if there are two or more, figure out your location to 20 miles. As you get closer to land you can fine tune the angles to get close to the port you wish to reach. I only go out 60 to 80 miles in good weather as far as the second reef, but you can do more.

The radio trick also works on land. If you have a map with what towns are in a certain area & what radio stations are located in them, mark that on your map. Then you only need to hold your course by a compass. I have found this true.

Once you are close to towns they have roads. Roads have homes on them. They can tell you where to go. The same is true if you're close to coast lines. There are small craft out there. Ask and they will tell you where to go.


Videoya baxın: How to get Coordinates lat Lon of location in Google Maps Android in phone (Oktyabr 2021).