Skip to content

Commit

Permalink
better extraction
Browse files Browse the repository at this point in the history
  • Loading branch information
draguve committed Nov 8, 2024
1 parent 35fe704 commit 775b61c
Showing 1 changed file with 40 additions and 17 deletions.
57 changes: 40 additions & 17 deletions KMLEdit.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"id": "e2ae65ff-78b8-4c31-b2c9-15878078ba36",
"metadata": {
"ExecuteTime": {
Expand All @@ -24,8 +24,8 @@
"import matplotlib.pyplot as plt\n",
"from shapely.geometry import MultiLineString, LineString\n",
" \n",
"import pyvista as pv\n",
"pv.set_jupyter_backend('client')\n",
"# import pyvista as pv\n",
"# pv.set_jupyter_backend('client')\n",
"\n",
"import py3dep"
]
Expand Down Expand Up @@ -100,10 +100,23 @@
"start_time": "2024-07-02T22:54:16.603135500Z"
}
},
"outputs": [],
"outputs": [
{
"ename": "TypeError",
"evalue": "argument of type 'Placemark' is not iterable",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[7], line 37\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(feature, kml\u001b[38;5;241m.\u001b[39mFolder):\n\u001b[0;32m 36\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m placemark \u001b[38;5;129;01min\u001b[39;00m feature\u001b[38;5;241m.\u001b[39mfeatures():\n\u001b[1;32m---> 37\u001b[0m placemarks_data\u001b[38;5;241m.\u001b[39mappend(\u001b[43mextract_placemark_data\u001b[49m\u001b[43m(\u001b[49m\u001b[43mplacemark\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 38\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(feature, kml\u001b[38;5;241m.\u001b[39mPlacemark):\n\u001b[0;32m 39\u001b[0m placemarks_data\u001b[38;5;241m.\u001b[39mappend(extract_placemark_data(feature))\n",
"Cell \u001b[1;32mIn[7], line 14\u001b[0m, in \u001b[0;36mextract_placemark_data\u001b[1;34m(placemark)\u001b[0m\n\u001b[0;32m 12\u001b[0m data[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m=\u001b[39m ed\u001b[38;5;241m.\u001b[39mvalue\n\u001b[0;32m 13\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m---> 14\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mid\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mplacemark\u001b[49m:\n\u001b[0;32m 15\u001b[0m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mid\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m placemark\u001b[38;5;241m.\u001b[39mid\n\u001b[0;32m 16\u001b[0m data[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mname\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m placemark\u001b[38;5;241m.\u001b[39mname\n",
"\u001b[1;31mTypeError\u001b[0m: argument of type 'Placemark' is not iterable"
]
}
],
"source": [
"# Function to extract Placemark data\n",
"kml_content = open('filtered_nshm23.kml', 'r').read() # kml content\n",
"kml_content = open('filtered_qfaults.kml', 'r').read() # kml content\n",
"filtered_k = kml.KML()\n",
"filtered_k.from_string(bytes(kml_content,encoding='utf8'))\n",
"def extract_placemark_data(placemark):\n",
Expand All @@ -114,6 +127,10 @@
" data['id'] = ed.value\n",
" elif ed.name == 'FaultName':\n",
" data['name'] = ed.value\n",
" else:\n",
" if placemark.id is not None:\n",
" data[\"id\"] = placemark.id\n",
" data[\"name\"] = placemark.name\n",
"\n",
" coordinates = []\n",
" for geom in placemark.geometry.geoms:\n",
Expand All @@ -139,7 +156,7 @@
" placemarks_data.append(extract_placemark_data(feature))\n",
"\n",
"# Write to CSV\n",
"with open('output.csv', mode='w', newline='') as file:\n",
"with open('filtered_qfaults.csv', mode='w', newline='') as file:\n",
" writer = csv.writer(file)\n",
" writer.writerow(['id', 'name',\"to_join\", 'multilinestring'])\n",
"\n",
Expand All @@ -163,10 +180,10 @@
"evalue": "name 'k' is not defined",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mNameError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[19], line 1\u001B[0m\n\u001B[1;32m----> 1\u001B[0m docs \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[43mk\u001B[49m\u001B[38;5;241m.\u001B[39mfeatures())\n\u001B[0;32m 2\u001B[0m folders\u001B[38;5;241m=\u001B[39m[]\n\u001B[0;32m 3\u001B[0m \u001B[38;5;28;01mfor\u001B[39;00m d \u001B[38;5;129;01min\u001B[39;00m docs:\n",
"\u001B[1;31mNameError\u001B[0m: name 'k' is not defined"
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[19], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m docs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\u001b[43mk\u001b[49m\u001b[38;5;241m.\u001b[39mfeatures())\n\u001b[0;32m 2\u001b[0m folders\u001b[38;5;241m=\u001b[39m[]\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m d \u001b[38;5;129;01min\u001b[39;00m docs:\n",
"\u001b[1;31mNameError\u001b[0m: name 'k' is not defined"
]
}
],
Expand Down Expand Up @@ -229,7 +246,10 @@
"execution_count": 7,
"id": "a50525ba0560d9bc",
"metadata": {
"collapsed": false
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [],
"source": [
Expand All @@ -242,18 +262,21 @@
"id": "38dd48f3a6be9683",
"metadata": {
"collapsed": false,
"is_executing": true
"is_executing": true,
"jupyter": {
"outputs_hidden": false
}
},
"outputs": [
{
"ename": "NameError",
"evalue": "name 'records' is not defined",
"output_type": "error",
"traceback": [
"\u001B[1;31m---------------------------------------------------------------------------\u001B[0m",
"\u001B[1;31mNameError\u001B[0m Traceback (most recent call last)",
"Cell \u001B[1;32mIn[14], line 3\u001B[0m\n\u001B[0;32m 1\u001B[0m \u001B[38;5;66;03m#generate filtered files\u001B[39;00m\n\u001B[0;32m 2\u001B[0m filter_name \u001B[38;5;241m=\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mCalaveras fault zone\u001B[39m\u001B[38;5;124m\"\u001B[39m\n\u001B[1;32m----> 3\u001B[0m filtered_records \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mfilter\u001B[39m(\u001B[38;5;28;01mlambda\u001B[39;00m record: (record\u001B[38;5;241m.\u001B[39mname \u001B[38;5;241m==\u001B[39m filter_name), \u001B[43mrecords\u001B[49m)) \n\u001B[0;32m 4\u001B[0m filtered_records \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mmap\u001B[39m(get_all_data, filtered_records))\n\u001B[0;32m 5\u001B[0m filtered_records \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mlist\u001B[39m(\u001B[38;5;28mfilter\u001B[39m(\u001B[38;5;28;01mlambda\u001B[39;00m record: (record[\u001B[38;5;241m8\u001B[39m] \u001B[38;5;241m==\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mhistoric\u001B[39m\u001B[38;5;124m\"\u001B[39m), filtered_records)) \n",
"\u001B[1;31mNameError\u001B[0m: name 'records' is not defined"
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[14], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m#generate filtered files\u001b[39;00m\n\u001b[0;32m 2\u001b[0m filter_name \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mCalaveras fault zone\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m----> 3\u001b[0m filtered_records \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mfilter\u001b[39m(\u001b[38;5;28;01mlambda\u001b[39;00m record: (record\u001b[38;5;241m.\u001b[39mname \u001b[38;5;241m==\u001b[39m filter_name), \u001b[43mrecords\u001b[49m)) \n\u001b[0;32m 4\u001b[0m filtered_records \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mmap\u001b[39m(get_all_data, filtered_records))\n\u001b[0;32m 5\u001b[0m filtered_records \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mfilter\u001b[39m(\u001b[38;5;28;01mlambda\u001b[39;00m record: (record[\u001b[38;5;241m8\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mhistoric\u001b[39m\u001b[38;5;124m\"\u001b[39m), filtered_records)) \n",
"\u001b[1;31mNameError\u001b[0m: name 'records' is not defined"
]
}
],
Expand Down Expand Up @@ -299,7 +322,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
"version": "3.12.6"
}
},
"nbformat": 4,
Expand Down

0 comments on commit 775b61c

Please sign in to comment.