跳到主要內容
版本:v0.7.1

ℹ️ 關於

信息

「我找不到我夢想中的跑車,所以我自己造了一輛。」 —— 費迪南德·保時捷

GeoChemistry Nexus 是我計畫進行超長期維護的第一個專案——我打算至少在未來五年內持續更新它。

有趣的是,它最初被命名為 Geo-Thermometer。起初,我只是想開發一個與地質溫度計相關的基礎程式,以便於計算和繪圖。然而,隨著專案的進展,特別是在繪圖模組完成後,我突然意識到可以實現一個更宏大的目標。因此,該專案在概念和功能上都得到了擴展,從 Geo-Thermometer 演變為 GeoChemistry Nexus。

為什麼需要 GeoChemistry Nexus

在地球化學與岩石學研究中,成圖計算往往分散在不同工具裡:資料整理靠試算表軟體,底圖繪製靠通用向量工具,溫壓計計算又要另開指令碼或老舊程式。流程割裂、格式不統一、重現成本高,是不少研究者日常面對的摩擦。

另一方面,許多常用的判別圖解、溫壓計及相關計算工具 長期缺乏持續更新——新發表的演算法與經典模型的修訂難以及時納入,研究者往往只能沿用停滯多年的舊版本。更現實的問題是:當科研工作者 自行開發 新的演算法或圖解後,往往 缺少便捷、開放的推送管道,成果停留在論文附錄、個人指令碼或小範圍分享中,難以在同領域快速普及與複用。

plot_home_ui

此外,我在研究中也看到了一些不夠嚴謹的做法——例如,有人在繪製地質圖底圖時使用 CorelDRAW 粗略勾勒形狀。雖然視覺上差別不大,但從科學研究的角度來看,這種做法違背了嚴謹的科學精神。

所以我想到:為什麼不自己開發一個工具呢?

一個可以整合大量地質和地球化學圖表模板,支援各種地質溫度計/壓力計計算,並擴展到地球化學計算和當前流行的機器學習功能的工具。如果沒有現成的模板,它提供視覺化繪圖工具以便於建立和分享。輔以現代化的介面設計和多語言支援,它允許研究人員在一個軟體內完成大部分科學繪圖和計算的基礎工作。

GeoChemistry Nexus 希望把這條鏈路收攏到一處——從樣品資料匯入、預處理與校正,到判別圖解繪製、地溫計計算與 CIPW 標準礦物計算,再到 PNG / SVG 等格式匯出,盡量在同一套介面裡完成;同時透過 雲端模板生態社群協作機制,讓圖解與演算法能夠持續迭代、快速觸達更多研究者。

最初的開發想法

巧合的是,我熟悉 C# 和 Python 等程式語言,並且掌握桌面軟體開發技術。因此,在 2024 年 12 月,我開始開發 Demo。在最初的技術選型階段,我認真考慮過:什麼語言和架構最能實現這一目標?

我的第一個想法是 Python——它可以讓我快速原型化,這對開發者來說是個好消息。然而,從使用者的角度來看,它有致命的缺陷:首先,執行效率低(雖然資料量小時影響不大,但仍有效能差距);其次,它帶來了巨大的安裝包。我曾經用 Python 重構了一個最初用 WPF 編寫的簡單程式。即使打包在一個全新的虛擬環境中,成品也有數百 MB,而 .NET 打包的程式只有十幾 MB——差距巨大。強迫使用者為簡單的功能忍受數百 MB 甚至 GB 的安裝和複雜的設定並不是最佳選擇

然後我考慮了 Web 開發。優點顯而易見——無需安裝,即開即用。但問題在於:一方面,我對 Web 技術的掌握不夠全面;另一方面,伺服器的長期高昂成本超出了我個人的維護能力。因此,我最終將重心轉回了用戶端開發。

plot_home_ui

用戶端開發有許多技術方案,但與基於 C++ 的 QT 相比,我更熟悉 .NET。結合 .NET 的高執行效率和 Windows 的普及性,我最終選擇 .NET 作為主要開發平台。最初,我也考慮使用 Avalonia 來實現對 Windows、Linux 和 MacOS 的跨平台支援,但在開發過程中,我發現一些專案相依性與 Avalonia 不相容,導致遷移成本非常高。以我個人的力量,很難在早期階段重構這些模組。因此,至少在現階段,我的工作仍然集中在 Windows 平台上,跨平台版本可能會在未來的某一天實現。

聯絡我

如果你對軟體開發感興趣並願意與我合作,或者希望提供建議和回饋、圖表模板、演算法支援,甚至進行商業合作,請隨時透過 maxwelllei@qq.com 聯絡我。

如果你在使用軟體時發現任何不足或問題,請隨時提供回饋。由於軟體功能日益增加且複雜,測試很難涵蓋所有情況,可能會有遺漏或不準確之處。我將盡力修正和優化,為你提供更穩定可靠的使用者體驗。

plot_home_ui