湖原始点 我试图删除重复的点,因为我读到可能会引起警告,但问题仍然存在。我的目标是产生一个不像严格遵循我观点的锯齿形模式的凹形船体,而是要描述虚构边界的外部凹陷。
这是我的代码:
# Read CSV Data
print("Parsing .csv file...", end=" ", flush=True)
filepath = f'output/{argv[1]}'
with open(filepath, "r") as archive:
data = list(csv.reader(archive, delimiter=","))[1:] # Skip header
lat = []
lon = []
z = []
for entry in data:
lat.append(float(entry[9])) # Keep raw latitude
lon.append(float(entry[10])) # Keep raw longitude
z.append(float(entry[1]) / 1000) # Convert depth to meters
df = pd.DataFrame({'lon': lon, 'lat': lat, 'z': z})
df = df.drop_duplicates(subset=['lon', 'lat'], keep='first')
print("Done!")
print("Exporting points to .xyz file...", end=" ", flush=True)
with open(f"output/{name}.xyz", "w") as f: #export to .xyz
f.write("LONGITUDE_(deg) LATITUDE_(deg) DEPTH_(m)\n")
for lon, lat, z in zip(df['lon'], df['lat'], df['z']):
f.write(f"{lon} {lat} {z}\n")
print("Done!")
print("Computing concave hull for fence boundary...", end=" ", flush=True)
points = np.column_stack((df['lon'], df['lat']))
alpha_opt = 0.01
concave_hull = alphashape.alphashape(points, alpha_opt)
hull_coords = np.array(concave_hull.exterior.coords)
hull_path = path.Path(hull_coords)
if isinstance(concave_hull, Polygon):
print("Done!")
else:
print("Something went wrong.")
exit(1)
我发现,从重复或接近重复点开始,我发现大坐标值也会导致此警告。尝试将坐标与下降重复和接近重复值结合在一起。这可能会解决您的问题。