资源简介
实现了道格拉斯普克算法的Python源代码,用于处理数据压缩
代码片段和文件信息
# -*- coding=utf-8 -*-
import gpxpy
import gpxpy.gpx
import math
from pyproj import Proj
#定义一个点类
class cPoint:
x=0.0
y=0.0
index=0
def __init__(selfxyindex):
self.x=x
self.y=y
self.index=index
#定义道格拉斯普克算法类
class Douglas:
cPoints=[] #存储点的列表
D=1 #在道格拉斯普克算法中需要自定义设置的阈值
def __init__(selfcPoints):
self.cPoints=cPoints
def compress(selfp1p2):
oPoints=[]
swichvalue=False
#判断是否需要进行抽稀算法
#直线一般式方程的3个系数
A=(p1.y-p2.y)/math.sqrt(math.pow(p1.y-p2.y2)+math.pow(p1.x-p2.x2))
B=(p2.x-p1.x)/math.sqrt(math.pow(p1.y-p2.y2)+math.pow(p1.x-p2.x2))
C=(p1.x*p2.y-p2.x*p1.y)/math.sqrt(math.pow(p1.y-p2.y2)+math.pow(p1.x-p2.x2))
m=self.cPoints.index(p1)
n=self.cPoints.index(p2)
#print m
#print n
distance=[]
middle=None
if(n==m+1): #判断起点和终点之间是否有点
return
#计算中间点到直线的距离
for i in range(m+1n):
d=abs(A*self.cPoints[i].x+B*self.cPoints[i].y+C)/math.sqrt(math.pow(A2)+math.pow(B2))
distance.append(d)
dmax=max(distance)
#print distance
if dmax>self.D:
swichvalue=True
else:
swichvalue=False
#for i in range(09):
#print self.cPoints[i].x
if(swichvalue==False):
for j in range(m+1n):
#del self.cPoints[j]
self.cPoints[j].x=0
else:
for h in range(m+1n):
if(abs(A*self.cPoints[h].x+B*self.cPoints[h].y+C)/math.sqrt(math.pow(A2)+math.pow(B2))==dmax):
middle=self.cPoints[h]
self.compress(p1middle)
self.compress(middlep2)
#for i in range(0len(self.cPoints)):
#if self.cPoints[i].x!=0:
#oPoints.append(self.cPoints[i])
return oPoints
def __init__(selfmpoin
- 上一篇:数据压缩DP算法源代码
- 下一篇:IEXPath.rar
相关资源
- 数据压缩DP算法源代码
- Python 产生任意形状的封闭图形,并将
- python实现决策树分类算法
- ID3决策树python代码
- python 12306 查询余票代码
- 机器学习实战python2SVM 训练数据
- PEP8中文版PythonCodingRule.pdf
- python爬虫抓取百度贴吧中邮箱地址
- python获取新浪A股实时股票数据并实时
- 文本分类算法LDA
- python Django websocket 实时消息推送
- python serial模块
- mod_wsgi.so全版本
- Python 标准库 中文版
- 改进的SIR模型评估k个重要点算法(
-
gameob
jects-0.0.3 for python3 - opencv-python的dll
- 《Python标准库》中文版
- 使用Python操作摄像头[Windows]
- python的简单测试代码
- 贝叶斯方法预测的demo(Python版本)
- 天眼查抓取脚本tianyancha.py
- 逻辑回归 python代码+训练数据
- python3实现多线程破解tomcat简单密码
- scipy-0.18.1-cp27-27m-win_amd64.whl
- python模拟登录带验证码的网站demo
- 加州理工大学Python OpenGL教程
- 传智播客python基础班/就业班课件
- python人脸识别、人体识别、耳朵眼睛
- 算法基础第五版 Foundation Of Algorithms
评论
共有 条评论