瀏覽分類:

蟒蛇 Python

[Py] Median of Two Sorted Arrays

Median of Two Sorted Arrays (leetcode.com)

2085 / 2085 test cases passed.
Status: Accepted
Runtime: 120 ms (19.98%)
Memory Usage: 14.1 MB

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        n1n = len(nums1)
        n2n = len(nums2)
        if n1n == 0: # if num1 is empty
            if (n2n % 2) == 1: # Odd 
                return nums2[n2n//2]
            else:
                return (nums2[n2n//2]+nums2[(n2n//2)-1])/2
        elif n2n == 0 :# if num2 is empty
            if (n1n % 2) == 1: # Odd 
                return nums1[n1n//2]
            else:
                return (nums1[n1n//2]+nums1[(n1n//2)-1])/2
        else: # both are not empty
            Arr=[]
            n1i=0 #cursor1 for num1
            n2i=0 #cursor2 for num2
            while(n1i<n1n or n2i<n2n):
                if n1i >= n1n and n2i<n2n: #num1 is all added to new array
                    Arr.append(nums2[n2i])
                    n2i+=1
                    continue
                elif n1i<n1n and n2i>=n2n: #num2 is all added to new array
                    Arr.append(nums1[n1i])
                    n1i+=1
                    continue
                else: # both nums1 and nums2 have elements
                    if nums1[n1i] <= nums2[n2i]:
                        Arr.append(nums1[n1i])
                        n1i+=1
                        continue
                    else:
                        Arr.append(nums2[n2i])
                        n2i+=1
                        continue
            # After all elements added to new array, find the median.
            An = len(Arr)
            if (An%2)==1: #Odd
                return Arr[An//2]
            else:
                return (Arr[An//2]+Arr[(An//2)-1])/2

[Py] Improve the the geotag of the photo from flight record (DJI Spark)

The location difference between geotags from the photos (red dot) and flight record from DJI Go 4 app (blue solid line). DJI Spark is an entry-class drone with affordable price; however, after several field trip, I found that the geotag of the photo marked by the drone is actually not precise enough for building a digital model. Two figure shows the difference can reach 10 to 20 meters. I wrote a small python script to substitute the GPS tag of the photo.
(中文在下面)
Symbol:
Red Dots: original geotag of the photo.
Green Diamond: modified geotag of the photo
Blue Line: Flight Record (GPS track)
Gray Line: Comparison between old and new location of specific photo.
 
大疆的Spark是比較負擔的起的空拍機,家父很久以前買了一台被我搶來用了。在野外飛過幾次以後,因為要建立數值模型或是正射影像,發現像片的地理座標精度很差,網路上也有這樣的說法。於是研究了一下,寫了個小小的程式用時間對比飛行記錄軌跡,並替換像片的GPS座標。下面兩張圖可以看出原像片與軌跡記錄的差距大概是十到二十公尺。
 
圖例:
紅圓點:原記錄。
綠方點:對比軌跡後新位置。
藍線:飛行軌跡記錄。
灰線:同張像片新舊位置。

[Py] 從 GPX 中取出經緯度與高程記錄資料

今天剛上地震地質學的途中,腦袋突然想到一件有趣的事情:如果可以用手機的 GPS 紀錄來做數值高程模型的話,說不定滿有趣的。現在都有各種不同的手機 APP 可以記錄軌跡資料,也有公開的格式可以使用,下面我們將用 Python 將 GPX 檔案中的高程資料讀出。

閱讀更多

[Py] Python 製作簡易 Mac 辭典 – 以國家教育研究院專有名詞網站資料為例(下)

「國家教育研究院雙語詞彙、學術名詞暨辭書資訊網」在讀文章、寫作業的時候是常常會用到的網站,他是一本涵蓋不同領域大量的專有名詞的好用網站。本文將介紹如何將從網站下載的試算表檔案包裝成 Mac 辭典並匯入之。下篇將會用 Python 產生必要的檔案供 DDK 編譯成 Mac 自有的字典格式。

閱讀更多

[Py] 使用 Python 製作簡易 Mac 辭典 – 以國家教育研究院專有名詞網站資料為例(上)

「國家教育研究院雙語詞彙、學術名詞暨辭書資訊網」在讀文章、寫作業的時候是常常會用到的網站,他是一本涵蓋不同領域大量的專有名詞的好用網站。本文將介紹如何將從網站下載的試算表檔案包裝成 Mac 辭典並匯入之。上篇將會介紹使用 Apple 提供的 Dictionary Develop Tool (下簡稱 DDK)。

閱讀更多