杂物,乱七八糟的小东西

1 excel度分秒转十进制

=LEFT(A1,FIND("°",A1)-1)+MID(A1,FIND("°",A1)+1,FIND("′",A1)-FIND("°",A1)-1)/60

2 用shp的某一个元素(code)统计Raster对应区域的某一特征(value)的值

# -*- coding: UTF-8 -*-
import arcpy
import pandas as pd
import os
from dbfread import DBF
def location_count_value(Raster_path, select_feature_path, select_feature_field, \
                         select_feature_code, out_dbf_folder_path, value):
    # 参数示例
    # Raster_folder_path = "E:\SWAT_Model\JinJiang_swat\data\Geo_data\LUCC\d lucc_tif_mask_Reclass"
    # Raster_file_name = "lucc_2005_tea.tif"
    # shp_folder_path = "E:\SWAT_Model\JinJiang_swat\data\Geo_data\\basic_data"
    # shp_file_name = "county.shp"
    # Raster_path = os.path.join(Raster_folder_path, Raster_file_name)
    # select_feature_path = os.path.join(shp_folder_path, shp_file_name)
    # select_feature_field = "AD_CODE"
    # select_feature_code = 350524000000
    # out_dbf_folder_path = "E:\\SWAT_Model\\JinJiang_swat\\data\\Geo_data\\point_source\\city\\a lucc_year"
    # value = 5

    arcpy.MakeRasterLayer_management(Raster_path, "Raster")
    arcpy.MakeFeatureLayer_management(select_feature_path, "shp")
    # arcpy.SelectLayerByAttribute_management ("shp", "NEW_SELECTION",\
    #                                          '\"' + select_feature_field+'\" = ' +  str(select_feature_code ))
    arcpy.SelectLayerByAttribute_management ("shp", "NEW_SELECTION", \
                                             '\"'+select_feature_field+'\" =' +"\'" + str(select_feature_code) + "\'")

    arcpy.sa.ZonalHistogram ("shp", select_feature_field, "Raster", os.path.join(out_dbf_folder_path, \
                                                                                 str(select_feature_code)+"_"+Raster_file_name[0:-4]+".dbf"))

    dbf_path = os.path.join(out_dbf_folder_path, str(select_feature_code)+"_"+Raster_file_name[0:-4]+".dbf")
    if os.path.exists(dbf_path):
        table = DBF(dbf_path, encoding='GBK')
        df = pd.DataFrame(iter(table))

        num= df.loc[df[df[df.columns[-1]]==str(value)].index.tolist()[0], df.columns[0]]
        return num

3 罗列shp文件中的某个字段的所有内容,返回一个列表

# -*- coding: UTF-8 -*-
import arcpy
import os


def list_shp_field_value(shppath, shpfields):
    # shp_folder_path = "E:\SWAT_Model\JinJiang_swat\data\Geo_data\\basic_data"
    # shp_file_name = "county.shp"
    # shppath = os.path.join(shp_folder_path, shp_file_name)
    # shpfields = "AD_CODE"
    
    shp_List = []
    rows = arcpy.SearchCursor(shppath,\
                              fields=shpfields)
    for row in rows:
        shp_List.append(row.getValue(shpfields))  #注意JH为字段名,要求为英文
    return shp_List

print(list_shp_field_value(shppath, shpfields))

4 某年有多少天

def year_days_num(year):
    startDay = str(year)+'-01-01'
    endDay = str(year)+'-12-31'
    year_days_mum = (datetime.datetime.strptime(endDay, "%Y-%m-%d") - datetime.datetime.strptime(startDay, "%Y-%m-%d")).days +1
    return year_days_mum

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值