(計算網(wǎng)站已改版,本教程已失效)利用橄欖石磷支、尖晶石谒撼、斜方輝石成分批量計算結(jié)晶溫度、氧逸度(Calculate T, log10 fO2 at specified Pressure)

一雾狈、單組數(shù)據(jù)計算

melts.ofm-research.org 這個網(wǎng)站提供了在線計算廓潜,按照提示及要求輸入數(shù)據(jù)即可∩崎唬可實現(xiàn)單組數(shù)據(jù)的計算辩蛋。缺點也很明顯,就是手動輸入總讓人感覺不舒服移盆。

image.png

二悼院、多組數(shù)據(jù)批量計算

2.1 數(shù)據(jù)準(zhǔn)備

按如下格式整理所需數(shù)據(jù)為EXCEL文件:

image.png

詳細(xì)數(shù)據(jù)示例:https://pan.baidu.com/s/1EOX6kSA3NBfpKL6Qwbhz1w
提取碼:1111

表格說明:

1.表頭為各組分標(biāo)識,分別以a/b/c開頭咒循,a為橄欖石組分据途,b為尖晶石組分钮呀,c為斜方輝石組分。\color{red} {表頭順序可更改昨凡,內(nèi)容不能改變爽醋,代碼里已經(jīng)寫死,如改變便脊,會報錯}蚂四。
2.第一列為數(shù)據(jù)點編號。

2.2 實現(xiàn)過程(該代碼包含F(xiàn)e-Ti oxide geothermobarometer (鈦鐵氧化物溫度計) 批量計算溫度和氧逸度)
# -*- coding: utf-8 -*-
"""
Copyright (C) 2021, Inc. All Rights Reserved 
@Time    :2021/9/23 23:18
@Wechart :Pandas120
@Email   :137243562@qq.com
@File    :feti_geothermal.py
@Version :1.1
"""
import requests as rq
from lxml import etree
import pandas as pd
import easygui,time

###定義一個函數(shù)哪痰,并返回Fe-Ti oxide geothermobarometer計算結(jié)果
def getresultfeti(data):
    SiO2sp = data["aSiO2"]
    SiO2rh = data["bSiO2"]
    TiO2sp = data["aTiO2"]
    TiO2rh = data["bTiO2"]
    Al2O3sp = data["aAl2O3"]
    Al2O3rh = data["bAl2O3"]
    Fe2O3sp = data["aFe2O3"]
    Fe2O3rh = data["bFe2O3"]
    V2O3sp = data["aV2O3"]
    V2O3rh = data["bV2O3"]
    Cr2O3sp = data["aCr2O3"]
    Cr2O3rh = data["bCr2O3"]
    FeOsp = data["aFeO"]
    FeOrh = data["bFeO"]
    MnOsp = data["aMnO"]
    MnOrh = data["bMnO"]
    MgOsp = data["aMgO"]
    MgOrh = data["bMgO"]
    CaOsp = data["aCaO"]
    CaOrh = data["bCaO"]
    ZnOsp = data["aZnO"]
    ZnOrh = data["bZnO"]
    NiOsp = data["aNiO"]
    NiOrh = data["bNiO"]
    url = f"http://melts.ofm-research.org/CORBA_CTserver/OxideGeothrm/OxideGeothrmResult.php?SiO2sp={SiO2sp}&SiO2rh={SiO2rh}&TiO2sp={TiO2sp}&TiO2rh={TiO2rh}&Al2O3sp={Al2O3sp}&Al2O3rh={Al2O3rh}&Fe2O3sp={Fe2O3sp}&Fe2O3rh={Fe2O3rh}&V2O3sp={V2O3sp}&V2O3rh={V2O3rh}&Cr2O3sp={Cr2O3sp}&Cr2O3rh={Cr2O3rh}&FeOsp={FeOsp}&FeOrh={FeOrh}&MnOsp={MnOsp}&MnOrh={MnOrh}&MgOsp={MgOsp}&MgOrh={MgOrh}&CaOsp={CaOsp}&CaOrh={CaOrh}&ZnOsp={ZnOsp}&ZnOrh={ZnOrh}&NiOsp={NiOsp}&NiOrh={NiOrh}&Submit1=Calculate+T+and+fO2"
    while True:
        res = rq.get(url)
        if res.status_code == 200:
            html = etree.HTML(res.text)
            tfeti = float(html.xpath("/html/body/div/div/div/table[2]/tr[1]/td[2]/div/text()")[0])
            log10f02 = float(html.xpath("/html/body/div/div/div/table[2]/tr[2]/td[2]/div/text()")[0])
            tfemg = float(html.xpath("/html/body/div/div/div/table[2]/tr[3]/td[2]/div/text()")[0])
            ati02 = float(html.xpath("/html/body/div/div/div/table[2]/tr[4]/td[2]/div/text()")[0])
            return tfeti, log10f02, tfemg, ati02

        else:
            print("連接失斔煸!正在重試I谓堋跷睦!")

###定義一個函數(shù),并返回 olivine, spinel and orthopyroxene 橄欖石肋演、尖晶石抑诸、斜方輝石 計算結(jié)果
def getresultolv_spn_opx(data):
    sio21 = data["aSiO2"]
    tio21 = data["aTiO2"]
    al2o31 = data["aAl2O3"]
    fe2o31 = data["aFe2O3"]
    cr2o31 = data["aCr2O3"]
    feo1 = data["aFeO"]
    mno1 = data["aMnO"]
    mgo1 = data["aMgO"]
    nio1 = data["aNiO"]
    coo1 = data["aCoO"]
    cao1 = data["aCaO"]
    na2o1 = data["aNa2O"]
    sio22 = data["bSiO2"]
    tio22 = data["bTiO2"]
    al2o32 = data["bAl2O3"]
    fe2o32 = data["bFe2O3"]
    cr2o32 = data["bCr2O3"]
    feo2 = data["bFeO"]
    mno2 = data["bMnO"]
    mgo2 = data["bMgO"]
    nio2 = data["bNiO"]
    coo2 = data["bCoO"]
    cao2 = data["bCaO"]
    na2o2 = data["bNa2O"]
    sio23 = data["cSiO2"]
    tio23 = data["cTiO2"]
    al2o33 = data["cAl2O3"]
    fe2o33 = data["cFe2O3"]
    cr2o33 = data["cCr2O3"]
    feo3 = data["cFeO"]
    mno3 = data["cMnO"]
    mgo3 = data["cMgO"]
    nio3 = data["cNiO"]
    coo3 = data["cCoO"]
    cao3 = data["cCaO"]
    na2o3 = data["cNa2O"]
    url = f"http://melts.ofm-research.org/CORBA_CTserver/Olv_Spn_Opx/Olv_Spn_Opx_stub.php?t=0.0&p=0.0001" \
          f"&sio21={sio21}&tio21={tio21}4&al2o31={al2o31}8&fe2o31={fe2o31}&cr2o31={cr2o31}&feo1={feo1}&mno1={mno1}&mgo1={mgo1}&nio1={nio1}&coo1={coo1}&cao1={cao1}&na2o1={na2o1}" \
          f"&sio22={sio22}&tio22={tio22}&al2o32={al2o32}&fe2o32={fe2o32}&cr2o32={cr2o32}&feo2={feo2}&mno2={mno2}&mgo2={mgo2}&nio2={nio2}&coo2={coo2}&cao2={cao2}&na2o2={na2o2}" \
          f"&sio23={sio23}&tio23={tio23}&al2o33={al2o33}&fe2o33={fe2o33}&cr2o33={cr2o33}&feo3={feo3}&mno3={mno3}&mgo3={mgo3}&nio3={nio3}&coo3={coo3}&cao3={cao3}&na2o3={na2o3}&keepOpxFe2O3=no"
    while True:
        res = rq.get(url)
        if res.status_code == 200:
            return res.text.replace(" ","").split(",")
        else:
            print("連接失敗爹殊!正在重試M上纭!")

###主函數(shù)入口
if __name__ == "__main__":
    file = easygui.fileopenbox(filetypes=["*.xls", "*.xlsx"], default="*.xlsx")
    data = pd.read_excel(file, sheet_name=0)
    while True:
        print("Choose a option to calculate:")
        print("1.calculate the Fe-Ti Oxide.")
        print("2.calculate the Olv_Spn_Opx.")
        chose = input("Please input the 1 or 2:")
        if chose == "1":
            tfetilist = []
            log10f02list = []
            tfemglist = []
            ati02list = []
            for i in range(data.shape[0]):
                tfeti, log10f02, tfemg, ati02=getresultfeti(data.loc[i, :])
                tfetilist.append(tfeti)
                log10f02list.append(log10f02)
                tfemglist.append(tfemg)
                ati02list.append(ati02)
            data["tfeti"] = tfetilist
            data["log10f02"] = log10f02list
            data["tfemg"] = tfemglist
            data["ati02"] = ati02list
            data.to_excel("result_Fe_Ti_Oxide.xlsx",sheet_name="res",index=False)
            print("Finished!! The result has been saved to result_Fe_Ti_Oxide.xlsx !")
            time.sleep(3)
            break
        elif chose=="2":
            tlist = []
            log10f02list = []
            for i in range(data.shape[0]):
                t, log10f02=getresultolv_spn_opx(data.loc[i, :])
                tlist.append(float(t))
                log10f02list.append(float(log10f02))
            data["t"] = tlist
            data["log10f02"] = log10f02list
            data.to_excel("result_olv_spn_opx.xlsx",sheet_name="res",index=False)
            print("Finished!! The result has been saved to result_olv_spn_opx.xlsx !")
            time.sleep(3)
            break
        else:
            print("Input error,please reinput!!")
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末梗夸,一起剝皮案震驚了整個濱河市层玲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌反症,老刑警劉巖辛块,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異铅碍,居然都是意外死亡润绵,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門该酗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來授药,“玉大人士嚎,你說我怎么就攤上這事呜魄。” “怎么了莱衩?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵爵嗅,是天一觀的道長。 經(jīng)常有香客問我笨蚁,道長睹晒,這世上最難降的妖魔是什么趟庄? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮伪很,結(jié)果婚禮上戚啥,老公的妹妹穿的比我還像新娘。我一直安慰自己锉试,他們只是感情好猫十,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呆盖,像睡著了一般拖云。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上应又,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天宙项,我揣著相機與錄音,去河邊找鬼株扛。 笑死尤筐,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洞就。 我是一名探鬼主播叔磷,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼奖磁!你這毒婦竟也來了改基?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤咖为,失蹤者是張志新(化名)和其女友劉穎秕狰,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躁染,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鸣哀,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吞彤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片我衬。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饰恕,靈堂內(nèi)的尸體忽然破棺而出挠羔,到底是詐尸還是另有隱情,我是刑警寧澤埋嵌,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布破加,位于F島的核電站,受9級特大地震影響雹嗦,放射性物質(zhì)發(fā)生泄漏范舀。R本人自食惡果不足惜合是,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望锭环。 院中可真熱鬧聪全,春花似錦、人聲如沸辅辩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽汽久。三九已至鹤竭,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間景醇,已是汗流浹背臀稚。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留三痰,地道東北人吧寺。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像散劫,于是被迫代替她去往敵國和親稚机。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容