python 对废弃航片剔除

1.将pos信息导入cad,删除掉不想要的pos点
2.打开程序,选择剩余pos点,选择原航片文件夹,选择保存文件夹
import win32com.client
import pythoncom
import tkinter as tk
from tkinter import messagebox,filedialog
import os
import shutil

window = tk.Tk()
window.title("航测影像剔除1.0  by: 放放风")
window.geometry('341x100+500+200')  # 290 160为窗口大小,+1000 +10 定义窗口弹出时的默认展示位置

def vtpnt(x, y, z=0):
    """坐标点转化为浮点数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, (x, y, z))


def vtobj(obj):
    """转化为对象数组"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_DISPATCH, obj)


def vtFloat(list):
    """列表转化为浮点数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_R8, list)


def vtInt(list):
    """列表转化为整数"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_I2, list)


def vtVariant(list):
    """列表转化为变体"""
    return win32com.client.VARIANT(pythoncom.VT_ARRAY | pythoncom.VT_VARIANT, list)


def list_format_conversion(old_list, step=2, deduction=None):
    new_list = []
    for counte in range(0, len(old_list), step):
        new_list.append(list(old_list[counte:counte + step])[:deduction])
    return new_list


def mkdir(path):
    folder = os.path.exists(path)
    if not folder:  # 判断是否存在文件夹如果不存在则创建为文件夹
        os.makedirs(path)

class Pic_eliminate:
    def __init__(self):
        self.cad_text = []
        self.file_text = []
    def Select_element(self):
        acad = win32com.client.Dispatch("AutoCAD.Application")
        doc = acad.ActiveDocument
        doc.Utility.Prompt("\n醉后不知天在水\n满船清梦压星河\n")
        mp = doc.ModelSpace  # 模型空间
        tk.messagebox.showinfo('提示', "请在屏幕拾取图元,以Enter键结束")
        try:
            doc.SelectionSets.Item("SS1").Delete()
        except:
            tk.messagebox.showinfo('警告', "Delete selection failed")
        slt = doc.SelectionSets.Add("SS1")
        slt.SelectOnScreen()
        for x in slt:
            if x.ObjectName == "AcDbText":
                self.cad_text.append(x.TextString)
    def file_open(self):

        Save_path = filedialog.askdirectory(title="选择原始影像文件夹")
        Save_path2 = filedialog.askdirectory(title="选择保存文件夹")

        if not Save_path:
            tk.messagebox.showinfo('提示', "请选择文件夹")
            return
        else:
            count = 0
            for files in os.walk( Save_path ):
                if count ==0:
                    count +=1
                else:
                    move_path_3 = files[0].split("\\")
                    move_path_4 = Save_path2 +"/" +  move_path_3[-1]
                    mkdir(move_path_4)
                    for path in files[2]:
                        for name in self.cad_text:
                            if name == path:
                                p = files[0] + "/" + path
                                shutil.copy(p,move_path_4)
            tk.messagebox.showinfo( '提示', "处理成功" )
pic_object = Pic_eliminate()
tk.Button(window, width=20, height=5, text="拾取POS数据", command=pic_object.Select_element).grid(row=0, column=0)
tk.Label(window, width=5).grid(row=0, column=1)
tk.Button(window, width=20, height=5, text="提取影像", command=pic_object.file_open).grid(row=0, column=2)

window.mainloop()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Python中时间序列异常点剔除可以通过以下步骤实现: 1. 导入相关的库:首先需要导入pandas库用于处理时间序列数据,以及numpy库用于数值计算。 2. 读取时间序列数据:使用pandas的read_csv()函数读取时间序列数据,并将其转换为pandas的DataFrame格式。 3. 观察数据:通过打印DataFrame的头部和尾部,以及使用describe()函数统计基本信息来观察数据,寻找异常点的特征。 4. 检测异常点:根据数据的特征,可以使用不同的方法来检测异常点。常见的方法包括基于统计的方法(如均值、标准差、百分位数等),以及基于机器学习的方法(如孤立森林、异常因子分析等)。选择适合自己数据特点的方法。 5. 剔除异常点:根据异常点的检测结果,可以将异常点从时间序列数据中剔除。可以选择删除异常点所在的行,或者将异常点替换为缺失值或其他合理的值。 6. 可视化结果:剔除异常点后,可以使用matplotlib库将剔除后的时间序列数据可视化,以便进一步检查数据质量。 7. 模型评估:对剔除异常点后的时间序列数据进行模型评估,检查异常点的剔除是否对模型的性能有所提升。 总结起来,Python中的时间序列异常点剔除可以通过数据观察、异常点检测、剔除异常点等步骤来实现。根据数据的特点选择合适的方法,并通过可视化和模型评估来检查处理结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值