张世豪 2 ヶ月 前
コミット
58e68f4f97
2 ファイル変更16 行追加15 行削除
  1. 10 9
      public.py
  2. 6 6
      rongzhong.py

+ 10 - 9
public.py

@@ -24,6 +24,7 @@ def soil_bulk_density(arr): #arr为计算过的数组
     tRTypeTarget= [] # 定义一个数组存放土壤利用类型存疑的数据指标名称
     try:
         for i in arr['相对极差(%)']:
+            # TODO 此处土地利用类型应从原样品编码提取7-8位两位数组,01代表耕地,02代表园地,03代表林地,04代表草地
             if i > 15 and arr.loc[arr['相对极差(%)'] == i, '土地利用类型'].iloc[0] == '耕地园地':
                 tRTypeList.append('存疑:耕地园地相对极差>15%。')
                 tRTypeTarget.append('耕地园地极差。')
@@ -93,10 +94,10 @@ def soil_bulk_density(arr): #arr为计算过的数组
                 soilList.append('') # 除所有情况外 还有空值
 
         # 比较和原有数据是否一致
-        arr['土壤类型(判断)'] = soilList
+        arr['土壤质地(判断)'] = soilList
         for index, row in arr.iterrows():
-            if (row['土壤类型(判断)'] != row['土壤质地']) and (not pd.isna(row['土壤质地'])):
-                soilContent.append('存疑:土壤质地不一致')
+            if (row['土壤质地(判断)'] != row['土壤质地']) and (not pd.isna(row['土壤质地'])):
+                soilContent.append('存疑:土壤质地填报与判断不一致')
                 soilContentTarget.append('土壤质地。')
             else:
                 soilContent.append('')
@@ -118,7 +119,7 @@ def soil_bulk_density(arr): #arr为计算过的数组
     # print('soilList--', soilList, len(soilList))
     pdData = pd.DataFrame({
         '审核结果': pd.Series(shenHeList) + pd.Series(tRTypeList) + pd.Series(plusShenHeList) + pd.Series(soilContent) + pd.Series(xSLErr),
-        '土壤类型(判断)': soilList,
+        '土壤质地(判断)': soilList,
         '异常指标': pd.Series(shenHeTarget) + pd.Series(tRTypeTarget) + pd.Series(plusShenHeTarget) + pd.Series(soilContentTarget) + pd.Series(xSLTarget),
     })
     return pdData
@@ -397,9 +398,9 @@ def cation_value(arr):
                 exchangeableNa.append('')
                 exchangeableNaTar.append('')
             # (8)pH<7.5,阳离子交换量>交换性盐总量>四大离子之和,且盐基饱和度小于100 %;违反则存疑;pH≥7.5,交换性盐总量 = 四大离子之和,盐基饱和度范围在80~120 %;违反则存疑;
-            if ((not pd.isna(row['pH']) and row['pH']<7.5 and row['阳离子交换量Cmol(+)/kg']>row['交换性盐总量Cmol(+)/kg']>row['四大离子之和'] and row['盐基饱和度%']*100 <80 ) or
-                    ((not pd.isna(row['pH']) and row['pH']>=7.5 and row['交换性盐总量Cmol(+)/kg']==row['四大离子之和'] and (row['盐基饱和度%'] <120 and row['盐基饱和度%'] >80 ))) or
-                    ((not pd.isna(row['pH']) and row['pH']<6 and row['盐基饱和度%'] >80))
+            if ((not pd.isna(row['pH']) and row['pH']<7.5 and row['阳离子交换量Cmol(+)/kg']>row['交换性盐总量Cmol(+)/kg']>row['四大离子之和'] and row['盐基饱和度%']*100 <100 ) or
+                ((not pd.isna(row['pH']) and row['pH']>=7.5 and row['交换性盐总量Cmol(+)/kg']==row['四大离子之和'] and (row['盐基饱和度%']*100 <120 and row['盐基饱和度%']*100 >80 )))or
+                ((not pd.isna(row['pH']) and row['pH']<6 and row['盐基饱和度%'] >80))
             ):
                 summaryList.append('')
                 summaryListTar.append('')
@@ -534,8 +535,8 @@ def eight_ion_coun(arr, summary):
 
             #(13)水溶性八大离子换算为g / kg,如水溶性钠离子g / kg = 水溶性钠离子cmol(Na +) / kg×23g / mol×10 - 2; 这里在计算离子和时已转换
             #(14)pH<8,碳酸根基本为0
-            if row['pH'] <8 and not pd.isna(row['水溶性碳酸根离子含量cmol(1/2CO32+)/kg']) and row['水溶性碳酸根离子含量cmol(1/2CO32+)/kg'] == 0:
-                phCoArr.append('水溶性碳酸根:pH<8水溶性碳酸根为0。')
+            if row['pH'] <8 and not pd.isna(row['水溶性碳酸根离子含量cmol(1/2CO32+)/kg']) and row['水溶性碳酸根离子含量cmol(1/2CO32+)/kg'] != 0:
+                phCoArr.append('水溶性碳酸根:pH<8水溶性碳酸根为0。')
                 phCoArrTar.append('水溶性碳酸根。')
             else:
                 phCoArr.append('')

+ 6 - 6
rongzhong.py

@@ -469,14 +469,14 @@ def checkData(fileUrl):
                 soArr = filter_number(simpleData['水溶性SO₄²⁻含量'])
 
                 # 数据转换
-                changeNa = naArr * 23 / 100
-                changK = kArr * 39 / 100
+                changeNa = naArr * 22.9898 / 100
+                changK = kArr * 39.0983 / 100
                 changeCa = caArr * 40 / 100
-                changeMg = mgArr * 24 / 100
-                changeCl = clArr * 35 / 100
+                changeMg = mgArr * 24.305 / 100
+                changeCl = clArr * 35.453 / 100
                 changeCo = coArr * 60 / 100
-                changeCOH = hcoArr * 61 / 100
-                changeSo = soArr * 96 / 100
+                changeCOH = hcoArr * 61.0168 / 100
+                changeSo = soArr * 96.06 / 100
                 eightPlusArr = changeNa + changK + changeCa + changeMg + changeCl + changeCo + changeCOH + changeSo
                 totalCations = changeNa + changK + changeCa + changeMg
                 totalAnions = changeCl + changeCo + changeCOH + changeSo