Skip to content

Commit

Permalink
To NSHM to CSV
Browse files Browse the repository at this point in the history
  • Loading branch information
draguve committed Jul 2, 2024
1 parent fed3bda commit 82e9bc8
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 21 deletions.
97 changes: 76 additions & 21 deletions MeshGen.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
"cells": [
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 1,
"id": "e2ae65ff-78b8-4c31-b2c9-15878078ba36",
"metadata": {
"ExecuteTime": {
"end_time": "2024-05-08T23:25:59.616825100Z",
"start_time": "2024-05-08T23:25:59.437777100Z"
"end_time": "2024-07-02T22:31:52.396368300Z",
"start_time": "2024-07-02T22:31:47.664612600Z"
}
},
"outputs": [],
Expand All @@ -22,6 +22,7 @@
"from tqdm import tqdm\n",
"import numpy as np\n",
"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",
Expand Down Expand Up @@ -91,7 +92,64 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 7,
"id": "abda2a7b-268d-4e18-aacb-a893be25beaf",
"metadata": {
"ExecuteTime": {
"end_time": "2024-07-02T22:54:16.610034600Z",
"start_time": "2024-07-02T22:54:16.603135500Z"
}
},
"outputs": [],
"source": [
"# Function to extract Placemark data\n",
"kml_content = open('filtered_nshm23.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",
" data = {}\n",
" if placemark.extended_data is not None:\n",
" for ed in placemark.extended_data.elements:\n",
" if ed.name == 'FaultID':\n",
" data['id'] = ed.value\n",
" elif ed.name == 'FaultName':\n",
" data['name'] = ed.value\n",
"\n",
" coordinates = []\n",
" for geom in placemark.geometry.geoms:\n",
" if isinstance(geom, MultiLineString):\n",
" for linestring in geom.geoms:\n",
" coordinates.extend(linestring.coords[:])\n",
" else:\n",
" coordinates.extend(geom.coords[:])\n",
" formatted = []\n",
" for coord in coordinates:\n",
" formatted.append(f\"{coord[0]} {coord[1]} {coord[2]}\")\n",
" data['multilinestring'] = f\"MULTILINESTRING(({\",\".join(formatted)}))\"\n",
" return data\n",
"\n",
"# Extract data\n",
"placemarks_data = []\n",
"for document in filtered_k.features():\n",
" for feature in document.features():\n",
" if isinstance(feature, kml.Folder):\n",
" for placemark in feature.features():\n",
" placemarks_data.append(extract_placemark_data(placemark))\n",
" elif isinstance(feature, kml.Placemark):\n",
" placemarks_data.append(extract_placemark_data(feature))\n",
"\n",
"# Write to CSV\n",
"with open('output.csv', mode='w', newline='') as file:\n",
" writer = csv.writer(file)\n",
" writer.writerow(['id', 'name',\"to_join\", 'multilinestring'])\n",
"\n",
" for data in placemarks_data:\n",
" writer.writerow([data['id'], data['name'],\"\", data['multilinestring']])"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "e2f12cc6-32cf-4f5b-8ff8-eb67fde45cfd",
"metadata": {
"ExecuteTime": {
Expand All @@ -101,11 +159,14 @@
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2107\n",
"112527\n"
"ename": "NameError",
"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"
]
}
],
Expand Down Expand Up @@ -168,10 +229,7 @@
"execution_count": 7,
"id": "a50525ba0560d9bc",
"metadata": {
"collapsed": false,
"jupyter": {
"outputs_hidden": false
}
"collapsed": false
},
"outputs": [],
"source": [
Expand All @@ -184,21 +242,18 @@
"id": "38dd48f3a6be9683",
"metadata": {
"collapsed": false,
"is_executing": true,
"jupyter": {
"outputs_hidden": false
}
"is_executing": true
},
"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
1 change: 1 addition & 0 deletions filtered_nshm23.kml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd"><Document><Placemark><ExtendedData><Data name="FaultID"><value>923</value></Data><Data name="FaultName"><value>Calaveras (north)</value></Data><Data name="HighRate"><value>8.000000000000000</value></Data><Data name="LowRate"><value>3.000000000000000</value></Data><Data name="ParentName"><value>Calaveras</value></Data><Data name="PrefRate"><value>6.000000000000000</value></Data><Data name="StdDev"><value>1.250000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>14</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-121.81311,37.45749000000001,0 -121.83762,37.50955000000002,0 -121.84935,37.5338,0 -121.86568,37.57927999999997,0 -121.87531,37.60052,0 -121.90295,37.63998999999998,0 -121.92263,37.67380999999999,0 -121.94399000000001,37.72283999999998,0 -121.95864000000002,37.7457,0 -121.97246000000001,37.76093,0 -121.9823,37.782610000000005,0 -121.99340000000001,37.80262999999998,0 -122.00324000000002,37.812559999999976,0 -122.01643,37.822479999999985,0 -122.04177,37.84828,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>902</value></Data><Data name="FaultName"><value>Hayward (north)</value></Data><Data name="HighRate"><value>11.000000000000000</value></Data><Data name="LowRate"><value>7.000000000000000</value></Data><Data name="ParentName"><value>Hayward-Rodgers Creek</value></Data><Data name="PrefRate"><value>9.000000000000000</value></Data><Data name="StdDev"><value>1.000000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>9</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-122.17796000000001,37.78233,0 -122.21612,37.83213000000001,0 -122.29734,37.92932999999999,0 -122.34579999999998,37.978120000000004,0 -122.40525999999998,38.061589999999995,0 -122.42285000000001,38.08961000000002,0 -122.46305,38.183479999999975,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>903</value></Data><Data name="FaultName"><value>Rodgers Creek - Healdsburg</value></Data><Data name="HighRate"><value>11.000000000000000</value></Data><Data name="LowRate"><value>6.000000000000000</value></Data><Data name="ParentName"><value>Hayward-Rodgers Creek</value></Data><Data name="PrefRate"><value>9.000000000000000</value></Data><Data name="StdDev"><value>1.250000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>10</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-122.46347,38.183809999999994,0 -122.47687,38.19499999999999,0 -122.48639,38.20684,0 -122.54279000000001,38.27001999999999,0 -122.59036,38.30878000000001,0 -122.63916,38.363020000000006,0 -122.67316000000001,38.40905000000001,0 -122.70563,38.46776,0 -122.76006000000001,38.522760000000034,0 -122.813563,38.580228000000005,0 -122.86716000000001,38.637670000000014,0 -122.93165400000001,38.70011299999999,0 -122.99627000000001,38.76252000000002,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>920</value></Data><Data name="FaultName"><value>Calaveras (south, Paicines)</value></Data><Data name="HighRate"><value>15.000000000000000</value></Data><Data name="LowRate"><value>5.000000000000000</value></Data><Data name="ParentName"><value>Calaveras</value></Data><Data name="PrefRate"><value>10.000000000000000</value></Data><Data name="StdDev"><value>2.500000000000000</value></Data><Data name="SubRegion"><value>3</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>11</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-120.97386,36.42582999999996,0 -121.06315,36.522409999999994,0 -121.12877000000002,36.578,0 -121.18663100000002,36.63038500000002,0 -121.24457999999998,36.682739999999995,0 -121.29544,36.73871,0 -121.35454,36.78514999999997,0 -121.3961,36.83948000000001,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>921</value></Data><Data name="FaultName"><value>Calaveras (south)</value></Data><Data name="HighRate"><value>20.000000000000000</value></Data><Data name="LowRate"><value>10.000000000000000</value></Data><Data name="ParentName"><value>Calaveras</value></Data><Data name="PrefRate"><value>15.000000000000000</value></Data><Data name="StdDev"><value>2.500000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>12</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-121.39613,36.83948000000001,0 -121.42202,36.89392000000004,0 -121.45737,36.96640999999998,0 -121.50637,37.057079999999985,0 -121.50876,37.060959999999994,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>922</value></Data><Data name="FaultName"><value>Calaveras (center)</value></Data><Data name="HighRate"><value>20.000000000000000</value></Data><Data name="LowRate"><value>9.000000000000000</value></Data><Data name="ParentName"><value>Calaveras</value></Data><Data name="PrefRate"><value>15.000000000000000</value></Data><Data name="StdDev"><value>2.750000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>13</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-121.50876,37.060959999999994,0 -121.52982,37.09515999999998,0 -121.56039,37.13356999999999,0 -121.60227000000002,37.172950000000014,0 -121.65839,37.23398999999999,0 -121.68351,37.29831,0 -121.69481999999999,37.31696999999998,0 -121.73963000000002,37.37589,0 -121.75847,37.397850000000005,0 -121.79574,37.43110999999999,0 -121.80914,37.449070000000006,0 -121.81311,37.45749000000001,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>900</value></Data><Data name="FaultName"><value>Hayward (south, extension)</value></Data><Data name="HighRate"><value>5.010000000000000</value></Data><Data name="LowRate"><value>5.000000000000000</value></Data><Data name="ParentName"><value>Hayward-Rodgers Creek</value></Data><Data name="PrefRate"><value>5.005000000000000</value></Data><Data name="StdDev"><value>0.005000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>3</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>7</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-121.66376,37.23402000000003,0 -121.72471000000002,37.25782000000001,0 -121.73979000000001,37.30292,0 -121.77509,37.34573,0 -121.80236,37.397130000000004,0</coordinates></LineString></MultiGeometry></Placemark><Placemark><ExtendedData><Data name="FaultID"><value>901</value></Data><Data name="FaultName"><value>Hayward (south)</value></Data><Data name="HighRate"><value>11.000000000000000</value></Data><Data name="LowRate"><value>7.000000000000000</value></Data><Data name="ParentName"><value>Hayward-Rodgers Creek</value></Data><Data name="PrefRate"><value>9.000000000000000</value></Data><Data name="StdDev"><value>1.000000000000000</value></Data><Data name="SubRegion"><value>14</value></Data><Data name="Treat"><value>1</value></Data><Data name="geotype"><value>MultiLineString</value></Data><Data name="index"><value>8</value></Data></ExtendedData><visibility>1</visibility><MultiGeometry><LineString><coordinates>-121.80236,37.397130000000004,0 -121.91453000000001,37.48312,0 -121.959293,37.53903499999997,0 -122.00413,37.594930000000005,0 -122.05088,37.63995,0 -122.09226,37.68094999999998,0 -122.17796000000001,37.78233,0</coordinates></LineString></MultiGeometry></Placemark></Document></kml>

0 comments on commit 82e9bc8

Please sign in to comment.