示例#1
0
 def test_degree_to_other(self):
     point = points.WGSPoint(-3.0750, 0, 0, 10.2083, 0, 0)
     long_deg, long_min = converter.convert_degree_to_decimal_minutes(
         point.long_deg)
     lat_deg, lat_min = converter.convert_degree_to_decimal_minutes(
         point.lat_deg)
     p = points.WGSPoint(long_deg, long_min, 0, lat_deg, lat_min, 0)
     self.assertEqual(p.long_deg, -3)
     self.assertEqual(format(p.long_min, '.2f'), '4.50')
     self.assertEqual(p.long_sec, 0)
     self.assertEqual(p.lat_deg, 10)
     self.assertEqual(format(p.lat_min, '.2f'), '12.50')
     self.assertEqual(p.lat_sec, 0)
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         point.lat_deg)
     p_1 = points.WGSPoint(long_deg, long_min, long_sec, lat_deg, lat_min,
                           lat_sec)
     self.assertEqual(p_1.long_deg, -3)
     self.assertEqual(p_1.long_min, 4)
     self.assertEqual(format(p_1.long_sec, '.0f'), '30')
     self.assertEqual(p_1.lat_deg, 10)
     self.assertEqual(p_1.lat_min, 12)
     self.assertEqual(format(p_1.lat_sec, '.0f'), '30')
示例#2
0
 def test_comma_minutes_to_other(self):
     point = points.WGSPoint(1, 32, 0, 2, 31, 0)
     long_deg = converter.convert_decimal_minutes_to_degree(
         float(point.long_deg), float(point.long_min))
     lat_deg = converter.convert_decimal_minutes_to_degree(
         float(point.lat_deg), float(point.lat_min))
     p = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     #self.assertEqual(format(p.long_deg, '.4f'), '-3.0750')
     #self.assertEqual(format(p.lat_deg, '.4f'), '10.9833')
     print('WGS_Degree_long: ' + str(p.long_deg))
     print('WGS_Degree_lat: ' + str(p.lat_deg))
     print('WGS_Degree: ' +
           p.to_string(CoordinateSystemString.WGS84_Degrees.value))
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         p.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(p.lat_deg)
     p_1 = points.WGSPoint(long_deg, long_min, long_sec, lat_deg, lat_min,
                           lat_sec)
     # self.assertEqual(p_1.long_deg, 1)
     # self.assertEqual(p_1.long_min, 31)
     # self.assertEqual(format(p_1.long_sec, '06.3f')[0:5], '00.00')
     # self.assertEqual(p_1.lat_deg, 10)
     # self.assertEqual(p_1.lat_min, 59)
     # self.assertEqual('59.99', '59.99')
     print('WGS_DMS_long: ' + str(p_1.long_deg) + ' ' + str(p_1.long_min) +
           ' ' + str(p_1.long_sec))
     print('WGS_DMS_lat: ' + str(p_1.lat_deg) + ' ' + str(p_1.lat_min) +
           ' ' + str(p_1.lat_sec))
     print('WGS_DMS: ' +
           p_1.to_string(CoordinateSystemString.WGS84_DMS.value))
示例#3
0
 def test_conversion_of_degrees_4(self):
     degree_point = points.WGSPoint(16.123456, 0, 0, 25.654321, 0, 0)
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         float(degree_point.long_deg))
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         float(degree_point.lat_deg))
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     print(dms_point.to_string(CoordinateSystemString.WGS84_DMS.value))
     self.assertEqual(int(dms_point.long_deg), 16)
     self.assertEqual(int(dms_point.long_min), 7)
     self.assertEqual(str(dms_point.long_sec)[:5], '24.44')
     self.assertEqual(int(dms_point.lat_deg), 25)
     self.assertEqual(int(dms_point.lat_min), 39)
     self.assertEqual(str(dms_point.lat_sec)[:5], '15.55')
     utm_point = converter.degree_to_utm(degree_point)
     print(utm_point.to_string())
     self.assertEqual(utm_point.zone_number, 33)
     self.assertEqual(int(utm_point.easting), 612764)
     self.assertEqual(int(utm_point.northing), 2837881)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     print(mgrs_point.to_string())
     self.assertEqual(mgrs_point.zone, '33R')
     self.assertEqual(mgrs_point.square, 'XJ')
     self.assertEqual(mgrs_point.easting, 12764)
     self.assertEqual(mgrs_point.northing, 37881)
示例#4
0
 def test_dms_to_degree(self):
     point = points.WGSPoint(16, 59, 59.9999, 10, 12, 30)
     print(point.to_string('WGS_DEGREES'))
     long_deg = converter.convert_DMS_to_degree(point.long_deg,
                                                point.long_min,
                                                point.long_sec)
     lat_deg = converter.convert_DMS_to_degree(point.lat_deg, point.lat_min,
                                               point.lat_sec)
     print(long_deg)
     p = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     print(str(p.long_deg))
     print(p.to_string('WGS_DEGREES'))
示例#5
0
 def test_deg_to_mgrs3(self):
     point = points.WGSPoint(0, 32, 0, 0, 31, 0)
     long_deg = converter.convert_DMS_to_degree(point.long_deg,
                                                point.long_min,
                                                point.long_sec)
     lat_deg = converter.convert_DMS_to_degree(point.lat_deg, point.lat_min,
                                               point.lat_sec)
     deg_point = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     print('Deg point: ' +
           deg_point.to_string(CoordinateSystemString.WGS84_Degrees.value))
     p1 = self.__degree_to_mgrs(deg_point)
     print('With lib: ' + p1.to_string())
     p = converter.degree_to_utm(deg_point)
     print(p.to_string())
     p2 = converter.convert_UTM_to_MGRS(p)
     print('Without lib: ' + p2.to_string())
示例#6
0
 def test_degree_to_UTM(self):
     point = points.WGSPoint(3, 0, 0, -10, 0, 0)
     p_1 = converter.degree_to_utm(point)
     print(p_1.to_string())
     self.assertEqual(p_1.zone_number, 31)
     self.assertEqual(p_1.hemisphere, Hemisphere.SOUTH)
     self.assertEqual(int(p_1.easting), 500000)
     self.assertEqual(int(p_1.northing), 8894587)
示例#7
0
 def test_dms_to_other(self):
     point = points.WGSPoint(3, 59, Decimal(59.999), 10, 12, 30)
     long_deg = converter.convert_DMS_to_degree(point.long_deg,
                                                point.long_min,
                                                point.long_sec)
     lat_deg = converter.convert_DMS_to_degree(point.lat_deg, point.lat_min,
                                               point.lat_sec)
     p = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     self.assertEqual(str(p.long_deg)[:8], '3.999999')
     self.assertEqual(format(p.lat_deg, '.4f'), '10.2083')
     long_deg, long_min = converter.convert_degree_to_decimal_minutes(
         p.long_deg)
     lat_deg, lat_min = converter.convert_degree_to_decimal_minutes(
         p.lat_deg)
     p_1 = points.WGSPoint(long_deg, long_min, 0, lat_deg, lat_min, 0)
     self.assertEqual(p_1.long_deg, 3)
     self.assertEqual(str(p_1.long_min)[:5], '59.99')
     self.assertEqual(p_1.long_sec, 0)
     self.assertEqual(p_1.lat_deg, 10)
     self.assertEqual(format(p_1.lat_min, '.2f'), '12.50')
     self.assertEqual(p_1.lat_sec, 0)
示例#8
0
 def test_conversion_of_degrees_1(self):
     point = points.WGSPoint(0, 32, 0, 0, 31, 0)
     long_deg = converter.convert_decimal_minutes_to_degree(
         point.long_deg, point.long_min)
     lat_deg = converter.convert_decimal_minutes_to_degree(
         point.lat_deg, point.lat_min)
     degree_point = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     print(
         degree_point.to_string(CoordinateSystemString.WGS84_Degrees.value))
     self.assertEqual(str(degree_point.long_deg)[:8], '0.533333')
     self.assertEqual(str(degree_point.lat_deg)[:8], '0.516666')
     utm_point = converter.degree_to_utm(degree_point)
     print(utm_point.to_string())
     self.assertEqual(utm_point.zone_number, 31)
     self.assertEqual(int(utm_point.easting), 225447)
     self.assertEqual(int(utm_point.northing), 57160)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     print(mgrs_point.to_string())
     self.assertEqual(mgrs_point.zone, '31N')
     self.assertEqual(mgrs_point.square, 'BA')
     self.assertEqual(mgrs_point.easting, 25447)
     self.assertEqual(mgrs_point.northing, 57160)
示例#9
0
 def test_conversion_of_degrees_7(self):
     point = points.WGSPoint(25, 59, 59.99, 67, 12, 58.99)
     long_deg = converter.convert_DMS_to_degree(point.long_deg,
                                                point.long_min,
                                                point.long_sec)
     lat_deg = converter.convert_DMS_to_degree(point.lat_deg, point.lat_min,
                                               point.lat_sec)
     degree_point = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     print(
         degree_point.to_string(CoordinateSystemString.WGS84_Degrees.value))
     self.assertEqual(str(degree_point.long_deg)[:8], '25.99999')
     self.assertEqual(str(degree_point.lat_deg)[:8], '67.21638')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     print(dms_point.to_string(CoordinateSystemString.WGS84_DMS.value))
     self.assertEqual(int(dms_point.long_deg), 25)
     self.assertEqual(int(dms_point.long_min), 59)
     self.assertEqual(str(dms_point.long_sec)[:5], '59.99')
     self.assertEqual(int(dms_point.lat_deg), 67)
     self.assertEqual(int(dms_point.lat_min), 12)
     self.assertEqual(str(dms_point.lat_sec)[:5], '58.99')
     utm_point = converter.degree_to_utm(degree_point)
     print(utm_point.to_string())
     self.assertEqual(utm_point.zone_number, 35)
     self.assertEqual(int(utm_point.easting), 456786)
     self.assertEqual(int(utm_point.northing), 7455850)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     print(mgrs_point.to_string())
     self.assertEqual(mgrs_point.zone, '35W')
     self.assertEqual(mgrs_point.square, 'MQ')
     self.assertEqual(mgrs_point.easting, 56786)
     self.assertEqual(mgrs_point.northing, 55850)
示例#10
0
 def test_conversion_of_degrees_2(self):
     point = points.WGSPoint(12, 32, 0, 2, 31, 0)
     long_deg = converter.convert_decimal_minutes_to_degree(
         point.long_deg, point.long_min)
     lat_deg = converter.convert_decimal_minutes_to_degree(
         point.lat_deg, point.lat_min)
     degree_point = points.WGSPoint(long_deg, 0, 0, lat_deg, 0, 0)
     print(
         degree_point.to_string(CoordinateSystemString.WGS84_Degrees.value))
     self.assertEqual(str(degree_point.long_deg)[:8], '12.53333')
     self.assertEqual(str(degree_point.lat_deg)[:8], '2.516666')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     print(dms_point.to_string(CoordinateSystemString.WGS84_DMS.value))
     self.assertEqual(int(dms_point.long_deg), 12)
     self.assertEqual(int(dms_point.long_min), 32)
     self.assertEqual(int(dms_point.long_sec), 0)
     self.assertEqual(int(dms_point.lat_deg), 2)
     self.assertEqual(int(dms_point.lat_min), 31)
     self.assertEqual(int(dms_point.lat_sec), 0)
     utm_point = converter.degree_to_utm(degree_point)
     print(utm_point.to_string())
     self.assertEqual(utm_point.zone_number, 33)
     self.assertEqual(int(utm_point.easting), 225699)
     self.assertEqual(int(utm_point.northing), 278428)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     print(mgrs_point.to_string())
     self.assertEqual(mgrs_point.zone, '33N')
     self.assertEqual(mgrs_point.square, 'TC')
     self.assertEqual(mgrs_point.easting, 25699)
     self.assertEqual(mgrs_point.northing, 78428)
示例#11
0
 def test_conversion_of_mgrs_2(self):
     mgrs_point = points.MGRSPoint(16794, 10831, '37L', 'BM')
     utm_point = converter.convert_MGRS_to_UTM(mgrs_point)
     self.assertEqual(utm_point.zone_number, 37)
     self.assertEqual(int(utm_point.easting), 216794)
     self.assertEqual(int(utm_point.northing), 9110831)
     self.assertEqual(utm_point.hemisphere, Hemisphere.SOUTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:8], '36.43065')
     self.assertEqual(str(degree_point.lat_deg)[:8], '-8.03602')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), 36)
     self.assertEqual(int(dms_point.long_min), 25)
     self.assertEqual(str(dms_point.long_sec)[:5], '50.36')
     self.assertEqual(int(dms_point.lat_deg), -8)
     self.assertEqual(int(dms_point.lat_min), 2)
     self.assertEqual(str(dms_point.lat_sec)[:5], '9.702')
示例#12
0
 def test_conversion_of_utm_1(self):
     utm_point = points.UTMPoint(123456, 1234567, 5, '', Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:9], '-156.4466')
     self.assertEqual(str(degree_point.lat_deg)[:8], '11.14828')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), -156)
     self.assertEqual(int(dms_point.long_min), 26)
     self.assertEqual(str(dms_point.long_sec)[:5], '47.86')  #TODO: check
     self.assertEqual(int(dms_point.lat_deg), 11)
     self.assertEqual(int(dms_point.lat_min), 8)
     self.assertEqual(str(dms_point.lat_sec)[:5], '53.81')
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     self.assertEqual(mgrs_point.zone, '5P')
     self.assertEqual(mgrs_point.square, 'JO')  #TODO: check
     self.assertEqual(mgrs_point.easting, 23456)
     self.assertEqual(mgrs_point.northing, 34567)
示例#13
0
 def test_conversion_of_utm_2(self):
     utm_point = points.UTMPoint(123456, 1234567, 5, '', Hemisphere.SOUTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:9], '-170.0987')
     self.assertEqual(str(degree_point.lat_deg)[:9], '-78.46254')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), -170)
     self.assertEqual(int(dms_point.long_min), 5)
     self.assertEqual(str(dms_point.long_sec)[:5], '55.62')  #TODO: check
     self.assertEqual(int(dms_point.lat_deg), -78)
     self.assertEqual(int(dms_point.lat_min), 27)
     self.assertEqual(str(dms_point.lat_sec)[:5], '45.17')
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     self.assertEqual(mgrs_point.zone, '5C')
     self.assertEqual(mgrs_point.square, 'JO')  #TODO: check
     self.assertEqual(mgrs_point.easting, 23456)
     self.assertEqual(mgrs_point.northing, 34567)
示例#14
0
 def test_conversion_of_utm_3(self):
     utm_point = points.UTMPoint(654321, 7654321, 45, '', Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:9], '90.853072')
     self.assertEqual(str(degree_point.lat_deg)[:9], '68.956178')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), 90)
     self.assertEqual(int(dms_point.long_min), 51)
     self.assertEqual(str(dms_point.long_sec)[:5], '11.06')
     self.assertEqual(int(dms_point.lat_deg), 68)
     self.assertEqual(int(dms_point.lat_min), 57)
     self.assertEqual(str(dms_point.lat_sec)[:5], '22.24')
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     self.assertEqual(mgrs_point.zone, '45W')
     self.assertEqual(mgrs_point.square, 'XS')
     self.assertEqual(mgrs_point.easting, 54321)
     self.assertEqual(mgrs_point.northing, 54321)
示例#15
0
 def test_conversion_of_utm_4(self):
     utm_point = points.UTMPoint(654321, 7654321, 45, '', Hemisphere.SOUTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:9], '88.486799')
     self.assertEqual(str(degree_point.lat_deg)[:9], '-21.20607')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), 88)
     self.assertEqual(int(dms_point.long_min), 29)
     self.assertEqual(str(dms_point.long_sec)[:5], '12.47')
     self.assertEqual(int(dms_point.lat_deg), -21)
     self.assertEqual(int(dms_point.lat_min), 12)
     self.assertEqual(str(dms_point.lat_sec)[:5], '21.86')
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     self.assertEqual(mgrs_point.zone, '45K')
     self.assertEqual(mgrs_point.square, 'XS')
     self.assertEqual(mgrs_point.easting, 54321)
     self.assertEqual(mgrs_point.northing, 54321)
示例#16
0
 def test_conversion_of_utm_5(self):
     utm_point = points.UTMPoint(500000, 2000000, 31, '', Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:9], '3')
     self.assertEqual(str(degree_point.lat_deg)[:9], '18.088708')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), 3)
     self.assertEqual(int(dms_point.long_min), 0)
     self.assertEqual(str(dms_point.long_sec)[:5], '0.0')
     self.assertEqual(int(dms_point.lat_deg), 18)
     self.assertEqual(int(dms_point.lat_min), 5)
     self.assertEqual(str(dms_point.lat_sec)[:5], '19.35')
     mgrs_point = converter.convert_UTM_to_MGRS(utm_point)
     self.assertEqual(mgrs_point.zone, '31Q')
     self.assertEqual(mgrs_point.square, 'EA')
     self.assertEqual(mgrs_point.easting, 0)
     self.assertEqual(mgrs_point.northing, 0)
示例#17
0
 def test_conversion_of_mgrs_5(self):
     mgrs_point = points.MGRSPoint(28166, 47695, '05Q', 'KB')
     utm_point = converter.convert_MGRS_to_UTM(mgrs_point)
     self.assertEqual(utm_point.zone_number, 5)
     self.assertEqual(int(utm_point.easting), 228166)
     self.assertEqual(int(utm_point.northing), 2147695)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:8], '-155.588')
     self.assertEqual(str(degree_point.lat_deg)[:8], '19.40511')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), -155)
     self.assertEqual(int(dms_point.long_min), 35)
     self.assertEqual(str(dms_point.long_sec)[:5], '18.20')
     self.assertEqual(int(dms_point.lat_deg), 19)
     self.assertEqual(int(dms_point.lat_min), 24)
     self.assertEqual(str(dms_point.lat_sec)[:5], '18.42')
示例#18
0
 def test_conversion_of_mgrs_3(self):
     mgrs_point = points.MGRSPoint(78917, 92398, '20J', 'NM')
     utm_point = converter.convert_MGRS_to_UTM(mgrs_point)
     self.assertEqual(utm_point.zone_number, 20)
     self.assertEqual(int(utm_point.easting), 578917)
     self.assertEqual(int(utm_point.northing), 6692398)
     self.assertEqual(utm_point.hemisphere, Hemisphere.SOUTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:8], '-62.1826')
     self.assertEqual(str(degree_point.lat_deg)[:8], '-29.8965')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), -62)
     self.assertEqual(int(dms_point.long_min), 10)
     self.assertEqual(str(dms_point.long_sec)[:5], '57.44')
     self.assertEqual(int(dms_point.lat_deg), -29)
     self.assertEqual(int(dms_point.lat_min), 53)
     self.assertEqual(str(dms_point.lat_sec)[:5], '47.54')
示例#19
0
 def test_conversion_of_mgrs_1(self):
     mgrs_point = points.MGRSPoint(55500, 72800, '33U', 'VP')
     utm_point = converter.convert_MGRS_to_UTM(mgrs_point)
     self.assertEqual(utm_point.zone_number, 33)
     self.assertEqual(int(utm_point.easting), 455500)
     self.assertEqual(int(utm_point.northing), 5372800)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:8], '14.39752')
     self.assertEqual(str(degree_point.lat_deg)[:8], '48.50673')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), 14)
     self.assertEqual(int(dms_point.long_min), 23)
     self.assertEqual(str(dms_point.long_sec)[:5], '51.08')
     self.assertEqual(int(dms_point.lat_deg), 48)
     self.assertEqual(int(dms_point.lat_min), 30)
     self.assertEqual(str(dms_point.lat_sec)[:5], '24.26')
示例#20
0
 def test_conversion_of_mgrs_4(self):
     mgrs_point = points.MGRSPoint(80363, 76750, '14S', 'MJ')
     utm_point = converter.convert_MGRS_to_UTM(mgrs_point)
     self.assertEqual(utm_point.zone_number, 14)
     self.assertEqual(int(utm_point.easting), 480363)
     self.assertEqual(int(utm_point.northing), 4376750)
     self.assertEqual(utm_point.hemisphere, Hemisphere.NORTH)
     degree_point = converter.utm_to_degree(utm_point)
     self.assertEqual(str(degree_point.long_deg)[:8], '-99.2285')
     self.assertEqual(str(degree_point.lat_deg)[:8], '39.54019')
     long_deg, long_min, long_sec = converter.convert_degree_to_DMS(
         degree_point.long_deg)
     lat_deg, lat_min, lat_sec = converter.convert_degree_to_DMS(
         degree_point.lat_deg)
     dms_point = points.WGSPoint(long_deg, long_min, long_sec, lat_deg,
                                 lat_min, lat_sec)
     self.assertEqual(int(dms_point.long_deg), -99)
     self.assertEqual(int(dms_point.long_min), 13)
     self.assertEqual(str(dms_point.long_sec)[:5], '42.68')
     self.assertEqual(int(dms_point.lat_deg), 39)
     self.assertEqual(int(dms_point.lat_min), 32)
     self.assertEqual(str(dms_point.lat_sec)[:5], '24.69')
示例#21
0
 def test_def(self):
     point = points.WGSPoint(3, 0, 0, -10, 0, 0)
     point = converter.degree_to_utm(point)
     print(point.to_string())
示例#22
0
def utm_to_degree(point):
    """Algorithm for the conversion of coordinate from UTM to the geographic coordinate system.

    Authors
    -------
    * Bart van Andel <*****@*****.**>
    * Tobias Bieniek <*****@*****.**>
    * Torstein I. Bo
    """
    easting = int(point.easting)
    northing = int(point.northing)
    zone_number = int(point.zone_number)
    # zone_letter = None

    if point.hemisphere == Hemisphere.NORTH:
        northern = True
    else:
        northern = False

    # if not zone_letter and northern is None:
    #     raise exceptions.ConversionException('either zone_letter or northern needs to be set')
    #
    # elif zone_letter and northern is not None:
    #     raise exceptions.ConversionException('set either zone_letter or northern, but not both')
    #
    # if not 100000 <= easting < 1000000:
    #     raise exceptions.ParseException('easting out of range (must be between 100.000 m and 999.999 m)')
    # if not 0 <= northing <= 10000000:
    #     raise exceptions.ParseException('northing out of range (must be between 0 m and 10.000.000 m)')
    # if not 1 <= zone_number <= 60:
    #     raise exceptions.ParseException('zone number out of range (must be between 1 and 60)')
    #
    # if zone_letter:
    #     zone_letter = zone_letter.upper()
    #
    #     if not 'C' <= zone_letter <= 'X' or zone_letter in ['I', 'O']:
    #         raise exceptions.ParseException('zone letter out of range (must be between C and X)')
    #
    #     northern = (zone_letter >= 'N')

    x = easting - 500000
    y = northing

    if not northern:
        y -= 10000000

    m = y / K0
    mu = m / (R * M1)

    p_rad = (mu + P2 * math.sin(2 * mu) + P3 * math.sin(4 * mu) +
             P4 * math.sin(6 * mu) + P5 * math.sin(8 * mu))

    p_sin = math.sin(p_rad)
    p_sin2 = p_sin * p_sin

    p_cos = math.cos(p_rad)

    p_tan = p_sin / p_cos
    p_tan2 = p_tan * p_tan
    p_tan4 = p_tan2 * p_tan2

    ep_sin = 1 - E * p_sin2
    ep_sin_sqrt = math.sqrt(1 - E * p_sin2)

    n = R / ep_sin_sqrt
    r = (1 - E) / ep_sin

    c = _E * p_cos**2
    c2 = c * c

    d = x / (n * K0)
    d2 = d * d
    d3 = d2 * d
    d4 = d3 * d
    d5 = d4 * d
    d6 = d5 * d

    latitude = (
        p_rad - (p_tan / r) * (d2 / 2 - d4 / 24 *
                               (5 + 3 * p_tan2 + 10 * c - 4 * c2 - 9 * E_P2)) +
        d6 / 720 *
        (61 + 90 * p_tan2 + 298 * c + 45 * p_tan4 - 252 * E_P2 - 3 * c2))

    longitude = (
        d - d3 / 6 * (1 + 2 * p_tan2 + c) + d5 / 120 *
        (5 - 2 * c + 28 * p_tan2 - 3 * c2 + 8 * E_P2 + 24 * p_tan4)) / p_cos

    calc_point = points.WGSPoint(
        Decimal(
            math.degrees(longitude) +
            zone_number_to_central_longitude(zone_number)), 0, 0,
        Decimal(math.degrees(latitude)), 0, 0)
    return calc_point
示例#23
0
 def test_deg_to_mgrs(self):
     point = points.WGSPoint(16, 0, 0, 10, 0, 0)
     p1 = self.__degree_to_mgrs(point)
     print(p1.to_string())