<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
      行走的蓑衣客

      導航

       

       

       

      import shapely.geometry as geometry
      
      from shapely.geometry import Polygon
      import numpy as np
      # 數據格式轉換
      from osgeo import gdal_array, ogr
      from numpy import *
      
      # 提取邊界點
      def eage_polygon(wkt):
          strwkt = str(wkt)
          pixels = []
          if strwkt[0] == "M":
              point = strwkt[14:-2].split(",")
              for k in range(0, len(point)):
                  zb = point[k].split(" ")
      
                  if zb[0][0] == "(" and zb[0][1] == "(":
                      pixels.append([ float(zb[0][2:]), float(zb[1])])
                  elif zb[0][0] == "(" and zb[0][1] != "(":
                      pixels.append( [float(zb[0][1:]), float(zb[1])])
                  elif zb[1][-1] == ")" and zb[1][-2] != ")":
                      pixels.append( [float(zb[0]), float(zb[1][:-1])])
                  elif zb[1][-1] == ")" and zb[1][-2] == ")":
                      pixels.append( [float(zb[0]), float(zb[1][:-2])])
                  else:
                      pixels.append( [float(zb[0]), float(zb[1])])
          if strwkt[0] == "P":
              point = strwkt[9:-1].split(",")
      
              for k in range(0, len(point)):
                  zb = point[k].split(" ")
      
                  if zb[0][0] == "(":
                      pixels.append( (float(zb[0][1:]), float(zb[1])))
      
                  elif zb[1][-1] == ")":
                      pixels.append(( float(zb[0]), float(zb[1][:-1])))
                  else:
                      pixels.append( (float(zb[0]), float(zb[1])))
          return pixels
      
      # 判斷點是否在多邊形內,并剔除粗差點
      def isinpolygon(flat_points,geometry_polygon):
          in_shape_points=[]
          geo=eage_polygon(geometry_polygon)
          for pt in flat_points:
              # make a point and see if it's in the polygon
              if geometry.Point(pt[:2]).within(Polygon(geo)):
                  in_shape_points.append(pt[2])
      
          '''
          四分法粗差點剔除
          '''
          in_shape_points=sort(in_shape_points)
          n=len(in_shape_points)
          q1=in_shape_points[int((n-1)/4+1)]
          q3 = in_shape_points[int(3*(n - 1) / 4 + 1)]
          vmin=q1-1.5*(q3-q1)
          vmax=q3+1.5*(q3-q1)
          in_shape_points=np.array(in_shape_points)
          aaa=in_shape_points[in_shape_points>vmin]
          bbb=aaa[aaa<vmax]
          return bbb
      
      
      # 按半徑裁剪散點
      def radius_cut(point_zone,R,xyzData):
          dist = xyzData - np.array([point_zone[0], point_zone[1], 0])
          x = (dist.T[0] * dist.T[0] + dist.T[1] * dist.T[1]).T
          return xyzData[np.where(x < R)]
      
      # 按shp圖版統計散點信息
      def part_statistic_message(shp_path, point_txt):
          #讀取點云
          xyzData = []
          with open(point_txt, "r") as f:
              for line in f.readlines():
                  line = line.strip('\n')  # 去掉列表中每一個元素的換行符
                  a = line.split(",")
                  xyzData.append([float(a[0]), float(a[1]), float(a[2])])
          xyzData = np.array(xyzData)
      
          driver = ogr.GetDriverByName("ESRI Shapefile")
          dataSource = driver.Open(shp_path, 1)
          layer = dataSource.GetLayer()
          new_field = ogr.FieldDefn("build_H1", ogr.OFTReal)
          layer.CreateField(new_field)
          t = int(layer.GetFeatureCount())
          for i in range(0, t):
              try:
                  feat = layer.GetFeature(i)
                  geom = feat.GetGeometryRef()
                  minX = geom.GetEnvelope()[0]
                  minY = geom.GetEnvelope()[2]
                  maxX = geom.GetEnvelope()[1]
                  maxY = geom.GetEnvelope()[3]
                  geometry_polygon=feat.geometry()
                  point_zone=[(minX+maxX)/2,(minY+maxY)/2]#X=L,Y=B
                  R=((maxX-minX)/2)*((maxX-minX)/2)+((maxY-minY)/2)*((maxY-minY)/2)
                  flat_points=radius_cut(point_zone,R,xyzData)
                  in_points=isinpolygon(flat_points,geometry_polygon)
                  print("均值",np.mean(in_points))
                  feat.SetField("build_H1", mean(in_points))
                  layer.SetFeature(feat)
              except:
                  pass
      
      
      
      if __name__ == '__main__':
          shp_path=r"E:\area.shp"
          point_txt=r"E:\point.txt"
          part_statistic_message(shp_path,point_txt)

       

      posted on 2023-04-25 20:30  行走的蓑衣客  閱讀(67)  評論(0)    收藏  舉報
       
      主站蜘蛛池模板: 天天爽夜夜爽人人爽曰| 一本色道婷婷久久欧美| 口爆少妇在线视频免费观看| 久久久国产成人一区二区| 日韩精品国产另类专区| 一本久道久久综合久久鬼色| 国产精品不卡区一区二| 精品无码成人片一区二区| 夜夜添狠狠添高潮出水| 人人爽人人模人人人爽人人爱| 午夜福利激情一区二区三区| 欧美国产精品不卡在线观看| 国产美女午夜福利视频| 色综合久久蜜芽国产精品| 亚洲精品一区三区三区在| 成人免费无码大片A毛片抽搐色欲 成人啪精品视频网站午夜 | 另类专区一区二区三区| 日本一区二区三区后入式| 狠狠色丁香婷婷综合尤物| 成人精品区| 未满十八18禁止免费无码网站| 精品精品国产国产自在线| 亚洲欧美一区二区成人片| 日韩女同在线二区三区| 日韩精品无码免费专区午夜不卡| 国产在线精品欧美日韩电影| 日本一卡2卡3卡4卡无卡免费| 札达县| 亚洲一品道一区二区三区| 无码一区中文字幕| 国产精品一区二区久久精品无码| 精品精品国产国产自在线| 免费一本色道久久一区| 中文字幕乱偷无码av先锋蜜桃| 久久无码中文字幕免费影院蜜桃| 日本高清视频网站www| 亚洲一二三四区中文字幕| 国产成人无码A区在线观看视频 | 中文字幕理伦午夜福利片| 野外做受三级视频| 亚洲精品熟女一区二区|