From 441a06a14a5580c0d53888d6e6db39c44a8089eb Mon Sep 17 00:00:00 2001 From: floriscalkoen Date: Tue, 21 May 2024 22:15:46 +0200 Subject: [PATCH 01/99] helper function to infer data dir --- src/coastseg/common.py | 72 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 63 insertions(+), 9 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 9f5d1e77..0d31ce3c 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -18,13 +18,12 @@ import pandas as pd import requests import shapely -from shapely import geometry from area import area -from google.auth import exceptions as google_auth_exceptions from ipyfilechooser import FileChooser -from ipywidgets import HBox, HTML, Layout, ToggleButton, VBox +from ipywidgets import HTML, HBox, Layout, ToggleButton, VBox from PIL import Image from requests.exceptions import SSLError +from shapely import geometry from shapely.geometry import LineString, MultiPoint, Point, Polygon from tqdm.auto import tqdm @@ -1307,7 +1306,7 @@ def get_response(url, stream=True): # attempt a standard request then try with an ssl certificate try: response = requests.get(url, stream=stream) - except SSLError as e: + except SSLError: cert_path = get_cert_path_from_config() if cert_path: # if an ssl file was provided use it response = requests.get(url, stream=stream, verify=cert_path) @@ -1914,10 +1913,10 @@ def save_transects( drop_intersection_pts, "raw") # save the raw transect time series which contains the columns ['dates', 'x', 'y', 'transect_id', 'cross_distance','shore_x','shore_y'] to file - filepath = os.path.join(save_location, f"raw_transect_time_series_merged.csv") + filepath = os.path.join(save_location, "raw_transect_time_series_merged.csv") merged_timeseries_df.to_csv(filepath, sep=",",index=False) - filepath = os.path.join(save_location, f"raw_transect_time_series.csv") + filepath = os.path.join(save_location, "raw_transect_time_series.csv") timeseries_df.to_csv(filepath, sep=",",index=False) # save transect settings to file transect_settings = get_transect_settings(settings) @@ -2778,7 +2777,7 @@ def remove_z_coordinates(geodf: gpd.GeoDataFrame) -> gpd.GeoDataFrame: a new GeoDataFrame is returned with z axis dropped. """ if geodf.empty: - logger.warning(f"Empty GeoDataFrame has no z-axis") + logger.warning("Empty GeoDataFrame has no z-axis") return geodf # if any row has a z coordinate then remove the z_coordinate @@ -3266,13 +3265,13 @@ def were_rois_downloaded(roi_settings: dict, roi_ids: list) -> bool: is_downloaded = all_sitenames_exist and all_filepaths_exist # print correct message depending on whether ROIs were downloaded if is_downloaded: - logger.info(f"Located previously downloaded ROI data.") + logger.info("Located previously downloaded ROI data.") elif is_downloaded == False: print( "Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" ) logger.info( - f"Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" + "Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" ) return is_downloaded @@ -3388,3 +3387,58 @@ def rescale_array(dat, mn, mx): m = min(dat.flatten()) M = max(dat.flatten()) return (mx - mn) * (dat - m) / (M - m) + mn + + + +import logging +import pathlib +from sysconfig import get_python_version + + +def is_interactive() -> bool: + """ + Check if the code is running in a Jupyter Notebook environment. + """ + try: + shell = get_python_version().__class__.__name__ + if shell == "ZMQInteractiveShell": + return True # Jupyter Notebook or JupyterLab + elif shell == "TerminalInteractiveShell": + return False # Terminal or IPython cognsole + else: + return False # Other interactive shells + except NameError: + return False # Not in an interactive shell + + +def get_base_dir(repo_name="CoastSeg") -> pathlib.Path: + """ + Get the project directory path. + + Returns: + A `pathlib.Path` object representing the project directory path. + """ + + def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: + root = cwd.root + proj_dir = cwd + while proj_dir.name != proj_name: + proj_dir = proj_dir.parent + if str(proj_dir) == root: + msg = "Reached root depth - cannot resolve project path." + raise ValueError(msg) + + return proj_dir + + cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) + + proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + return proj_dir + + +if __name__ == "__main__": + + base_dir = get_base_dir() + data_dir = base_dir / "data" + print("done") + \ No newline at end of file From fdcc7373fd2bb1790b0426fce1258c1fe1e44ef4 Mon Sep 17 00:00:00 2001 From: Floris Calkoen <44444001+FlorisCalkoen@users.noreply.github.com> Date: Tue, 21 May 2024 22:26:53 +0200 Subject: [PATCH 02/99] helper function to infer data dir --- src/coastseg/common.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 0d31ce3c..72bc4bf0 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -3440,5 +3440,5 @@ def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: base_dir = get_base_dir() data_dir = base_dir / "data" - print("done") - \ No newline at end of file + print(data_dir) + From caddd631783eb4b646ee2fed6df9ae3f5d1a6195 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 23 May 2024 16:02:28 -0700 Subject: [PATCH 03/99] #173 fix the reamining bad transects in region 29 --- .../transects_bounding_boxes.csv | 46 + .../Transects_grid_region_29.geojson | 2733 ++++++----------- 2 files changed, 955 insertions(+), 1824 deletions(-) diff --git a/src/coastseg/bounding_boxes/transects_bounding_boxes.csv b/src/coastseg/bounding_boxes/transects_bounding_boxes.csv index 545a4a51..fc86ca91 100644 --- a/src/coastseg/bounding_boxes/transects_bounding_boxes.csv +++ b/src/coastseg/bounding_boxes/transects_bounding_boxes.csv @@ -1,4 +1,50 @@ minx,miny,maxx,maxy,filename +-150.1830065197472,69.96416260460134,-143.62176458429434,70.565987902,end_0.geojson +130.4183946635686,30.351503842271626,130.9917449545533,30.565987902,end_100.geojson +119.77477515018732,-19.96863184358668,139.7363185997073,-10.969570133654182,end_102.geojson +119.85964972808478,-37.195822695560665,139.75593959177013,-31.465868520287373,end_103.geojson +139.78932742381224,34.90277421845265,150.50626847141635,46.19469054257408,end_106.geojson +139.85115411910755,-29.431239696021972,153.63719980124932,-10.073173507712685,end_109.geojson +139.756260844,-43.62530996491454,153.37170264388013,-29.434286085968342,end_110.geojson +166.71711819932267,-46.78015548448678,178.53592281529248,-34.41439700122462,end_117.geojson +-120.24268251428369,30.566643622060322,-116.02970605563728,34.46683807232662,end_15.geojson +-116.0461673756166,16.994577171305092,-100.24417235135758,30.565749380764306,end_16.geojson +-160.243739156,19.99021073410251,-155.8278264595395,22.229991499979114,end_2.geojson +-81.45628572821009,30.56618865424693,-80.243739156,32.537169677049064,end_22.geojson +-100.243739156,14.536708708508899,-80.243739156,30.56573748066073,end_23.geojson +-81.32928234165136,-6.569840104405848,-80.24438311661953,-3.509851279022357,end_24.geojson +-80.2436909964003,17.675647175283626,-64.56514435586769,27.37079199135045,end_30.geojson +-80.243739156,-9.434012098,-78.38994580806128,-6.566944913055762,end_31.geojson +-78.39369205279003,-29.347306960580326,-70.05954666202014,-9.434137028165424,end_32.geojson +-75.59554403059731,-48.8415813630532,-71.27599580354216,-29.475616822771862,end_33.geojson +-75.596120604163,-55.177254083444836,-70.65608297959562,-49.63999503929621,end_34.geojson +-124.7432177234117,34.06149996824617,-120.28012542079207,48.51282869105912,end_8.geojson +113.09614376956984,-29.434012098,119.68055368997832,-19.95120578379228,end_95.geojson +114.95470794180217,-35.11789940270483,119.7222088795369,-29.43440492305738,end_96.geojson +130.12129587934479,30.566023330515744,139.6622578579254,35.31760440390647,end_99.geojson +-150.18503973405188,69.95935479204437,-143.62179265090097,70.56109072362393,origin_0.geojson +130.42051770695514,30.353186076990095,130.9890920924923,30.565462061704956,origin_100.geojson +119.77314584797821,-19.97226201662349,139.73279582056995,-10.97253738456834,origin_102.geojson +119.86020002949056,-37.19554029451971,139.756260844,-31.46222710406666,origin_103.geojson +139.79003212029863,34.905138236879,150.50340608873572,46.1961941148959,origin_106.geojson +139.84967915598895,-29.431239695878745,153.637958040057,-10.072828341245492,origin_109.geojson +139.75643077489434,-43.62526531783239,153.3700295518761,-29.435912272362938,origin_110.geojson +166.71969381942867,-46.77893278464787,178.53453734185288,-34.41642086344116,origin_117.geojson +-120.24228517484524,30.566234309121608,-116.02554315045587,34.47042065389804,origin_15.geojson +-116.04209059389828,16.99547631835281,-100.243739156,30.565340069913645,origin_16.geojson +-160.2410249073828,19.98966535849902,-155.82400859068568,22.228285015845774,origin_2.geojson +-81.4595441524013,30.56606657234657,-80.24433724705302,32.53831972040241,origin_22.geojson +-100.24344517897873,14.53942047665741,-80.24376852197545,30.56560102979148,origin_23.geojson +-81.32610208086219,-6.568737777334679,-80.243739156,-3.511599886367317,origin_24.geojson +-80.243739156,17.68481806284335,-64.57451802283934,27.370772743332537,origin_30.geojson +-80.24333923882648,-9.433283248408385,-78.38915472061237,-6.566260339636349,origin_31.geojson +-78.3935895544181,-29.345523698492556,-70.05579007012454,-9.434012098,origin_32.geojson +-75.59051579321019,-48.844217702286414,-71.2718555283162,-29.476146988242473,origin_33.geojson +-75.59725222488706,-55.175420576270824,-70.65714773708831,-49.636418854870435,origin_34.geojson +-124.7333792860262,34.05896786119852,-120.27843793179188,48.51014420878072,origin_8.geojson +113.09437196666765,-29.433832705679013,119.68374251165112,-19.95483492609274,origin_95.geojson +114.9561835044463,-35.114600110475614,119.72165035512141,-29.434012098,origin_96.geojson +130.12197616226962,30.565987902,139.65989879403332,35.32053593134126,origin_99.geojson -150.18503973405188,69.95935479204437,-143.62176458429434,70.565987902,Transects_grid_region_0.geojson 130.4183946635686,30.351503842271626,130.9917449545533,30.565987902,Transects_grid_region_100.geojson 119.77314584797821,-19.97226201662349,139.7363185997073,-10.969570133654182,Transects_grid_region_102.geojson diff --git a/src/coastseg/transects/Transects_grid_region_29.geojson b/src/coastseg/transects/Transects_grid_region_29.geojson index 12c1cfce..7646c649 100644 --- a/src/coastseg/transects/Transects_grid_region_29.geojson +++ b/src/coastseg/transects/Transects_grid_region_29.geojson @@ -3646,885 +3646,6 @@ { "type": "Feature", "properties": { "id": "region_29_3076", "slope": 0.0736, "distance": 2.469803207407621e-05, "feature_x": -75.049600556374315, "feature_y": 38.449224691764535, "nearest_x": -75.0496, "nearest_y": 38.4492 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066429352941228, 38.44884549203973 ], [ -75.046955175071147, 38.449284299583681 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3077", "slope": 0.0439, "distance": 1.3230711489163946e-05, "feature_x": -75.04909970195078, "feature_y": 38.449686772646025, "nearest_x": -75.0491, "nearest_y": 38.4497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066445825169865, 38.449295916053792 ], [ -75.046971526350163, 38.449734726384875 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3078", "slope": 0.0437, "distance": 3.0793508067101141e-05, "feature_x": -75.049400693687801, "feature_y": 38.450130785693695, "nearest_x": -75.0494, "nearest_y": 38.4501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066462297607373, 38.449746340030629 ], [ -75.046987877879118, 38.450185153183284 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3079", "slope": 0.0384, "distance": 7.7981610409131763e-06, "feature_x": -75.048999824330153, "feature_y": 38.451492203817878, "nearest_x": -75.049, "nearest_y": 38.4515 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066511716216951, 38.45109761177212 ], [ -75.047036933571846, 38.451536433252649 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3080", "slope": 0.1042, "distance": 2.9467797369209801e-05, "feature_x": -75.049600663823782, "feature_y": 38.451929460319413, "nearest_x": -75.0496, "nearest_y": 38.4519 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06652818949, 38.451548035600055 ], [ -75.047053285881844, 38.45198685990254 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3081", "slope": 0.0331, "distance": 3.9557077779901449e-06, "feature_x": -75.048899910889403, "feature_y": 38.452396045296048, "nearest_x": -75.0489, "nearest_y": 38.4524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066544662972021, 38.451998459425191 ], [ -75.047069638398042, 38.452437286480901 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3081", "slope": 0.0327, "distance": 3.9557077779901449e-06, "feature_x": -75.048899910889403, "feature_y": 38.452396045296048, "nearest_x": -75.0489, "nearest_y": 38.4524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066544662972021, 38.451998459425191 ], [ -75.047069638398042, 38.452437286480901 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3082", "slope": 0.0635, "distance": 3.2501462126266175e-05, "feature_x": -75.049314732163566, "feature_y": 38.452837493214318, "nearest_x": -75.049314, "nearest_y": 38.452805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066561136662941, 38.45244888317869 ], [ -75.047085991164195, 38.452887713022115 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3083", "slope": 0.0344, "distance": 1.133847823819263e-07, "feature_x": -75.048799997445769, "feature_y": 38.45329988664399, "nearest_x": -75.0488, "nearest_y": 38.4533 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066577610606487, 38.452899306894977 ], [ -75.047102344092835, 38.453338139560614 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3084", "slope": 0.0679, "distance": 3.1311618546697584e-05, "feature_x": -75.049393705360103, "feature_y": 38.453737303672675, "nearest_x": -75.049393, "nearest_y": 38.453706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066594084715234, 38.453349730573976 ], [ -75.047118697227731, 38.453788566027605 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3085", "slope": 0.0328, "distance": 1.4760700482339409e-06, "feature_x": -75.048800033251581, "feature_y": 38.45420147569547, "nearest_x": -75.0488, "nearest_y": 38.4542 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066610559032966, 38.453800154250224 ], [ -75.047135050568869, 38.454238992457455 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3085", "slope": 0.0325, "distance": 1.4760700482339409e-06, "feature_x": -75.048800033251581, "feature_y": 38.45420147569547, "nearest_x": -75.0488, "nearest_y": 38.4542 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066610559032966, 38.453800154250224 ], [ -75.047135050568869, 38.454238992457455 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3086", "slope": 0.0717, "distance": 2.6598835538661315e-05, "feature_x": -75.049584599194873, "feature_y": 38.454634592085618, "nearest_x": -75.049584, "nearest_y": 38.454608 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066627033559584, 38.454250577854829 ], [ -75.047151404116221, 38.45468941885018 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3087", "slope": 0.0524, "distance": 1.4399981224669938e-06, "feature_x": -75.048999967561002, "feature_y": 38.455098560367304, "nearest_x": -75.049, "nearest_y": 38.4551 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066643508295201, 38.454701001422251 ], [ -75.047167757913584, 38.455139845240083 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3087", "slope": 0.0498, "distance": 1.4399981224669938e-06, "feature_x": -75.048999967561002, "feature_y": 38.455098560367304, "nearest_x": -75.049, "nearest_y": 38.4551 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066643508295201, 38.454701001422251 ], [ -75.047167757913584, 38.455139845240083 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3088", "slope": 0.0628, "distance": 2.851747699818019e-05, "feature_x": -75.049525642416498, "feature_y": 38.455537510240184, "nearest_x": -75.049525, "nearest_y": 38.455509 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066659983283515, 38.455151424986774 ], [ -75.047184111873491, 38.455590271558528 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3089", "slope": 0.0543, "distance": 1.4919673310491678e-07, "feature_x": -75.049000003360973, "feature_y": 38.456000149158875, "nearest_x": -75.049, "nearest_y": 38.456 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066676458437044, 38.455601848479738 ], [ -75.047200466039627, 38.456040697839825 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3090", "slope": 0.0705, "distance": 2.9309628609564419e-05, "feature_x": -75.049516660261631, "feature_y": 38.456439302190766, "nearest_x": -75.049516, "nearest_y": 38.45641 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066692933799516, 38.456052271935484 ], [ -75.047216820412075, 38.456491124118386 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3091", "slope": 0.0371, "distance": 8.4964281019224128e-06, "feature_x": -75.048700191400116, "feature_y": 38.456908494271978, "nearest_x": -75.0487, "nearest_y": 38.4569 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066709409371001, 38.456502695353947 ], [ -75.047233174990808, 38.456941550325418 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3092", "slope": 0.0581, "distance": 3.5598244767158094e-05, "feature_x": -75.04926380192623, "feature_y": 38.45734658921107, "nearest_x": -75.049263, "nearest_y": 38.457311 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06672588515147, 38.456953118769611 ], [ -75.04724952981951, 38.457391976495323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3093", "slope": 0.0385, "distance": 1.2338079169912387e-05, "feature_x": -75.048600277941532, "feature_y": 38.457812334948159, "nearest_x": -75.0486, "nearest_y": 38.4578 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066742361140925, 38.457403542113674 ], [ -75.047265884810813, 38.457842402628053 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3094", "slope": 0.0291, "distance": 3.4602067693907329e-05, "feature_x": -75.048499220514501, "feature_y": 38.45826540671321, "nearest_x": -75.0485, "nearest_y": 38.4583 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066758837383119, 38.457853965420497 ], [ -75.047282240008442, 38.458292828758054 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3095", "slope": 0.0953, "distance": 1.842077411402018e-06, "feature_x": -75.049299958503269, "feature_y": 38.45869815839005, "nearest_x": -75.0493, "nearest_y": 38.4587 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066775313790615, 38.458304388724493 ], [ -75.047298595412343, 38.458743254816532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3096", "slope": 0.0253, "distance": 3.076060995340124e-05, "feature_x": -75.048399307051397, "feature_y": 38.459169247196115, "nearest_x": -75.0484, "nearest_y": 38.4592 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06679179040708, 38.458754811956894 ], [ -75.047314951022585, 38.45919368083792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3097", "slope": 0.0826, "distance": 2.5337404117701929e-07, "feature_x": -75.049299994292213, "feature_y": 38.459599746690259, "nearest_x": -75.0493, "nearest_y": 38.4596 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066808267232574, 38.459205235152019 ], [ -75.047331306882882, 38.459644106856494 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3098", "slope": 0.0244, "distance": 2.9171963922686905e-05, "feature_x": -75.048399342838806, "feature_y": 38.460070835438998, "nearest_x": -75.0484, "nearest_y": 38.4601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066824744267095, 38.459655658309963 ], [ -75.047347662905736, 38.460094532803581 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3099", "slope": 0.0679, "distance": 3.5878866343176903e-06, "feature_x": -75.04920008082486, "feature_y": 38.460503586976145, "nearest_x": -75.0492, "nearest_y": 38.4605 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066841221554412, 38.460106081465035 ], [ -75.04736401913496, 38.460544958713477 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3100", "slope": 0.024, "distance": 2.7583478967263986e-05, "feature_x": -75.048399378622719, "feature_y": 38.46097242352085, "nearest_x": -75.0484, "nearest_y": 38.461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066857699007031, 38.460556504548535 ], [ -75.04738037557054, 38.46099538458629 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3101", "slope": 0.0773, "distance": 5.1763310327103987e-06, "feature_x": -75.049200116608034, "feature_y": 38.46140517501744, "nearest_x": -75.0492, "nearest_y": 38.4614 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066874176668691, 38.461006927594795 ], [ -75.047396732212448, 38.461445810456333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3102", "slope": 0.0232, "distance": 2.3742374966335102e-05, "feature_x": -75.048299465151715, "feature_y": 38.461876263650105, "nearest_x": -75.0483, "nearest_y": 38.4619 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066890654539421, 38.46145735063822 ], [ -75.047413089060726, 38.46189623625488 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3103", "slope": 0.0568, "distance": 9.0173351674129534e-06, "feature_x": -75.049100203134984, "feature_y": 38.462309015046849, "nearest_x": -75.0491, "nearest_y": 38.4623 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066907132619193, 38.461907773609994 ], [ -75.047429446159086, 38.462346662016259 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3104", "slope": 0.0241, "distance": 2.4406833290222892e-05, "feature_x": -75.048399450183155, "feature_y": 38.462775599360405, "nearest_x": -75.0484, "nearest_y": 38.4628 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066923610951761, 38.462358196544557 ], [ -75.047445803420089, 38.462797087774874 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3105", "slope": 0.0439, "distance": 2.4121824610160623e-05, "feature_x": -75.048500543396486, "feature_y": 38.463224115703241, "nearest_x": -75.0485, "nearest_y": 38.4632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066940089449673, 38.462808619441937 ], [ -75.047462160887491, 38.463247513462008 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3106", "slope": 0.0281, "distance": 2.2818737049559403e-05, "feature_x": -75.048399485958356, "feature_y": 38.463677187053641, "nearest_x": -75.0484, "nearest_y": 38.4637 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066956568156712, 38.46325904233646 ], [ -75.047478518561263, 38.463697939111945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3107", "slope": 0.0738, "distance": 9.9408320651880764e-06, "feature_x": -75.049200223938882, "feature_y": 38.464109938309392, "nearest_x": -75.0492, "nearest_y": 38.4641 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066973047072821, 38.463709465159361 ], [ -75.047494876441405, 38.464148364724771 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3108", "slope": 0.027, "distance": 2.348345640757142e-05, "feature_x": -75.048499470983927, "feature_y": 38.464576522502966, "nearest_x": -75.0485, "nearest_y": 38.4646 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066989526197986, 38.464159887945065 ], [ -75.047511234571729, 38.464598790334833 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3109", "slope": 0.0495, "distance": 1.3781480783858112e-05, "feature_x": -75.049100310457931, "feature_y": 38.465013777983472, "nearest_x": -75.0491, "nearest_y": 38.465 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067006005532321, 38.464610310727885 ], [ -75.047527592864697, 38.4650492158734 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3110", "slope": 0.0283, "distance": 2.1895619708310678e-05, "feature_x": -75.048499506753302, "feature_y": 38.465478109936726, "nearest_x": -75.0485, "nearest_y": 38.4655 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067022485119466, 38.465060733439039 ], [ -75.047543951364048, 38.465499641374805 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3111", "slope": 0.0424, "distance": 2.4380155245018003e-05, "feature_x": -75.048700549216406, "feature_y": 38.465924373968306, "nearest_x": -75.0487, "nearest_y": 38.4659 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067038964871969, 38.465511156113052 ], [ -75.047560310069883, 38.465950066873489 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3112", "slope": 0.0273, "distance": 2.2560601010671217e-05, "feature_x": -75.048599491772947, "feature_y": 38.466377445124181, "nearest_x": -75.0486, "nearest_y": 38.4664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067055444833628, 38.465961578749834 ], [ -75.047576668982103, 38.466400492300572 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3113", "slope": 0.0521, "distance": 1.9209638736094498e-05, "feature_x": -75.049000432739305, "feature_y": 38.466819204763915, "nearest_x": -75.049, "nearest_y": 38.4668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067071925004427, 38.466412001383766 ], [ -75.047593028144462, 38.466850917690543 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3114", "slope": 0.0322, "distance": 2.3225742948858856e-05, "feature_x": -75.048699476789068, "feature_y": 38.467276780151039, "nearest_x": -75.0487, "nearest_y": 38.4673 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067088405384354, 38.466862423946075 ], [ -75.047609387469564, 38.467301343043388 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3115", "slope": 0.0744, "distance": 1.1786297089989569e-05, "feature_x": -75.049400265512318, "feature_y": 38.467711783306086, "nearest_x": -75.0494, "nearest_y": 38.4677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067104886017162, 38.467312846471152 ], [ -75.047625747001135, 38.467751768393491 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3116", "slope": 0.0315, "distance": 2.389098394179825e-05, "feature_x": -75.048799461802901, "feature_y": 38.468176115078869, "nearest_x": -75.0488, "nearest_y": 38.4682 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067121366815414, 38.46776326899333 ], [ -75.047642106739104, 38.468202193672077 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3117", "slope": 0.0741, "distance": 1.1120955179167341e-05, "feature_x": -75.049500250524076, "feature_y": 38.468611118133019, "nearest_x": -75.0495, "nearest_y": 38.4686 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067137847822778, 38.468213691443971 ], [ -75.047658466683572, 38.468652618913495 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3117", "slope": 0.0826, "distance": 1.1120955179167341e-05, "feature_x": -75.049500250524076, "feature_y": 38.468611118133019, "nearest_x": -75.0495, "nearest_y": 38.4686 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067137847822778, 38.468213691443971 ], [ -75.047658466683572, 38.468652618913495 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3118", "slope": 0.0359, "distance": 2.6809079383271888e-05, "feature_x": -75.048999396066151, "feature_y": 38.469073197723951, "nearest_x": -75.049, "nearest_y": 38.4691 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06715432903934, 38.468664113857351 ], [ -75.047674826834523, 38.469103044152121 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3119", "slope": 0.0613, "distance": 1.2708232872095462e-05, "feature_x": -75.049500286281116, "feature_y": 38.469512705007901, "nearest_x": -75.0495, "nearest_y": 38.4695 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067170810465043, 38.469114536233548 ], [ -75.047691187235628, 38.469553469319251 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3120", "slope": 0.0319, "distance": 2.5221891928537478e-05, "feature_x": -75.048999431820945, "feature_y": 38.469974784508629, "nearest_x": -75.049, "nearest_y": 38.47 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067187292143714, 38.469564958606853 ], [ -75.047707547799519, 38.470003894449256 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3121", "slope": 0.0379, "distance": 2.3306240922851483e-05, "feature_x": -75.049100525024855, "feature_y": 38.470423300326495, "nearest_x": -75.0491, "nearest_y": 38.4704 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067203773987814, 38.470015380908556 ], [ -75.047723908569878, 38.470454319542114 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3122", "slope": 0.0321, "distance": 2.8140250459643786e-05, "feature_x": -75.049199366078199, "feature_y": 38.470871866890697, "nearest_x": -75.0492, "nearest_y": 38.4709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067220256041097, 38.470465803172985 ], [ -75.04774026954675, 38.470904744632215 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3123", "slope": 0.0844, "distance": 1.1376927721765827e-05, "feature_x": -75.049700256290649, "feature_y": 38.471311374040596, "nearest_x": -75.0497, "nearest_y": 38.4713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067236738303592, 38.470916225434628 ], [ -75.04775663073012, 38.471355169650806 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3123", "slope": 0.0868, "distance": 1.1376927721765827e-05, "feature_x": -75.049700256290649, "feature_y": 38.471311374040596, "nearest_x": -75.0497, "nearest_y": 38.4713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067236738303592, 38.470916225434628 ], [ -75.04775663073012, 38.471355169650806 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3124", "slope": 0.0402, "distance": 2.4300600065419931e-05, "feature_x": -75.049099452574751, "feature_y": 38.471775705566706, "nearest_x": -75.0491, "nearest_y": 38.4718 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067253220775299, 38.471366647624642 ], [ -75.047772992163715, 38.471805594632158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3125", "slope": 0.0656, "distance": 1.5216539010339744e-05, "feature_x": -75.049600342786562, "feature_y": 38.472215212677504, "nearest_x": -75.0496, "nearest_y": 38.4722 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067269703456176, 38.471817069777444 ], [ -75.047789353760109, 38.472256019610839 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3126", "slope": 0.0464, "distance": 2.4966496893707669e-05, "feature_x": -75.049199437573748, "feature_y": 38.472675039838869, "nearest_x": -75.0492, "nearest_y": 38.4727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067286186390049, 38.472267491892971 ], [ -75.047805715563015, 38.472706444517975 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3127", "slope": 0.0954, "distance": 1.2297821050933765e-05, "feature_x": -75.049800277035985, "feature_y": 38.473112294700229, "nearest_x": -75.0498, "nearest_y": 38.4731 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06730266948945, 38.472717914005671 ], [ -75.047822077572448, 38.473156869387978 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3127", "slope": 0.0825, "distance": 1.2297821050933765e-05, "feature_x": -75.049800277035985, "feature_y": 38.473112294700229, "nearest_x": -75.0498, "nearest_y": 38.4731 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06730266948945, 38.472717914005671 ], [ -75.047822077572448, 38.473156869387978 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3128", "slope": 0.0367, "distance": 2.33798296305844e-05, "feature_x": -75.049199473316861, "feature_y": 38.47357662610348, "nearest_x": -75.0492, "nearest_y": 38.4736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067319152798063, 38.473168336046768 ], [ -75.047838439788407, 38.47360729422082 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3129", "slope": 0.0723, "distance": 1.3884449016289114e-05, "feature_x": -75.049800312778444, "feature_y": 38.474013880925547, "nearest_x": -75.0498, "nearest_y": 38.474 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067335636315875, 38.473618758050598 ], [ -75.04785480225469, 38.474057719050904 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3130", "slope": 0.035, "distance": 2.1793259047361483e-05, "feature_x": -75.049199509057786, "feature_y": 38.474478212271443, "nearest_x": -75.0492, "nearest_y": 38.4745 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067352120042997, 38.474069180051593 ], [ -75.047871164883759, 38.47450814380948 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3131", "slope": 0.0794, "distance": 1.5470919157892159e-05, "feature_x": -75.049800348517323, "feature_y": 38.474915466993089, "nearest_x": -75.0498, "nearest_y": 38.4749 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067368604023073, 38.474519601980973 ], [ -75.047887527719354, 38.474958568530866 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3132", "slope": 0.0407, "distance": 2.4712272937553177e-05, "feature_x": -75.049399443300231, "feature_y": 38.475375293998319, "nearest_x": -75.0494, "nearest_y": 38.4754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067385088168677, 38.474970023873141 ], [ -75.04790389076156, 38.475408993249523 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3133", "slope": 0.0667, "distance": 1.4804561098730957e-05, "feature_x": -75.04990033350623, "feature_y": 38.47581480080413, "nearest_x": -75.0499, "nearest_y": 38.4758 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067401572523551, 38.475420445728084 ], [ -75.047920254010322, 38.475859417896636 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3134", "slope": 0.0424, "distance": 2.5378721712131457e-05, "feature_x": -75.049499428286836, "feature_y": 38.476274627718674, "nearest_x": -75.0495, "nearest_y": 38.4763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06741805708775, 38.475870867580156 ], [ -75.047936617465623, 38.47630984250663 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3135", "slope": 0.0711, "distance": 1.413804571211075e-05, "feature_x": -75.050000318491527, "feature_y": 38.476714134457886, "nearest_x": -75.05, "nearest_y": 38.4767 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067434541861175, 38.476321289360598 ], [ -75.047952981171278, 38.476760267079435 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3135", "slope": 0.0793, "distance": 1.413804571211075e-05, "feature_x": -75.050000318491527, "feature_y": 38.476714134457886, "nearest_x": -75.05, "nearest_y": 38.4767 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067434541861175, 38.476321289360598 ], [ -75.047952981171278, 38.476760267079435 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3136", "slope": 0.044, "distance": 2.6045271454257197e-05, "feature_x": -75.049599413271082, "feature_y": 38.477173961338089, "nearest_x": -75.0496, "nearest_y": 38.4772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067451026887653, 38.476771711103787 ], [ -75.047969345039803, 38.477210691649539 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3137", "slope": 0.062, "distance": 1.3471429602347489e-05, "feature_x": -75.050100303474579, "feature_y": 38.477613468010944, "nearest_x": -75.0501, "nearest_y": 38.4776 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067467512079716, 38.477222132844155 ], [ -75.047985709114883, 38.477661116148035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3137", "slope": 0.0613, "distance": 1.3471429602347489e-05, "feature_x": -75.050100303474579, "feature_y": 38.477613468010944, "nearest_x": -75.0501, "nearest_y": 38.4776 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067467512079716, 38.477222132844155 ], [ -75.047985709114883, 38.477661116148035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3138", "slope": 0.0379, "distance": 2.6711981647195668e-05, "feature_x": -75.049699398251803, "feature_y": 38.478073294797085, "nearest_x": -75.0497, "nearest_y": 38.4781 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067483997481034, 38.477672554512935 ], [ -75.048002073396603, 38.478111540609433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3138", "slope": 0.0442, "distance": 2.6711981647195668e-05, "feature_x": -75.049699398251803, "feature_y": 38.478073294797085, "nearest_x": -75.0497, "nearest_y": 38.4781 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067483997481034, 38.477672554512935 ], [ -75.048002073396603, 38.478111540609433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3139", "slope": 0.0516, "distance": 1.9562863269653898e-05, "feature_x": -75.049900440698124, "feature_y": 38.478519557898771, "nearest_x": -75.0499, "nearest_y": 38.4785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067500483091692, 38.478122976144462 ], [ -75.048018437884949, 38.47856196506806 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3140", "slope": 0.0447, "distance": 2.7378793341093687e-05, "feature_x": -75.049799383230123, "feature_y": 38.478972628154615, "nearest_x": -75.0498, "nearest_y": 38.479 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067516968911661, 38.478573397738778 ], [ -75.04803480262359, 38.479012389455164 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3141", "slope": 0.0523, "distance": 1.4390500027777419e-05, "feature_x": -75.050200324178917, "feature_y": 38.479414386848127, "nearest_x": -75.0502, "nearest_y": 38.4794 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067533454984698, 38.479023819330131 ], [ -75.048051167525159, 38.479462813805114 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3142", "slope": 0.0392, "distance": 2.8045764824847254e-05, "feature_x": -75.049899368204919, "feature_y": 38.479871961352394, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067549941223334, 38.479474240849974 ], [ -75.048067532633354, 38.479913238117923 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3142", "slope": 0.0404, "distance": 2.8045764824847254e-05, "feature_x": -75.049899368204919, "feature_y": 38.479871961352394, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067549941223334, 38.479474240849974 ], [ -75.048067532633354, 38.479913238117923 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3143", "slope": 0.0524, "distance": 1.3723488074157948e-05, "feature_x": -75.050300309153059, "feature_y": 38.480313720005441, "nearest_x": -75.0503, "nearest_y": 38.4803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067566427671309, 38.47992466233255 ], [ -75.048083897948189, 38.480363662427919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3143", "slope": 0.0456, "distance": 1.3723488074157948e-05, "feature_x": -75.050300309153059, "feature_y": 38.480313720005441, "nearest_x": -75.0503, "nearest_y": 38.4803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067566427671309, 38.47992466233255 ], [ -75.048083897948189, 38.480363662427919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3144", "slope": 0.035, "distance": 2.8712835960057015e-05, "feature_x": -75.049999353177441, "feature_y": 38.480771294450548, "nearest_x": -75.05, "nearest_y": 38.4808 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067582914328625, 38.480375083812284 ], [ -75.048100263469678, 38.480814086666456 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3145", "slope": 0.0837, "distance": 8.5508597446096005e-06, "feature_x": -75.050600192627783, "feature_y": 38.481208548689779, "nearest_x": -75.0506, "nearest_y": 38.4812 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067599401195295, 38.480825505220402 ], [ -75.048116629241534, 38.481264510867788 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3146", "slope": 0.0398, "distance": 3.1632770951819926e-05, "feature_x": -75.050199287398939, "feature_y": 38.481668375256554, "nearest_x": -75.0502, "nearest_y": 38.4817 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067615888271334, 38.481275926591302 ], [ -75.048132995176331, 38.4817149350664 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3147", "slope": 0.0452, "distance": 1.2389045982286119e-05, "feature_x": -75.05050027909185, "feature_y": 38.482112385901992, "nearest_x": -75.0505, "nearest_y": 38.4821 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067632375600439, 38.481726347924884 ], [ -75.048149361317783, 38.482165359193459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3147", "slope": 0.0384, "distance": 1.2389045982286119e-05, "feature_x": -75.05050027909185, "feature_y": 38.482112385901992, "nearest_x": -75.0505, "nearest_y": 38.4821 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067632375600439, 38.481726347924884 ], [ -75.048149361317783, 38.482165359193459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3148", "slope": 0.0324, "distance": 3.0047404068593887e-05, "feature_x": -75.050199323112835, "feature_y": 38.48256996022112, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067648863095243, 38.482176769255673 ], [ -75.048165727665918, 38.482615783283386 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3148", "slope": 0.0395, "distance": 3.0047404068593887e-05, "feature_x": -75.050199323112835, "feature_y": 38.48256996022112, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067648863095243, 38.482176769255673 ], [ -75.048165727665918, 38.482615783283386 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3149", "slope": 0.0462, "distance": 1.8479809028721041e-05, "feature_x": -75.050300416300431, "feature_y": 38.483018475119366, "nearest_x": -75.0503, "nearest_y": 38.483 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067665350799388, 38.482627190514854 ], [ -75.048182094220692, 38.483066207336108 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3150", "slope": 0.0604, "distance": 3.2325187722095782e-05, "feature_x": -75.050548271800238, "feature_y": 38.483463683015515, "nearest_x": -75.050549, "nearest_y": 38.483496 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067681838712915, 38.48307761173681 ], [ -75.048198461025947, 38.483516631386102 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3151", "slope": 0.0533, "distance": 1.7812280549280664e-05, "feature_x": -75.05040040126292, "feature_y": 38.483917807760285, "nearest_x": -75.0504, "nearest_y": 38.4839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067698326835895, 38.483528032955867 ], [ -75.048214827994158, 38.483967055364559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3151", "slope": 0.0431, "distance": 1.7812280549280664e-05, "feature_x": -75.05040040126292, "feature_y": 38.483917807760285, "nearest_x": -75.0504, "nearest_y": 38.4839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067698326835895, 38.483528032955867 ], [ -75.048214827994158, 38.483967055364559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3152", "slope": 0.0347, "distance": 2.7878341319077104e-05, "feature_x": -75.050776371975616, "feature_y": 38.484360128733435, "nearest_x": -75.050777, "nearest_y": 38.484388 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067714815211971, 38.483978454103294 ], [ -75.048231195169009, 38.484417479305904 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3153", "slope": 0.045, "distance": 1.2639151037999096e-05, "feature_x": -75.050700284726304, "feature_y": 38.48481263594357, "nearest_x": -75.0507, "nearest_y": 38.4848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067731303753703, 38.484428875213538 ], [ -75.048247562550628, 38.484867903244435 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3154", "slope": 0.0339, "distance": 2.9797491638905398e-05, "feature_x": -75.050399328742046, "feature_y": 38.485270210070148, "nearest_x": -75.0504, "nearest_y": 38.4853 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067747792504861, 38.484879296286472 ], [ -75.048263930138944, 38.485318327111457 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3155", "slope": 0.0866, "distance": 9.7185954762975497e-06, "feature_x": -75.050900218934032, "feature_y": 38.485709716129165, "nearest_x": -75.0509, "nearest_y": 38.4857 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067764281465486, 38.485329717356606 ], [ -75.048280297933943, 38.485768750941354 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3156", "slope": 0.0399, "distance": 2.6606230627205253e-05, "feature_x": -75.050949400632518, "feature_y": 38.486159400521302, "nearest_x": -75.05095, "nearest_y": 38.486186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067780770635466, 38.485780138355139 ], [ -75.04829666597945, 38.486219174734011 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3157", "slope": 0.0617, "distance": 1.1303401932146032e-05, "feature_x": -75.050900254635579, "feature_y": 38.48661130053344, "nearest_x": -75.0509, "nearest_y": 38.4866 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067797260058668, 38.486230559316382 ], [ -75.04831303418797, 38.48666959852396 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3158", "slope": 0.0407, "distance": 2.8880628765377114e-05, "feature_x": -75.05049934939619, "feature_y": 38.48707112670035, "nearest_x": -75.0505, "nearest_y": 38.4871 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067813749647584, 38.486680980274784 ], [ -75.048329402603173, 38.487120022242365 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3158", "slope": 0.0356, "distance": 2.8880628765377114e-05, "feature_x": -75.05049934939619, "feature_y": 38.48707112670035, "nearest_x": -75.0505, "nearest_y": 38.4871 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067813749647584, 38.486680980274784 ], [ -75.048329402603173, 38.487120022242365 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3159", "slope": 0.0485, "distance": 1.2888052689826505e-05, "feature_x": -75.050900290333615, "feature_y": 38.487512884782049, "nearest_x": -75.0509, "nearest_y": 38.4875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067830239445925, 38.487131401161598 ], [ -75.048345771225172, 38.487570445923637 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3159", "slope": 0.0477, "distance": 1.2888052689826505e-05, "feature_x": -75.050900290333615, "feature_y": 38.487512884782049, "nearest_x": -75.0509, "nearest_y": 38.4875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067830239445925, 38.487131401161598 ], [ -75.048345771225172, 38.487570445923637 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3160", "slope": 0.0447, "distance": 2.954874914324834e-05, "feature_x": -75.05059933434498, "feature_y": 38.48797045874953, "nearest_x": -75.0506, "nearest_y": 38.488 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067846729453734, 38.487581822011101 ], [ -75.048362140053925, 38.488020869602124 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3161", "slope": 0.0749, "distance": 9.9671293783407634e-06, "feature_x": -75.051100224533059, "feature_y": 38.488409964599988, "nearest_x": -75.0511, "nearest_y": 38.4884 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067863219671011, 38.488032242823415 ], [ -75.048378509133144, 38.488471293209088 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3162", "slope": 0.0418, "distance": 2.7964290477021172e-05, "feature_x": -75.050599370038498, "feature_y": 38.488872042806108, "nearest_x": -75.0506, "nearest_y": 38.4889 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067879710097756, 38.488482663632873 ], [ -75.048394878375404, 38.488921716778854 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3162", "slope": 0.0384, "distance": 2.7964290477021172e-05, "feature_x": -75.050599370038498, "feature_y": 38.488872042806108, "nearest_x": -75.0506, "nearest_y": 38.4889 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067879710097756, 38.488482663632873 ], [ -75.048394878375404, 38.488921716778854 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3163", "slope": 0.0392, "distance": 1.8309727665809268e-05, "feature_x": -75.050800412469798, "feature_y": 38.489318305081149, "nearest_x": -75.0508, "nearest_y": 38.4893 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067896200777696, 38.4889330843707 ], [ -75.048411247824461, 38.489372140311524 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3164", "slope": 0.0443, "distance": 2.6637866514225444e-05, "feature_x": -75.051143399919084, "feature_y": 38.489761368893461, "nearest_x": -75.051144, "nearest_y": 38.489788 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067912691623405, 38.489383505071288 ], [ -75.048427617480272, 38.489822563841386 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3165", "slope": 0.0477, "distance": 1.3135810781657069e-05, "feature_x": -75.051100295915205, "feature_y": 38.490213132477265, "nearest_x": -75.0511, "nearest_y": 38.4902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067929182678625, 38.489833925769041 ], [ -75.048443987342893, 38.490272987299747 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3165", "slope": 0.0405, "distance": 1.3135810781657069e-05, "feature_x": -75.051100295915205, "feature_y": 38.490213132477265, "nearest_x": -75.0511, "nearest_y": 38.4902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067929182678625, 38.489833925769041 ], [ -75.048443987342893, 38.490272987299747 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3166", "slope": 0.0527, "distance": 2.5630839184955582e-05, "feature_x": -75.051213422604647, "feature_y": 38.49066137566524, "nearest_x": -75.051214, "nearest_y": 38.490687 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067945673943314, 38.490284346395093 ], [ -75.048460357456051, 38.490723410720932 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3167", "slope": 0.0413, "distance": 1.6972705493052479e-05, "feature_x": -75.05100038235048, "feature_y": 38.491116968398273, "nearest_x": -75.051, "nearest_y": 38.4911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067962165417526, 38.490734766983977 ], [ -75.048476727732279, 38.49117383413936 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3168", "slope": 0.0363, "distance": 2.5464377548776072e-05, "feature_x": -75.050699426354385, "feature_y": 38.491574542084635, "nearest_x": -75.0507, "nearest_y": 38.4916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067978657144948, 38.491185187535578 ], [ -75.048493098215303, 38.491624257486208 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3169", "slope": 0.0263, "distance": 2.3062183604028317e-05, "feature_x": -75.050800519530526, "feature_y": 38.492023056331028, "nearest_x": -75.0508, "nearest_y": 38.492 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067995149038211, 38.491635608084366 ], [ -75.048509468905152, 38.492074680795945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3170", "slope": 0.0551, "distance": 2.2555268770647875e-05, "feature_x": -75.051439491888857, "feature_y": 38.492459450455165, "nearest_x": -75.05144, "nearest_y": 38.492482 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068011641140984, 38.492086028561516 ], [ -75.048525839801783, 38.492525104068541 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3171", "slope": 0.0542, "distance": 1.1129651766548453e-05, "feature_x": -75.051400250721969, "feature_y": 38.492911126827352, "nearest_x": -75.0514, "nearest_y": 38.4929 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068028133453254, 38.492536449001427 ], [ -75.04854221090531, 38.492975527338359 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3172", "slope": 0.0322, "distance": 2.4549336476963657e-05, "feature_x": -75.050799446967559, "feature_y": 38.493375456893503, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068044625975133, 38.492986869438475 ], [ -75.048558582259389, 38.493425950536604 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3172", "slope": 0.0282, "distance": 2.4549336476963657e-05, "feature_x": -75.050799446967559, "feature_y": 38.493375456893503, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068044625975133, 38.492986869438475 ], [ -75.048558582259389, 38.493425950536604 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3173", "slope": 0.0604, "distance": 1.2713393986926708e-05, "feature_x": -75.051400286399598, "feature_y": 38.49381271016766, "nearest_x": -75.0514, "nearest_y": 38.4938 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068061118750251, 38.493437289803822 ], [ -75.048574953776537, 38.493876373697731 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3174", "slope": 0.0452, "distance": 2.4837011200683267e-05, "feature_x": -75.051459440486809, "feature_y": 38.494262169291787, "nearest_x": -75.05146, "nearest_y": 38.494287 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068077611691166, 38.493887710132007 ], [ -75.048591325500595, 38.494326796856079 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3175", "slope": 0.0548, "distance": 1.429703010511774e-05, "feature_x": -75.051400322074912, "feature_y": 38.494714293401891, "nearest_x": -75.0514, "nearest_y": 38.4947 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068094104841663, 38.494338130422953 ], [ -75.048607697431493, 38.494777219942847 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3176", "slope": 0.0336, "distance": 2.5887560930151619e-05, "feature_x": -75.050999416820531, "feature_y": 38.495174119008659, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068110598201756, 38.494788550711021 ], [ -75.048624069569215, 38.495227642992511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3176", "slope": 0.0423, "distance": 2.5887560930151619e-05, "feature_x": -75.050999416820531, "feature_y": 38.495174119008659, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068110598201756, 38.494788550711021 ], [ -75.048624069569215, 38.495227642992511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3177", "slope": 0.0771, "distance": 2.2171238034978208e-05, "feature_x": -75.051668500539549, "feature_y": 38.495609834388453, "nearest_x": -75.051669, "nearest_y": 38.495632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068127091771387, 38.495238970927474 ], [ -75.048640441957588, 38.495678066004992 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3178", "slope": 0.0891, "distance": 2.1528671357375574e-05, "feature_x": -75.05171951501481, "feature_y": 38.496059476792063, "nearest_x": -75.05172, "nearest_y": 38.496081 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068143585594342, 38.49568939110668 ], [ -75.04865681450913, 38.496128489014716 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3179", "slope": 0.0525, "distance": 1.52111540777793e-05, "feature_x": -75.051500342667921, "feature_y": 38.496515207293875, "nearest_x": -75.0515, "nearest_y": 38.4965 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068160079583194, 38.496139811282973 ], [ -75.048673187267482, 38.496578911952895 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3180", "slope": 0.0339, "distance": 2.4973566455571275e-05, "feature_x": -75.051099437410116, "feature_y": 38.496975032771196, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068176573781585, 38.4965902313877 ], [ -75.048689560232773, 38.49702933485392 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3180", "slope": 0.0381, "distance": 2.4973566455571275e-05, "feature_x": -75.051099437410116, "feature_y": 38.496975032771196, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068176573781585, 38.4965902313877 ], [ -75.048689560232773, 38.49702933485392 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3181", "slope": 0.0796, "distance": 1.994767193629111e-05, "feature_x": -75.051843550630423, "feature_y": 38.497409057390271, "nearest_x": -75.051844, "nearest_y": 38.497429 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068193068189601, 38.49704065145518 ], [ -75.048705933404975, 38.497479757752146 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3182", "slope": 0.0926, "distance": 1.8846176356377305e-05, "feature_x": -75.051918575444205, "feature_y": 38.497858158606327, "nearest_x": -75.051919, "nearest_y": 38.497877 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068209562807212, 38.497491071485427 ], [ -75.048722306827827, 38.497930180578834 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3183", "slope": 0.0588, "distance": 1.1619267284398367e-05, "feature_x": -75.051800261752163, "feature_y": 38.49831161631861, "nearest_x": -75.0518, "nearest_y": 38.4983 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068226057634462, 38.497941491512776 ], [ -75.048738680413791, 38.498380603368403 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3184", "slope": 0.0743, "distance": 1.9231575780929946e-05, "feature_x": -75.051961566762074, "feature_y": 38.498758773304708, "nearest_x": -75.051962, "nearest_y": 38.498778 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068242552715077, 38.498391911468502 ], [ -75.048755054206708, 38.498831026120804 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3185", "slope": 0.0829, "distance": 7.9094974584138257e-06, "feature_x": -75.051900185861683, "feature_y": 38.499207907313419, "nearest_x": -75.0519, "nearest_y": 38.4992 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068258340040586, 38.498823408333038 ], [ -75.048771428206564, 38.499281448870434 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3186", "slope": 0.0618, "distance": 4.2200025907493198e-06, "feature_x": -75.051899815514588, "feature_y": 38.499595784031904, "nearest_x": -75.0519, "nearest_y": 38.4996 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068261773192418, 38.498879805511962 ], [ -75.048796232923749, 38.499731592870532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3187", "slope": 0.0301, "distance": 1.8612327128093719e-06, "feature_x": -75.051745081367315, "feature_y": 38.500053859453296, "nearest_x": -75.051745, "nearest_y": 38.500052 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068293713482873, 38.499329712258174 ], [ -75.048828052477575, 38.50018150494531 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3188", "slope": 0.0418, "distance": 2.4148144756306506e-06, "feature_x": -75.0517851055682, "feature_y": 38.500503412505815, "nearest_x": -75.051785, "nearest_y": 38.500501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068325654131186, 38.499779618995014 ], [ -75.048859872474026, 38.500631417010808 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3189", "slope": 0.0454, "distance": 2.4437332604096234e-06, "feature_x": -75.051837106832465, "feature_y": 38.500952441396954, "nearest_x": -75.051837, "nearest_y": 38.50095 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068357595224754, 38.500229525653687 ], [ -75.048891692869333, 38.501081328998445 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3190", "slope": 0.0426, "distance": 2.3042082802831088e-06, "feature_x": -75.051870100732842, "feature_y": 38.50140230200536, "nearest_x": -75.05187, "nearest_y": 38.5014 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068389536719906, 38.500679432303066 ], [ -75.04892351366351, 38.501531240942455 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3191", "slope": 0.0463, "distance": 2.4269810143955908e-06, "feature_x": -75.0518971061001, "feature_y": 38.501852424660719, "nearest_x": -75.051897, "nearest_y": 38.50185 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068421478616614, 38.501129338874286 ], [ -75.048955334812888, 38.501981152877335 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3192", "slope": 0.0405, "distance": 2.3246705637005119e-06, "feature_x": -75.051952101627421, "feature_y": 38.502301322448083, "nearest_x": -75.051952, "nearest_y": 38.502299 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068453420914892, 38.501579245401828 ], [ -75.048987156404877, 38.502431064734218 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3193", "slope": 0.0441, "distance": 2.091217205386718e-06, "feature_x": -75.052010091421565, "feature_y": 38.502750089217912, "nearest_x": -75.05201, "nearest_y": 38.502748 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068485363571057, 38.502029151919992 ], [ -75.049018978395807, 38.502880976581892 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3194", "slope": 0.044, "distance": 2.163722049054645e-06, "feature_x": -75.052061094591252, "feature_y": 38.503199161653441, "nearest_x": -75.052061, "nearest_y": 38.503197 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068517306672561, 38.502479058360073 ], [ -75.049050800785679, 38.503330888351705 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3195", "slope": 0.0428, "distance": 2.5859344087567862e-06, "feature_x": -75.052104113049083, "feature_y": 38.503648583462152, "nearest_x": -75.052104, "nearest_y": 38.503646 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068549250175721, 38.50292896475635 ], [ -75.049082623530779, 38.503780800077919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3196", "slope": 0.0492, "distance": 2.439836622023575e-06, "feature_x": -75.052160106662143, "feature_y": 38.504097437504036, "nearest_x": -75.05216, "nearest_y": 38.504095 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068581194080537, 38.503378871143333 ], [ -75.049114446718562, 38.504230711794946 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3197", "slope": 0.0383, "distance": 2.9121601614178702e-06, "feature_x": -75.05217912731068, "feature_y": 38.504547909376015, "nearest_x": -75.052179, "nearest_y": 38.504545 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06861313834321, 38.503828777452163 ], [ -75.049146270305329, 38.504680623433998 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3198", "slope": 0.04, "distance": 2.9845946795990616e-06, "feature_x": -75.052230130477298, "feature_y": 38.504996981741286, "nearest_x": -75.05223, "nearest_y": 38.504994 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068645083051322, 38.504278683751664 ], [ -75.049178094291079, 38.505130535063898 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3199", "slope": 0.0442, "distance": 2.320224655588779e-06, "feature_x": -75.052275101433096, "feature_y": 38.50544631800642, "nearest_x": -75.052275, "nearest_y": 38.505444 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068677028161105, 38.504728589972991 ], [ -75.049209918632087, 38.505580446615845 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3200", "slope": 0.0416, "distance": 2.7487533626955571e-06, "feature_x": -75.052295120167059, "feature_y": 38.505896746125437, "nearest_x": -75.052295, "nearest_y": 38.505894 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068708973672585, 38.50517849615067 ], [ -75.049241743415848, 38.506030358124214 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3201", "slope": 0.0435, "distance": 2.3903852669399086e-06, "feature_x": -75.05233310450032, "feature_y": 38.506346388099956, "nearest_x": -75.052333, "nearest_y": 38.506344 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068740919542037, 38.505628402318919 ], [ -75.049273568598679, 38.506480269623388 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3202", "slope": 0.0427, "distance": 2.4318550337627741e-06, "feature_x": -75.052339106313255, "feature_y": 38.506797429530074, "nearest_x": -75.052339, "nearest_y": 38.506795 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068772865856928, 38.506078308409101 ], [ -75.049305394180521, 38.506930181044652 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3203", "slope": 0.0247, "distance": 1.8905923275777276e-05, "feature_x": -75.051599173490914, "feature_y": 38.507281112151588, "nearest_x": -75.0516, "nearest_y": 38.5073 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068804812573617, 38.506528214489862 ], [ -75.049337220117692, 38.507380092456678 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3204", "slope": 0.0413, "distance": 2.7204427037730228e-06, "feature_x": -75.052392118929433, "feature_y": 38.507697717841843, "nearest_x": -75.052392, "nearest_y": 38.507695 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068836759692005, 38.506978120492562 ], [ -75.049369046497674, 38.507830003790801 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3205", "slope": 0.0396, "distance": 2.6242375517935218e-06, "feature_x": -75.052424114723649, "feature_y": 38.508147621728668, "nearest_x": -75.052424, "nearest_y": 38.508145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068868707168406, 38.507428026451493 ], [ -75.049400873276738, 38.508279915081282 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3206", "slope": 0.0351, "distance": 2.4843240663703172e-06, "feature_x": -75.052457108607058, "feature_y": 38.508597481948946, "nearest_x": -75.052457, "nearest_y": 38.508595 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06890065509036, 38.507877932401094 ], [ -75.049432700454915, 38.508729826362639 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3207", "slope": 0.0381, "distance": 9.3232889245408003e-06, "feature_x": -75.05149959241426, "feature_y": 38.509090685624535, "nearest_x": -75.0515, "nearest_y": 38.5091 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068932603414055, 38.508327838272507 ], [ -75.049464528032161, 38.509179737566001 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3208", "slope": 0.037, "distance": 2.8816518199245395e-05, "feature_x": -75.051801259770301, "feature_y": 38.509528788968375, "nearest_x": -75.0518, "nearest_y": 38.5095 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06896455213959, 38.508777744134555 ], [ -75.04949635596482, 38.50962964876021 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3209", "slope": 0.1259, "distance": 2.470700838847604e-06, "feature_x": -75.052501108011526, "feature_y": 38.509949468338739, "nearest_x": -75.052501, "nearest_y": 38.509947 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068996501223168, 38.509227649918579 ], [ -75.049528184340346, 38.510079559876424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3210", "slope": 0.0334, "distance": 4.4536848870649996e-05, "feature_x": -75.051501947015453, "feature_y": 38.51044449426972, "nearest_x": -75.0515, "nearest_y": 38.5104 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069028450752313, 38.50967755565879 ], [ -75.049560013114998, 38.510529470949066 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3210", "slope": 0.0332, "distance": 4.4536848870649996e-05, "feature_x": -75.051501947015453, "feature_y": 38.51044449426972, "nearest_x": -75.0515, "nearest_y": 38.5104 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069028450752313, 38.50967755565879 ], [ -75.049560013114998, 38.510529470949066 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3211", "slope": 0.0325, "distance": 4.1127306469369226e-06, "feature_x": -75.051499820203929, "feature_y": 38.510895891201301, "nearest_x": -75.0515, "nearest_y": 38.5109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069060400683369, 38.510127461389658 ], [ -75.049591842288905, 38.510979382012529 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3212", "slope": 0.1123, "distance": 2.494114667466408e-06, "feature_x": -75.05256710903511, "feature_y": 38.511300491730182, "nearest_x": -75.052567, "nearest_y": 38.511298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069092351016209, 38.510577367042359 ], [ -75.049623671818154, 38.511429292998031 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3213", "slope": 0.0314, "distance": 1.5076078511333272e-06, "feature_x": -75.051499934091964, "feature_y": 38.511798493833489, "nearest_x": -75.0515, "nearest_y": 38.5118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069124301750961, 38.511027272685745 ], [ -75.049655501790383, 38.51187920397436 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3214", "slope": 0.049, "distance": 3.6632006329575127e-05, "feature_x": -75.051801601440161, "feature_y": 38.512236596984536, "nearest_x": -75.0518, "nearest_y": 38.5122 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069156252843797, 38.511477178250999 ], [ -75.049687332161795, 38.512329114872699 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3215", "slope": 0.0303, "distance": 1.0973784054049749e-06, "feature_x": -75.051500047974059, "feature_y": 38.512701096329266, "nearest_x": -75.0515, "nearest_y": 38.5127 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069188204382286, 38.511927083772505 ], [ -75.049719162932405, 38.512779025727482 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3216", "slope": 0.0925, "distance": 2.0839936130447469e-06, "feature_x": -75.05262709110589, "feature_y": 38.513103082001223, "nearest_x": -75.052627, "nearest_y": 38.513101 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069220156322714, 38.512376989284618 ], [ -75.049750994058527, 38.513228936573057 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3217", "slope": 0.1245, "distance": 2.0813564347090176e-06, "feature_x": -75.052634090990594, "feature_y": 38.513554079366564, "nearest_x": -75.052634, "nearest_y": 38.513552 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06925210866504, 38.512826894718629 ], [ -75.049782825627616, 38.513678847340685 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3218", "slope": 0.0533, "distance": 4.1841804721607731e-05, "feature_x": -75.051801829197075, "feature_y": 38.514041801802122, "nearest_x": -75.0518, "nearest_y": 38.514 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069284061365565, 38.513276800143281 ], [ -75.049814657595959, 38.514128758064722 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3219", "slope": 0.0317, "distance": 6.3071069795898019e-06, "feature_x": -75.051500275727662, "feature_y": 38.514506301077105, "nearest_x": -75.0515, "nearest_y": 38.5145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06931601451177, 38.513726705489809 ], [ -75.049846489963628, 38.514578668779592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3220", "slope": 0.0503, "distance": 4.4446559517329164e-05, "feature_x": -75.051801943069364, "feature_y": 38.51494440406664, "nearest_x": -75.0518, "nearest_y": 38.5149 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069347968059958, 38.514176610792532 ], [ -75.049878322686794, 38.515028579416466 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3221", "slope": 0.1118, "distance": 1.5897280500712483e-06, "feature_x": -75.052673069498113, "feature_y": 38.515357588208197, "nearest_x": -75.052673, "nearest_y": 38.515356 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069379922010143, 38.514626516085947 ], [ -75.049910155853013, 38.515478490044174 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3222", "slope": 0.0307, "distance": 4.8481481406181343e-05, "feature_x": -75.051697880535784, "feature_y": 38.515851564869045, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069411876318512, 38.515076421301217 ], [ -75.049941989418528, 38.515928400593864 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3222", "slope": 0.0307, "distance": 4.8481481406181343e-05, "feature_x": -75.051697880535784, "feature_y": 38.515851564869045, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069411876318512, 38.515076421301217 ], [ -75.049941989418528, 38.515928400593864 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3223", "slope": 0.0323, "distance": 2.7729918035053098e-06, "feature_x": -75.051700121226844, "feature_y": 38.516302770340701, "nearest_x": -75.0517, "nearest_y": 38.5163 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069443831072661, 38.515526326507128 ], [ -75.049973823383368, 38.516378311100055 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3224", "slope": 0.0374, "distance": 4.1505230972144029e-05, "feature_x": -75.051598185516212, "feature_y": 38.516758534449885, "nearest_x": -75.0516, "nearest_y": 38.5168 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069475786228807, 38.515976231634859 ], [ -75.050005657703807, 38.516828221596981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3225", "slope": 0.0334, "distance": 1.0057889617331397e-06, "feature_x": -75.051800043970076, "feature_y": 38.517201004827385, "nearest_x": -75.0518, "nearest_y": 38.5172 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069507741786978, 38.516426136718835 ], [ -75.050037492467325, 38.517278132015981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3226", "slope": 0.1171, "distance": 1.3248800628262549e-06, "feature_x": -75.052828057919783, "feature_y": 38.517607323613419, "nearest_x": -75.052828, "nearest_y": 38.517606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069539697703476, 38.516876041793523 ], [ -75.05006932763024, 38.517728042425745 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3227", "slope": 0.0421, "distance": 9.0399481869618331e-05, "feature_x": -75.052103951993971, "feature_y": 38.5180903130559, "nearest_x": -75.0521, "nearest_y": 38.518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069571654065726, 38.51732594679001 ], [ -75.05010116319248, 38.518177952757519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3228", "slope": 0.1154, "distance": 2.0866294852317734e-06, "feature_x": -75.052893091221179, "feature_y": 38.518507084634571, "nearest_x": -75.052893, "nearest_y": 38.518505 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069603610830143, 38.517775851777152 ], [ -75.050132999154158, 38.518627863045786 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3229", "slope": 0.0605, "distance": 1.3405190537368847e-06, "feature_x": -75.05291705860347, "feature_y": 38.51895733923746, "nearest_x": -75.052917, "nearest_y": 38.518956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069635567996556, 38.518225756686121 ], [ -75.050164835471492, 38.519077773324817 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3230", "slope": 0.0497, "distance": 1.8123460529596865e-05, "feature_x": -75.052700792303426, "feature_y": 38.519418106133678, "nearest_x": -75.0527, "nearest_y": 38.5194 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069667525521311, 38.518675661551406 ], [ -75.050196672231948, 38.519527683525894 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3231", "slope": 0.0537, "distance": 3.052664048050509e-05, "feature_x": -75.052698665466608, "feature_y": 38.519869502544374, "nearest_x": -75.0527, "nearest_y": 38.5199 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069699483491974, 38.519125566407261 ], [ -75.050228509391872, 38.519977593717726 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3232", "slope": 0.0567, "distance": 1.2376682866492971e-06, "feature_x": -75.052963054107167, "feature_y": 38.520309236485019, "nearest_x": -75.052963, "nearest_y": 38.520308 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069731441864704, 38.519575471185 ], [ -75.050260346951205, 38.520427503831634 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3233", "slope": 0.16, "distance": 1.7964872823118442e-06, "feature_x": -75.052980078537061, "feature_y": 38.520759794769759, "nearest_x": -75.05298, "nearest_y": 38.520758 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069763400639587, 38.520025375918955 ], [ -75.050292184866251, 38.520877413901943 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3234", "slope": 0.1023, "distance": 1.5311403929210757e-06, "feature_x": -75.052993066936892, "feature_y": 38.521210529676551, "nearest_x": -75.052993, "nearest_y": 38.521209 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069795359816638, 38.520475280643566 ], [ -75.050324023224533, 38.521327323963057 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3235", "slope": 0.0563, "distance": 8.787271645141236e-07, "feature_x": -75.05299203841534, "feature_y": 38.521661877887063, "nearest_x": -75.052992, "nearest_y": 38.521661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069827319352058, 38.520925185290046 ], [ -75.050355861982283, 38.52177723394616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3236", "slope": 0.0533, "distance": 1.4812212293186311e-06, "feature_x": -75.053008064754579, "feature_y": 38.522112479805116, "nearest_x": -75.053008, "nearest_y": 38.522111 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0698592793335, 38.52137508992714 ], [ -75.050387701139584, 38.522227143920112 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3237", "slope": 0.0538, "distance": 1.2093127696647263e-06, "feature_x": -75.053044052867548, "feature_y": 38.522562208156614, "nearest_x": -75.053044, "nearest_y": 38.522561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069891239717037, 38.521824994486074 ], [ -75.05041954065257, 38.522677053816054 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3238", "slope": 0.117, "distance": 9.3737992219978704e-07, "feature_x": -75.053080040979452, "feature_y": 38.523011936483741, "nearest_x": -75.05308, "nearest_y": 38.523011 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069923200502799, 38.522274899001289 ], [ -75.050451380608834, 38.52312696366846 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3239", "slope": 0.0556, "distance": 7.9660604923112792e-07, "feature_x": -75.053113034825245, "feature_y": 38.523461795844455, "nearest_x": -75.053113, "nearest_y": 38.523461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069955161647044, 38.522724803507096 ], [ -75.050483220964665, 38.523576873511573 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3240", "slope": 0.054, "distance": 1.530112691300621e-06, "feature_x": -75.053126066891991, "feature_y": 38.523912528649831, "nearest_x": -75.053126, "nearest_y": 38.523911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06998712323724, 38.5231747079348 ], [ -75.05051506172002, 38.524026783276796 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3241", "slope": 0.051, "distance": 7.8369464782520572e-07, "feature_x": -75.05315003426081, "feature_y": 38.524362782945403, "nearest_x": -75.05315, "nearest_y": 38.524362 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070019085229717, 38.523624612353068 ], [ -75.050546902831215, 38.524476693032746 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3242", "slope": 0.0526, "distance": 6.9297344873604517e-07, "feature_x": -75.053159030294736, "feature_y": 38.524813692310936, "nearest_x": -75.053159, "nearest_y": 38.524813 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070051047624403, 38.524074516693183 ], [ -75.050578744385717, 38.524926602710778 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3243", "slope": 0.0574, "distance": 1.4199538690927726e-06, "feature_x": -75.053195062076185, "feature_y": 38.525263418596325, "nearest_x": -75.053195, "nearest_y": 38.525262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070083010377616, 38.524524420989628 ], [ -75.050610586339786, 38.525376512345176 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3244", "slope": 0.0479, "distance": 5.7312926645251902e-07, "feature_x": -75.053267025055519, "feature_y": 38.525711572581329, "nearest_x": -75.053267, "nearest_y": 38.525711 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070114973576921, 38.524974325276602 ], [ -75.050642428693536, 38.525826421970343 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3245", "slope": 0.0648, "distance": 1.5121931942234843e-06, "feature_x": -75.053321066108609, "feature_y": 38.526160510747467, "nearest_x": -75.053321, "nearest_y": 38.526159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07014693717845, 38.525424229485495 ], [ -75.050674271403082, 38.526276331517629 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3246", "slope": 0.0284, "distance": 3.0210171515568563e-05, "feature_x": -75.052901320699462, "feature_y": 38.526630181289171, "nearest_x": -75.0529, "nearest_y": 38.5266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070178901182345, 38.525874133684972 ], [ -75.050706114556021, 38.526726241055592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3247", "slope": 0.0591, "distance": 1.7483763837030764e-06, "feature_x": -75.053398076433851, "feature_y": 38.52705974670485, "nearest_x": -75.053398, "nearest_y": 38.527058 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070210865544752, 38.526324037806354 ], [ -75.050737958108613, 38.527176150515665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3248", "slope": 0.0505, "distance": 1.0762806778266604e-06, "feature_x": -75.053466047051813, "feature_y": 38.527508075251703, "nearest_x": -75.053466, "nearest_y": 38.527507 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070242830353251, 38.526773941883896 ], [ -75.050769802060827, 38.527626059932082 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3249", "slope": 0.053, "distance": 9.7251479421081982e-07, "feature_x": -75.053521042515484, "feature_y": 38.527956971585027, "nearest_x": -75.053521, "nearest_y": 38.527956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070274795564146, 38.527223845952115 ], [ -75.050801646412751, 38.528075969339334 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3250", "slope": 0.0634, "distance": 1.4241117416683213e-06, "feature_x": -75.053609062257962, "feature_y": 38.528404422750221, "nearest_x": -75.053609, "nearest_y": 38.528403 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070306761177363, 38.527673749942132 ], [ -75.050833491120571, 38.528525878668596 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3251", "slope": 0.0629, "distance": 1.6263125047507319e-06, "feature_x": -75.053657071097604, "feature_y": 38.528853624757673, "nearest_x": -75.053657, "nearest_y": 38.528852 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070338727149235, 38.52812365392284 ], [ -75.050865336271869, 38.528975787988657 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3252", "slope": 0.065, "distance": 1.434999423889483e-06, "feature_x": -75.05371406273396, "feature_y": 38.529302433627493, "nearest_x": -75.053714, "nearest_y": 38.529301 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070370693567213, 38.528573557825339 ], [ -75.050897181822847, 38.529425697230693 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3253", "slope": 0.0608, "distance": 1.9431331925195304e-06, "feature_x": -75.053755084948079, "feature_y": 38.529751941275464, "nearest_x": -75.053755, "nearest_y": 38.52975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070402660387629, 38.529023461684112 ], [ -75.050929027773577, 38.529875606429172 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3254", "slope": 0.0579, "distance": 1.5396636963617717e-06, "feature_x": -75.053794067309582, "feature_y": 38.530201538191704, "nearest_x": -75.053794, "nearest_y": 38.5302 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070434627610467, 38.529473365533441 ], [ -75.050960874080275, 38.530325515618415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3255", "slope": 0.0634, "distance": 1.8356085113180273e-06, "feature_x": -75.053817080247427, "feature_y": 38.530651833853582, "nearest_x": -75.053817, "nearest_y": 38.53065 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070466595235686, 38.529923269304682 ], [ -75.050992720830465, 38.530775424729711 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3256", "slope": 0.0573, "distance": 2.0376491133553536e-06, "feature_x": -75.053865089080048, "feature_y": 38.53110103570102, "nearest_x": -75.053865, "nearest_y": 38.531099 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070498563219644, 38.530373173066501 ], [ -75.051024567980434, 38.531225333797359 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3257", "slope": 0.0572, "distance": 4.0398860328611976e-05, "feature_x": -75.053698233879999, "feature_y": 38.531559639762932, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070530531649752, 38.530823076750224 ], [ -75.051056415530169, 38.531675242855833 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3257", "slope": 0.0608, "distance": 4.0398860328611976e-05, "feature_x": -75.053698233879999, "feature_y": 38.531559639762932, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070530531649752, 38.530823076750224 ], [ -75.051056415530169, 38.531675242855833 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3258", "slope": 0.062, "distance": 1.9801287220786759e-06, "feature_x": -75.053903086565441, "feature_y": 38.53200197823562, "nearest_x": -75.053903, "nearest_y": 38.532 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070562500482353, 38.531272980390114 ], [ -75.051088263435915, 38.532125151836276 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3259", "slope": 0.0614, "distance": 1.1522573785975129e-06, "feature_x": -75.053906050373328, "feature_y": 38.532453151155764, "nearest_x": -75.053906, "nearest_y": 38.532452 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070594469717463, 38.531722884020638 ], [ -75.051120111785266, 38.532575060807567 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3260", "slope": 0.0792, "distance": 1.7103741860516145e-06, "feature_x": -75.05392307477257, "feature_y": 38.532903708738985, "nearest_x": -75.053923, "nearest_y": 38.532902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070626439311283, 38.532172787572996 ], [ -75.051151960534384, 38.533024969700833 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3261", "slope": 0.089, "distance": 1.7940311371445177e-06, "feature_x": -75.053928078429806, "feature_y": 38.533354792315954, "nearest_x": -75.053928, "nearest_y": 38.533353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070658409351438, 38.532622691115961 ], [ -75.05118380968338, 38.533474878550457 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3262", "slope": 0.0687, "distance": 1.1688233750021072e-05, "feature_x": -75.053800510975535, "feature_y": 38.533811677059226, "nearest_x": -75.0538, "nearest_y": 38.5338 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07069037979403, 38.533072594580815 ], [ -75.051215659188429, 38.533924787390966 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3263", "slope": 0.0767, "distance": 1.4689260429327197e-06, "feature_x": -75.053835064217182, "feature_y": 38.534261467521681, "nearest_x": -75.053835, "nearest_y": 38.53426 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070722350639187, 38.533522498001844 ], [ -75.051247509137085, 38.534374696153407 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3264", "slope": 0.0536, "distance": 7.6870274516284054e-05, "feature_x": -75.053596639455051, "feature_y": 38.53472320321724, "nearest_x": -75.0536, "nearest_y": 38.5348 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07075432184314, 38.533972401413543 ], [ -75.051279359485648, 38.53482460490666 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3265", "slope": 0.0422, "distance": 5.9474999019380015e-07, "feature_x": -75.053686026000747, "feature_y": 38.53517059418138, "nearest_x": -75.053686, "nearest_y": 38.53517 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070786293493398, 38.534422304747039 ], [ -75.051311210234047, 38.535274513581911 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3266", "slope": 0.0554, "distance": 9.6494745738191398e-07, "feature_x": -75.053753042184695, "feature_y": 38.53561896402492, "nearest_x": -75.053753, "nearest_y": 38.535618 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070818265546251, 38.534872208071171 ], [ -75.051343061338571, 38.535724422213605 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3267", "slope": 0.0494, "distance": 7.2518098956351169e-05, "feature_x": -75.053703170281068, "feature_y": 38.536072448768067, "nearest_x": -75.0537, "nearest_y": 38.536 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070850238001668, 38.535322111317107 ], [ -75.051374912886814, 38.536174330836005 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3268", "slope": 0.0733, "distance": 3.694062823026727e-07, "feature_x": -75.053849016149371, "feature_y": 38.536517369053115, "nearest_x": -75.053849, "nearest_y": 38.536517 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070882210815924, 38.535772014519353 ], [ -75.051406764834923, 38.536624239380465 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3269", "slope": 0.0542, "distance": 0.00011157334967218785, "feature_x": -75.053395122335999, "feature_y": 38.536988533319999, "nearest_x": -75.0534, "nearest_y": 38.5371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070914184076628, 38.536221917712119 ], [ -75.051438617183052, 38.537074147915654 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3270", "slope": 0.0781, "distance": 0.00012637355483503603, "feature_x": -75.053705524686478, "feature_y": 38.537426252735422, "nearest_x": -75.0537, "nearest_y": 38.5373 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070946157739897, 38.536671820826776 ], [ -75.051470469931061, 38.537524056372902 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3271", "slope": 0.0662, "distance": 4.6417615279513056e-07, "feature_x": -75.053799020292445, "feature_y": 38.537873463732375, "nearest_x": -75.053799, "nearest_y": 38.537873 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070978131805802, 38.537121723897606 ], [ -75.051502323035251, 38.537973964786538 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3272", "slope": 0.0551, "distance": 6.2089759947414399e-05, "feature_x": -75.053497285614867, "feature_y": 38.538337969600974, "nearest_x": -75.0535, "nearest_y": 38.5384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071010106230645, 38.537571626959128 ], [ -75.051534176583232, 38.538423873190951 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3273", "slope": 0.0741, "distance": 1.9580014239327635e-05, "feature_x": -75.053699144018239, "feature_y": 38.538780438705238, "nearest_x": -75.0537, "nearest_y": 38.5388 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071042081101879, 38.538021529942405 ], [ -75.051566030531163, 38.538873781517339 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3274", "slope": 0.0597, "distance": 3.5163193123343513e-07, "feature_x": -75.053868015372331, "feature_y": 38.539224351295751, "nearest_x": -75.053868, "nearest_y": 38.539224 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071074056375835, 38.538471432916339 ], [ -75.051597884879129, 38.539323689834561 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3275", "slope": 0.1125, "distance": 4.2846960811512647e-07, "feature_x": -75.05389601873145, "feature_y": 38.539674428059968, "nearest_x": -75.053896, "nearest_y": 38.539674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071106032052469, 38.538921335812077 ], [ -75.051629739583305, 38.539773598073737 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3276", "slope": 0.1335, "distance": 9.0106768611823799e-05, "feature_x": -75.053957939208843, "feature_y": 38.540123020621991, "nearest_x": -75.053954, "nearest_y": 38.540033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071138008131783, 38.53937123866401 ], [ -75.0516615947313, 38.540223506269356 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3277", "slope": 0.0512, "distance": 1.4376322228638907e-05, "feature_x": -75.0536993715085, "feature_y": 38.540585637422261, "nearest_x": -75.0537, "nearest_y": 38.5406 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071169984570091, 38.539821141506629 ], [ -75.05169345027933, 38.540673414455689 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3278", "slope": 0.055, "distance": 3.2505003681623631e-05, "feature_x": -75.053801421025469, "feature_y": 38.541032473927245, "nearest_x": -75.0538, "nearest_y": 38.541 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071201961454918, 38.540271044271009 ], [ -75.051725306227425, 38.541123322564012 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3279", "slope": 0.0485, "distance": 2.6908271365738102e-08, "feature_x": -75.05409399882366, "feature_y": 38.541470973117455, "nearest_x": -75.054094, "nearest_y": 38.541471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071233938742481, 38.54072094702606 ], [ -75.051757162531828, 38.541573230663197 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3280", "slope": 0.112, "distance": 3.8018711024967632e-07, "feature_x": -75.054183016620684, "feature_y": 38.541918379823635, "nearest_x": -75.054183, "nearest_y": 38.541918 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071265916432779, 38.54117084970288 ], [ -75.051789019280065, 38.5420231386843 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3281", "slope": 0.0925, "distance": 5.3140334105526176e-07, "feature_x": -75.054255023231434, "feature_y": 38.542366530895293, "nearest_x": -75.054255, "nearest_y": 38.542366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0712978944821, 38.541620752335987 ], [ -75.05182087642838, 38.542473046661868 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3282", "slope": 0.0573, "distance": 9.5138091469395993e-07, "feature_x": -75.05429804159165, "feature_y": 38.542815950471343, "nearest_x": -75.054298, "nearest_y": 38.542815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071329872977984, 38.542070654959645 ], [ -75.05185273397683, 38.542922954630129 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3283", "slope": 0.0558, "distance": 8.3378997794762205e-07, "feature_x": -75.054399036450917, "feature_y": 38.543262832992831, "nearest_x": -75.054399, "nearest_y": 38.543262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071361851876659, 38.542520557505156 ], [ -75.051884591881603, 38.543372862520485 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3284", "slope": 0.0582, "distance": 6.2877423794489601e-07, "feature_x": -75.054502027488212, "feature_y": 38.543709628173097, "nearest_x": -75.054502, "nearest_y": 38.543709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071393831178185, 38.542970460041246 ], [ -75.051916450230308, 38.543822770401519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3285", "slope": 0.0388, "distance": 6.9703888984992885e-05, "feature_x": -75.054303047255289, "feature_y": 38.544169637248473, "nearest_x": -75.0543, "nearest_y": 38.5441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071425810838718, 38.543420362499219 ], [ -75.051948308979135, 38.544272678204614 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3286", "slope": 0.0581, "distance": 1.6920765435182493e-06, "feature_x": -75.054720073972774, "feature_y": 38.544602690458831, "nearest_x": -75.05472, "nearest_y": 38.544601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0714577909459, 38.543870264913359 ], [ -75.051980168128139, 38.544722585964053 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3287", "slope": 0.0537, "distance": 1.443262628036091e-06, "feature_x": -75.054824063095325, "feature_y": 38.545049441882796, "nearest_x": -75.054824, "nearest_y": 38.545048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071489771455958, 38.544320167318119 ], [ -75.052012027633566, 38.545172493714311 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3288", "slope": 0.0494, "distance": 1.3692581140728218e-06, "feature_x": -75.05492405986007, "feature_y": 38.545496367949035, "nearest_x": -75.054924, "nearest_y": 38.545495 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071521752368852, 38.544770069644677 ], [ -75.052043887582911, 38.545622401386517 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3289", "slope": 0.0575, "distance": 4.8676005498414772e-05, "feature_x": -75.054902127976618, "feature_y": 38.545948629468711, "nearest_x": -75.0549, "nearest_y": 38.5459 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071553733640897, 38.545219971961913 ], [ -75.052075747932463, 38.546072309015166 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3290", "slope": 0.0452, "distance": 2.576435872389728e-06, "feature_x": -75.055093112634466, "feature_y": 38.546391573972663, "nearest_x": -75.055093, "nearest_y": 38.546389 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071585715359546, 38.545669874200904 ], [ -75.052107608682263, 38.546522216634514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3291", "slope": 0.047, "distance": 2.2529508137602257e-06, "feature_x": -75.055153098492625, "feature_y": 38.546840250796876, "nearest_x": -75.055153, "nearest_y": 38.546838 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07161769748113, 38.546119776396139 ], [ -75.052139469832255, 38.546972124175916 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3292", "slope": 0.0414, "distance": 2.5723279143240098e-06, "feature_x": -75.055244112454886, "feature_y": 38.547287569868637, "nearest_x": -75.055244, "nearest_y": 38.547285 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071649680005663, 38.546569678581925 ], [ -75.052171331338741, 38.547422031708038 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3293", "slope": 0.0421, "distance": 2.0674703700396216e-06, "feature_x": -75.055331090383945, "feature_y": 38.547735065493761, "nearest_x": -75.055331, "nearest_y": 38.547733 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071681662889318, 38.547019580689629 ], [ -75.052203193289216, 38.547871939162214 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3294", "slope": 0.0419, "distance": 2.7365049203066332e-06, "feature_x": -75.055414119632246, "feature_y": 38.54818273388868, "nearest_x": -75.055414, "nearest_y": 38.54818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071713646219791, 38.547469482787847 ], [ -75.052235055640011, 38.548321846572712 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3295", "slope": 0.0376, "distance": 3.099516039659762e-06, "feature_x": -75.05550413550209, "feature_y": 38.548630096552742, "nearest_x": -75.055504, "nearest_y": 38.548627 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071745629953142, 38.547919384807891 ], [ -75.052266918391069, 38.548771753974009 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3296", "slope": 0.0373, "distance": 3.0317498087689305e-06, "feature_x": -75.055581132539544, "feature_y": 38.549078028851298, "nearest_x": -75.055581, "nearest_y": 38.549075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07177761408947, 38.548369286784187 ], [ -75.052298781498635, 38.549221661297302 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3297", "slope": 0.041, "distance": 2.839292810951462e-06, "feature_x": -75.055638124125878, "feature_y": 38.549526836578295, "nearest_x": -75.055638, "nearest_y": 38.549524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071809598628818, 38.548819188751033 ], [ -75.05233064505029, 38.549671568611302 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3298", "slope": 0.0371, "distance": 3.2588155519367712e-06, "feature_x": -75.055681142466241, "feature_y": 38.549976255699953, "nearest_x": -75.055681, "nearest_y": 38.549973 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071841583527373, 38.549269090639768 ], [ -75.052362509002236, 38.550121475847376 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3299", "slope": 0.0386, "distance": 3.0225605354310802e-06, "feature_x": -75.055739132137845, "feature_y": 38.550425019670804, "nearest_x": -75.055739, "nearest_y": 38.550422 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071873568872761, 38.549718992519047 ], [ -75.052394373354545, 38.550571383039781 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3300", "slope": 0.0384, "distance": 3.0729663963152052e-06, "feature_x": -75.055859134341446, "feature_y": 38.550871070028478, "nearest_x": -75.055859, "nearest_y": 38.550868 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071905554621139, 38.550168894320187 ], [ -75.052426238063433, 38.551021290222984 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3301", "slope": 0.0315, "distance": 3.0065132251533887e-06, "feature_x": -75.055776131436303, "feature_y": 38.551326003638835, "nearest_x": -75.055776, "nearest_y": 38.551323 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071937540772552, 38.550618796077472 ], [ -75.052458103216438, 38.551471197328141 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3302", "slope": 0.0268, "distance": 3.0339545805542362e-06, "feature_x": -75.055668132635986, "feature_y": 38.551782031053961, "nearest_x": -75.055668, "nearest_y": 38.551779 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071969527283287, 38.551068697825436 ], [ -75.052489968769834, 38.551921104424089 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3303", "slope": 0.0224, "distance": 2.3604174277570803e-06, "feature_x": -75.055736103190824, "feature_y": 38.552230358160742, "nearest_x": -75.055736, "nearest_y": 38.552228 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072001514240853, 38.551518599495154 ], [ -75.052521834723635, 38.552371011441991 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3304", "slope": 0.0401, "distance": 3.5458987634446742e-06, "feature_x": -75.055990155016758, "feature_y": 38.552670542508693, "nearest_x": -75.05599, "nearest_y": 38.552667 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072033501601538, 38.551968501155486 ], [ -75.052553701034014, 38.552820918416337 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3305", "slope": 0.0378, "distance": 3.3095088422233371e-06, "feature_x": -75.056048144682478, "feature_y": 38.553119306344776, "nearest_x": -75.056048, "nearest_y": 38.553116 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072065489365258, 38.552418402737615 ], [ -75.052585567788611, 38.553270825381361 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3306", "slope": 0.0364, "distance": 3.3855363448333002e-06, "feature_x": -75.056076148006198, "feature_y": 38.553569382299585, "nearest_x": -75.056076, "nearest_y": 38.553566 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072097477488327, 38.552868304276025 ], [ -75.052617434943613, 38.553720732268431 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3307", "slope": 0.0361, "distance": 3.5490068295991254e-06, "feature_x": -75.056102155152672, "feature_y": 38.554019545613784, "nearest_x": -75.056102, "nearest_y": 38.554016 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072129466058328, 38.553318205804921 ], [ -75.052649302499091, 38.554170639146214 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3308", "slope": 0.0359, "distance": 3.6185290764092098e-06, "feature_x": -75.056153158191989, "feature_y": 38.554468615069567, "nearest_x": -75.056153, "nearest_y": 38.554465 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072161455031434, 38.553768107255713 ], [ -75.052681170411219, 38.554620545946065 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3309", "slope": 0.0378, "distance": 3.0759856469860621e-06, "feature_x": -75.056218134473525, "feature_y": 38.554917073044834, "nearest_x": -75.056218, "nearest_y": 38.554914 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072193444407674, 38.554218008662659 ], [ -75.052713038767592, 38.555070452702203 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3310", "slope": 0.0386, "distance": 3.1017738071186088e-06, "feature_x": -75.056270135600911, "feature_y": 38.555366098808342, "nearest_x": -75.05627, "nearest_y": 38.555363 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072225434143363, 38.554667910060246 ], [ -75.052744907524456, 38.555520359449147 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3311", "slope": 0.0443, "distance": 3.9953940187814133e-06, "feature_x": -75.056325174667521, "feature_y": 38.555814991574202, "nearest_x": -75.056325, "nearest_y": 38.555811 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072257424325983, 38.555117811379596 ], [ -75.05277677668181, 38.555970266118052 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3312", "slope": 0.0372, "distance": 3.5531450023037116e-06, "feature_x": -75.056342155333624, "feature_y": 38.556265549747998, "nearest_x": -75.056342, "nearest_y": 38.556262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072289414911808, 38.555567712689566 ], [ -75.052808646239697, 38.556420172777742 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3313", "slope": 0.0317, "distance": 3.0671168080740165e-06, "feature_x": -75.056360134085836, "feature_y": 38.556716064184478, "nearest_x": -75.05636, "nearest_y": 38.556713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072321405900809, 38.556017613921313 ], [ -75.052840516154291, 38.556870079359399 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3314", "slope": 0.0376, "distance": 3.180200421963263e-06, "feature_x": -75.056410139029552, "feature_y": 38.557165177159973, "nearest_x": -75.05641, "nearest_y": 38.557162 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072353397249245, 38.556467515109304 ], [ -75.052872386513201, 38.557319985897387 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3315", "slope": 0.0388, "distance": 3.5928608457971043e-06, "feature_x": -75.056476157069923, "feature_y": 38.55761358942587, "nearest_x": -75.056476, "nearest_y": 38.55761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072385389044712, 38.556917416287867 ], [ -75.052904257272672, 38.557769892426194 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3316", "slope": 0.0416, "distance": 3.3998717537609712e-06, "feature_x": -75.056533148632994, "feature_y": 38.558062396621288, "nearest_x": -75.056533, "nearest_y": 38.558059 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072417381243412, 38.557367317388213 ], [ -75.052936128432691, 38.558219798876941 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3317", "slope": 0.0416, "distance": 3.9063650409599101e-06, "feature_x": -75.056574170775477, "feature_y": 38.558511902630343, "nearest_x": -75.056574, "nearest_y": 38.558508 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072449373845387, 38.55781721847918 ], [ -75.052967999949502, 38.558669705318486 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3318", "slope": 0.0421, "distance": 4.1067787022159716e-06, "feature_x": -75.05662217953703, "feature_y": 38.558961102852393, "nearest_x": -75.056622, "nearest_y": 38.558957 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07248136685061, 38.558267119491937 ], [ -75.052999871910686, 38.559119611681972 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3319", "slope": 0.0511, "distance": 8.9899122915200426e-06, "feature_x": -75.056700393014168, "feature_y": 38.559408981317432, "nearest_x": -75.0567, "nearest_y": 38.5594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072513360215368, 38.558717020460939 ], [ -75.053031744272488, 38.559569518001865 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3320", "slope": 0.1024, "distance": 4.2115432444445059e-06, "feature_x": -75.056999184117075, "feature_y": 38.559847207516775, "nearest_x": -75.056999, "nearest_y": 38.559843 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072545354027199, 38.559166921420463 ], [ -75.053063617034894, 38.560019424312458 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3321", "slope": 0.0505, "distance": 3.8220965961516597e-06, "feature_x": -75.056672167091548, "feature_y": 38.560312818442455, "nearest_x": -75.056672, "nearest_y": 38.560309 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072577348242319, 38.559616822301848 ], [ -75.053095490154121, 38.560469330545089 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3322", "slope": 0.0497, "distance": 3.7794950320530604e-06, "feature_x": -75.056657165229126, "feature_y": 38.560764775881623, "nearest_x": -75.056657, "nearest_y": 38.560761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072609342860787, 38.560066723173755 ], [ -75.053127363717806, 38.560919236768413 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3323", "slope": 0.041, "distance": 3.568416850468011e-06, "feature_x": -75.056623156001379, "feature_y": 38.561217565005244, "nearest_x": -75.056623, "nearest_y": 38.561214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072641337838789, 38.560516623967573 ], [ -75.05315923768211, 38.561369142913755 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3324", "slope": 0.0419, "distance": 3.2261615000474248e-06, "feature_x": -75.056592141038919, "feature_y": 38.561670223077108, "nearest_x": -75.056592, "nearest_y": 38.561667 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072673333263921, 38.560966524717479 ], [ -75.053191112047088, 38.561819049015455 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3325", "slope": 0.0437, "distance": 2.8710072512276518e-06, "feature_x": -75.056607125512571, "feature_y": 38.562120868262404, "nearest_x": -75.056607, "nearest_y": 38.562118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072705329092457, 38.561416425458034 ], [ -75.053222986768986, 38.562268955107939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3326", "slope": 0.0427, "distance": 2.7408335252194637e-06, "feature_x": -75.056594119821739, "feature_y": 38.562572738213134, "nearest_x": -75.056594, "nearest_y": 38.56257 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07273732532434, 38.561866326120331 ], [ -75.053254861935329, 38.562718861122342 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3327", "slope": 0.0398, "distance": 2.8356788995657443e-06, "feature_x": -75.056553123968115, "feature_y": 38.563025832967831, "nearest_x": -75.056553, "nearest_y": 38.563023 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072769321915857, 38.562316226773305 ], [ -75.05328673750239, 38.56316876709316 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3328", "slope": 0.0878, "distance": 3.1705557138306428e-06, "feature_x": -75.056895138608027, "feature_y": 38.563462167524484, "nearest_x": -75.056895, "nearest_y": 38.563459 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072801318954546, 38.562766127348006 ], [ -75.053318613470225, 38.563618673054656 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3329", "slope": 0.0759, "distance": 3.9146474486943679e-06, "feature_x": -75.056862171137695, "feature_y": 38.56391491090482, "nearest_x": -75.056862, "nearest_y": 38.563911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072833316396654, 38.563216027878887 ], [ -75.053350489794951, 38.564068578938212 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3330", "slope": 0.041, "distance": 2.2507578475434146e-06, "feature_x": -75.056587098396989, "feature_y": 38.564378248605998, "nearest_x": -75.056587, "nearest_y": 38.564376 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072865314242208, 38.563665928400404 ], [ -75.05338236656425, 38.564518484812453 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3331", "slope": 0.0569, "distance": 2.02135808347464e-05, "feature_x": -75.056800883682655, "feature_y": 38.564820194255496, "nearest_x": -75.0568, "nearest_y": 38.5648 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072897312447395, 38.564115828843704 ], [ -75.053414243734252, 38.564968390608655 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3332", "slope": 0.0662, "distance": 2.1893574010947865e-06, "feature_x": -75.056625095712732, "feature_y": 38.565279187264252, "nearest_x": -75.056625, "nearest_y": 38.565277 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07292931109987, 38.564565729277604 ], [ -75.053446121305058, 38.565418296361294 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3333", "slope": 0.0503, "distance": 2.5141073219268992e-06, "feature_x": -75.056693109909929, "feature_y": 38.565727511703692, "nearest_x": -75.056693, "nearest_y": 38.565725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07296131015579, 38.565015629633251 ], [ -75.053477999276666, 38.565868202104582 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3334", "slope": 0.0417, "distance": 1.709690316916755e-05, "feature_x": -75.056599252569853, "feature_y": 38.566182919442454, "nearest_x": -75.0566, "nearest_y": 38.5662 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072993309615171, 38.565465529945136 ], [ -75.053509877605251, 38.566318107769952 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3335", "slope": 0.0464, "distance": 2.3651431209282788e-06, "feature_x": -75.056733103397633, "feature_y": 38.566628362881907, "nearest_x": -75.056733, "nearest_y": 38.566626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0730253094343, 38.565915430247586 ], [ -75.053541756378479, 38.566768013425992 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3336", "slope": 0.0488, "distance": 2.8711086185223788e-06, "feature_x": -75.056774125517094, "feature_y": 38.567077868363675, "nearest_x": -75.056774, "nearest_y": 38.567075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073057309700729, 38.566365330471854 ], [ -75.053573635552524, 38.567217919004044 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3337", "slope": 0.0495, "distance": 2.8151825599058595e-06, "feature_x": -75.056805123072152, "feature_y": 38.567527812491086, "nearest_x": -75.056805, "nearest_y": 38.567525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073089310370705, 38.566815230686657 ], [ -75.053605515127387, 38.567667824538418 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3338", "slope": 0.0444, "distance": 2.7592519500870982e-06, "feature_x": -75.05683612062704, "feature_y": 38.567977756613942, "nearest_x": -75.056836, "nearest_y": 38.567975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073121311444183, 38.567265130823287 ], [ -75.05363739505934, 38.568117730063584 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3339", "slope": 0.052, "distance": 2.5219449978348378e-06, "feature_x": -75.056894110252614, "feature_y": 38.568426519533872, "nearest_x": -75.056894, "nearest_y": 38.568424 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073153312921193, 38.567715030916077 ], [ -75.053669275435936, 38.568567635510661 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3340", "slope": 0.049, "distance": 3.0342939541463277e-06, "feature_x": -75.056912132651135, "feature_y": 38.568877031392994, "nearest_x": -75.056912, "nearest_y": 38.568874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073185314758035, 38.568164930999494 ], [ -75.053701156213421, 38.569017540948522 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3341", "slope": 0.0471, "distance": 2.9345405887527161e-06, "feature_x": -75.056944128290198, "feature_y": 38.569326931734999, "nearest_x": -75.056944, "nearest_y": 38.569324 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073217317042207, 38.568614831004652 ], [ -75.05373303739178, 38.569467446308316 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3342", "slope": 0.0496, "distance": 2.3975922247885274e-06, "feature_x": -75.056986104816261, "feature_y": 38.569776395299989, "nearest_x": -75.056986, "nearest_y": 38.569774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07324931973001, 38.569064731000431 ], [ -75.053764918927257, 38.569917351624532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3343", "slope": 0.0552, "distance": 2.335078494841963e-06, "feature_x": -75.057040102083349, "feature_y": 38.570225332846022, "nearest_x": -75.05704, "nearest_y": 38.570223 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073281322821401, 38.569514630917958 ], [ -75.053796800907463, 38.570367256931419 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3344", "slope": 0.0621, "distance": 2.8780977497186192e-06, "feature_x": -75.057103125822692, "feature_y": 38.570673875346117, "nearest_x": -75.057103, "nearest_y": 38.570671 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073313326272611, 38.569964530791744 ], [ -75.053828683288614, 38.570817162160324 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3345", "slope": 0.0639, "distance": 2.86570882654018e-06, "feature_x": -75.057133125281084, "feature_y": 38.571123862969038, "nearest_x": -75.057133, "nearest_y": 38.571121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073345330171279, 38.570414430656015 ], [ -75.053860566070711, 38.571267067379907 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3346", "slope": 0.0582, "distance": 2.3852761746204521e-06, "feature_x": -75.057128104277879, "feature_y": 38.571575382995711, "nearest_x": -75.057128, "nearest_y": 38.571573 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073377334473548, 38.570864330442141 ], [ -75.05389244920994, 38.571716972521543 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3347", "slope": 0.0526, "distance": 2.2043860035484468e-06, "feature_x": -75.057139096369852, "feature_y": 38.572026202278479, "nearest_x": -75.057139, "nearest_y": 38.572024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073409339179463, 38.57131423018442 ], [ -75.053924332793954, 38.572166877619459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3348", "slope": 0.0546, "distance": 2.1983732274025011e-06, "feature_x": -75.05714609610699, "feature_y": 38.57247719627145, "nearest_x": -75.057146, "nearest_y": 38.572475 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073441344245325, 38.571764129917256 ], [ -75.053956216778971, 38.572616782708145 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3349", "slope": 0.0593, "distance": 2.0238856896199217e-06, "feature_x": -75.057134088478875, "feature_y": 38.572929021950735, "nearest_x": -75.057134, "nearest_y": 38.572927 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073473349758615, 38.572214029571938 ], [ -75.053988101164961, 38.573066687718772 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3350", "slope": 0.0499, "distance": 2.0242743730037248e-06, "feature_x": -75.057118088495869, "feature_y": 38.573381022339049, "nearest_x": -75.057118, "nearest_y": 38.573379 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07350535567565, 38.572663929217121 ], [ -75.054019985908198, 38.573516592720139 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3351", "slope": 0.0869, "distance": 2.4653017461776289e-06, "feature_x": -75.057389107776416, "feature_y": 38.573820462944774, "nearest_x": -75.057389, "nearest_y": 38.573818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073537361996358, 38.573113828784152 ], [ -75.05405187109622, 38.573966497643518 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3352", "slope": 0.0457, "distance": 1.581280477202741e-06, "feature_x": -75.057119069129371, "feature_y": 38.574283579768675, "nearest_x": -75.057119, "nearest_y": 38.574282 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073569368676999, 38.573563728307349 ], [ -75.054083756685301, 38.574416402523184 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3353", "slope": 0.0336, "distance": 3.1308505545069138e-05, "feature_x": -75.057201368724478, "feature_y": 38.574731278572742, "nearest_x": -75.0572, "nearest_y": 38.5747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073601375805225, 38.574013627821124 ], [ -75.05411564267547, 38.574866307393613 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3354", "slope": 0.0507, "distance": 1.6434610502803702e-06, "feature_x": -75.057177071847747, "feature_y": 38.575183641889801, "nearest_x": -75.057177, "nearest_y": 38.575182 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073633383337167, 38.574463527256647 ], [ -75.054147529066668, 38.575316212185996 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3355", "slope": 0.0555, "distance": 1.8493971993778452e-06, "feature_x": -75.057202080850729, "feature_y": 38.575633847629064, "nearest_x": -75.057202, "nearest_y": 38.575632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073665391272897, 38.574913426682777 ], [ -75.054179415815184, 38.575766116969156 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3356", "slope": 0.0542, "distance": 1.8804048458476285e-06, "feature_x": -75.057231082206314, "feature_y": 38.576083878607065, "nearest_x": -75.057231, "nearest_y": 38.576082 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073697399568587, 38.575363326030683 ], [ -75.054211303008543, 38.576216021674227 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3357", "slope": 0.0556, "distance": 2.2546704686011581e-06, "feature_x": -75.057275098568212, "feature_y": 38.576533252514871, "nearest_x": -75.057275, "nearest_y": 38.576531 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073729408311877, 38.575813225334812 ], [ -75.054243190603032, 38.576665926335671 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3358", "slope": 0.0551, "distance": 2.0670738090356714e-06, "feature_x": -75.057309090366999, "feature_y": 38.576983065097565, "nearest_x": -75.057309, "nearest_y": 38.576981 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073761417458982, 38.576263124629413 ], [ -75.05427507859865, 38.577115830987807 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3359", "slope": 0.0437, "distance": 3.472962349707252e-05, "feature_x": -75.057301518287247, "feature_y": 38.577434696419871, "nearest_x": -75.0573, "nearest_y": 38.5774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073793427009875, 38.576713023845883 ], [ -75.054306966951586, 38.577565735561954 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3360", "slope": 0.1042, "distance": 2.5502638728103257e-06, "feature_x": -75.057723111490787, "feature_y": 38.577867547825669, "nearest_x": -75.057723, "nearest_y": 38.577865 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073825436964682, 38.577162923052832 ], [ -75.054338855749478, 38.5780156401268 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3361", "slope": 0.0506, "distance": 2.5274520876693075e-06, "feature_x": -75.057479110493531, "feature_y": 38.578329525035691, "nearest_x": -75.057479, "nearest_y": 38.578327 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07385744727948, 38.577612822181678 ], [ -75.054370744948557, 38.578465544613657 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3362", "slope": 0.0503, "distance": 2.2895437326801138e-06, "feature_x": -75.057537100092816, "feature_y": 38.578778287354787, "nearest_x": -75.057537, "nearest_y": 38.578776 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073889458041933, 38.578062721266626 ], [ -75.054402634548765, 38.57891544905678 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3363", "slope": 0.0511, "distance": 2.5697948746835575e-06, "feature_x": -75.057606112344672, "feature_y": 38.579226567337997, "nearest_x": -75.057606, "nearest_y": 38.579224 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073921469208287, 38.578512620342153 ], [ -75.054434524506405, 38.579365353490708 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3364", "slope": 0.0516, "distance": 2.2006819463930473e-06, "feature_x": -75.057667096208021, "feature_y": 38.579675198577959, "nearest_x": -75.057667, "nearest_y": 38.579673 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073953480778485, 38.578962519339434 ], [ -75.054466414909001, 38.579815257846548 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3365", "slope": 0.0482, "distance": 8.7688950052128566e-05, "feature_x": -75.057715166469762, "feature_y": 38.580124394885956, "nearest_x": -75.057719, "nearest_y": 38.580212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073985492708857, 38.579412418327301 ], [ -75.054498305712812, 38.580265162158703 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3366", "slope": 0.0489, "distance": 2.6864978450591074e-06, "feature_x": -75.057761117446631, "feature_y": 38.580573683929387, "nearest_x": -75.057761, "nearest_y": 38.580571 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074017505086886, 38.57986231723698 ], [ -75.054530196917881, 38.58071506646165 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3367", "slope": 0.0477, "distance": 2.4111951139196875e-06, "feature_x": -75.057797105411126, "feature_y": 38.581023408889862, "nearest_x": -75.057797, "nearest_y": 38.581021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074049517868829, 38.58031221610279 ], [ -75.054562088480367, 38.581164970686501 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3368", "slope": 0.0428, "distance": 2.9765436381881575e-05, "feature_x": -75.057898698733112, "feature_y": 38.58147026302121, "nearest_x": -75.0579, "nearest_y": 38.5815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074081531054802, 38.580762114959185 ], [ -75.054593980487923, 38.581614874902144 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3369", "slope": 0.0843, "distance": 1.2741755873379039e-05, "feature_x": -75.058100557036212, "feature_y": 38.581912729573965, "nearest_x": -75.0581, "nearest_y": 38.5819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074113544600863, 38.581212013737364 ], [ -75.054625872896779, 38.582064779039676 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3370", "slope": 0.0471, "distance": 2.6279362380429037e-06, "feature_x": -75.057904114886497, "feature_y": 38.582372625423766, "nearest_x": -75.057904, "nearest_y": 38.58237 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074145558594708, 38.5816619125061 ], [ -75.05465776570685, 38.582514683133574 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3371", "slope": 0.0557, "distance": 1.9710393159383687e-05, "feature_x": -75.058000861686921, "feature_y": 38.582819691548799, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074177572992525, 38.582111811196583 ], [ -75.054689658874466, 38.582964587218193 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3371", "slope": 0.0455, "distance": 1.9710393159383687e-05, "feature_x": -75.058000861686921, "feature_y": 38.582819691548799, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074177572992525, 38.582111811196583 ], [ -75.054689658874466, 38.582964587218193 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3372", "slope": 0.0532, "distance": 2.8943409450494818e-05, "feature_x": -75.057998734669638, "feature_y": 38.58327108426225, "nearest_x": -75.058, "nearest_y": 38.5833 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074209587794314, 38.582561709843276 ], [ -75.054721552487138, 38.583414491224779 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3373", "slope": 0.0588, "distance": 2.7570288859158947e-06, "feature_x": -75.05801312053012, "feature_y": 38.583721754392997, "nearest_x": -75.058013, "nearest_y": 38.583719 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074241602956363, 38.583011608480511 ], [ -75.054753446501181, 38.583864395222058 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3374", "slope": 0.0435, "distance": 2.3131316435702883e-06, "feature_x": -75.058030101124103, "feature_y": 38.584172310920145, "nearest_x": -75.05803, "nearest_y": 38.58417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074273618566195, 38.583461507039551 ], [ -75.054785340916524, 38.584314299141319 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3375", "slope": 0.0486, "distance": 2.05321146304808e-05, "feature_x": -75.058100897610629, "feature_y": 38.584620512484648, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074305634580099, 38.583911405589099 ], [ -75.054817235733225, 38.584764203016888 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3375", "slope": 0.049, "distance": 2.05321146304808e-05, "feature_x": -75.058100897610629, "feature_y": 38.584620512484648, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074305634580099, 38.583911405589099 ], [ -75.054817235733225, 38.584764203016888 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3376", "slope": 0.0398, "distance": 2.9166630087745528e-06, "feature_x": -75.058167127508923, "feature_y": 38.585068913874494, "nearest_x": -75.058167, "nearest_y": 38.585066 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074337650998018, 38.584361304060479 ], [ -75.054849130907499, 38.585214106883221 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3377", "slope": 0.0633, "distance": 2.522860936653866e-06, "feature_x": -75.058160110292931, "feature_y": 38.585520520448924, "nearest_x": -75.05816, "nearest_y": 38.585518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074369667776196, 38.584811202487977 ], [ -75.054881026526914, 38.585664010671472 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3378", "slope": 0.0488, "distance": 2.2408505426400265e-06, "feature_x": -75.058219097964169, "feature_y": 38.585969238708145, "nearest_x": -75.058219, "nearest_y": 38.585967 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074401685002314, 38.585261100906081 ], [ -75.054912922547786, 38.586113914450479 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3379", "slope": 0.0437, "distance": 2.7084320360033144e-06, "feature_x": -75.05823811840564, "feature_y": 38.586419705842602, "nearest_x": -75.058238, "nearest_y": 38.586417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074433702632476, 38.585710999245883 ], [ -75.05494481897, 38.586563818151383 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3380", "slope": 0.0397, "distance": 3.1672306890126997e-05, "feature_x": -75.058298615368685, "feature_y": 38.586868357973835, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074465720666751, 38.586160897576327 ], [ -75.054976715749845, 38.587013721808702 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3380", "slope": 0.0512, "distance": 3.1672306890126997e-05, "feature_x": -75.058298615368685, "feature_y": 38.586868357973835, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074465720666751, 38.586160897576327 ], [ -75.054976715749845, 38.587013721808702 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3381", "slope": 0.0348, "distance": 8.0326314952231575e-05, "feature_x": -75.058296488340929, "feature_y": 38.587319750482095, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074497739105112, 38.58661079582847 ], [ -75.055008612974916, 38.587463625456643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3381", "slope": 0.0542, "distance": 8.0326314952231575e-05, "feature_x": -75.058296488340929, "feature_y": 38.587319750482095, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074497739105112, 38.58661079582847 ], [ -75.055008612974916, 38.587463625456643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3381", "slope": 0.0602, "distance": 8.0326314952231575e-05, "feature_x": -75.058296488340929, "feature_y": 38.587319750482095, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074497739105112, 38.58661079582847 ], [ -75.055008612974916, 38.587463625456643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3382", "slope": 0.041, "distance": 2.7995304059072541e-06, "feature_x": -75.05832512238824, "feature_y": 38.587769796853877, "nearest_x": -75.058325, "nearest_y": 38.587767 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074529757903818, 38.587060694036794 ], [ -75.055040510601415, 38.587913529026615 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3383", "slope": 0.0491, "distance": 1.7802613332880797e-05, "feature_x": -75.058400778284394, "feature_y": 38.588217785592903, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074561777150493, 38.587510592235702 ], [ -75.0550724086294, 38.588363432587236 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3383", "slope": 0.0552, "distance": 1.7802613332880797e-05, "feature_x": -75.058400778284394, "feature_y": 38.588217785592903, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074561777150493, 38.587510592235702 ], [ -75.0550724086294, 38.588363432587236 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3384", "slope": 0.0457, "distance": 2.5476645393508851e-06, "feature_x": -75.058413111377334, "feature_y": 38.588668545228813, "nearest_x": -75.058413, "nearest_y": 38.588666 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074593796801281, 38.587960490356366 ], [ -75.055104307015014, 38.588813336069826 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3385", "slope": 0.0557, "distance": 2.0597633002730483e-06, "feature_x": -75.058431090047563, "feature_y": 38.589119057794036, "nearest_x": -75.058431, "nearest_y": 38.589117 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074625816856269, 38.588410388433211 ], [ -75.055136205845912, 38.589263239508789 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3386", "slope": 0.0448, "distance": 2.2211745191632482e-06, "feature_x": -75.058457097104053, "feature_y": 38.589569219050937, "nearest_x": -75.058457, "nearest_y": 38.589567 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074657837271658, 38.588860286500577 ], [ -75.055168105078366, 38.589713142938415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3387", "slope": 0.0284, "distance": 2.46996057187471e-06, "feature_x": -75.058481107980342, "feature_y": 38.590019467599134, "nearest_x": -75.058481, "nearest_y": 38.590017 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074689858135002, 38.589310184489747 ], [ -75.055200004712276, 38.59016304629003 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3388", "slope": 0.0524, "distance": 2.4937089814381068e-06, "feature_x": -75.058533109018569, "feature_y": 38.590468491324835, "nearest_x": -75.058533, "nearest_y": 38.590466 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074721879402603, 38.589760082469411 ], [ -75.055231904703916, 38.590612949632323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3389", "slope": 0.0422, "distance": 2.8535407681380104e-06, "feature_x": -75.0586071247495, "feature_y": 38.591367850812603, "nearest_x": -75.058607, "nearest_y": 38.591365 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074785923106589, 38.590659878228543 ], [ -75.055295705979375, 38.591512756117176 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3390", "slope": 0.0378, "distance": 2.3218001516717685e-06, "feature_x": -75.058626101503179, "feature_y": 38.591818319580362, "nearest_x": -75.058626, "nearest_y": 38.591816 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074817945586901, 38.591109776076735 ], [ -75.055327607219482, 38.591962659328473 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3391", "slope": 0.0478, "distance": 2.0458448585395603e-06, "feature_x": -75.058662089439125, "feature_y": 38.5922680438889, "nearest_x": -75.058662, "nearest_y": 38.592266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074849968471426, 38.591559673846668 ], [ -75.055359508817332, 38.59241256246171 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3392", "slope": 0.0493, "distance": 2.5130961246412684e-06, "feature_x": -75.058681109866171, "feature_y": 38.592718510693445, "nearest_x": -75.058681, "nearest_y": 38.592716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074881991760321, 38.592009571607164 ], [ -75.055391410860565, 38.592862465585675 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3393", "slope": 0.0357, "distance": 2.149655025228079e-06, "feature_x": -75.058719093977444, "feature_y": 38.593168147599812, "nearest_x": -75.058719, "nearest_y": 38.593166 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074914015409604, 38.592459469289437 ], [ -75.05542331330544, 38.593312368631558 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3394", "slope": 0.0345, "distance": 3.0475368499252537e-06, "feature_x": -75.058751133230572, "feature_y": 38.593618044623206, "nearest_x": -75.058751, "nearest_y": 38.593615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074946039506997, 38.592909366927891 ], [ -75.055455216151884, 38.593762271633814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3395", "slope": 0.0403, "distance": 2.303536387915048e-06, "feature_x": -75.058752100704766, "feature_y": 38.594069301334059, "nearest_x": -75.058752, "nearest_y": 38.594067 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074978064008775, 38.59335926455681 ], [ -75.055487119399999, 38.594212174626698 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3396", "slope": 0.0461, "distance": 1.983733310656097e-06, "feature_x": -75.058789086723792, "feature_y": 38.594518981836735, "nearest_x": -75.058789, "nearest_y": 38.594517 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075010088914823, 38.593809162107576 ], [ -75.055519023005914, 38.594662077541628 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3397", "slope": 0.0271, "distance": 2.1820914473732241e-06, "feature_x": -75.058837095395504, "feature_y": 38.594968180005225, "nearest_x": -75.058837, "nearest_y": 38.594966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075042114181457, 38.594259059648842 ], [ -75.055550927057297, 38.595111980447165 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3398", "slope": 0.0387, "distance": 2.8046483355069296e-06, "feature_x": -75.058921122612134, "feature_y": 38.595415801966908, "nearest_x": -75.058921, "nearest_y": 38.595413 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075074139896216, 38.594708957111848 ], [ -75.05558283151035, 38.595561883274719 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3399", "slope": 0.0357, "distance": 2.3600738291538118e-06, "feature_x": -75.058938103176459, "feature_y": 38.595866357817442, "nearest_x": -75.058938, "nearest_y": 38.595864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075106166015345, 38.595158854531078 ], [ -75.055614736365072, 38.596011786058554 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3400", "slope": 0.0361, "distance": 2.3526808832086201e-06, "feature_x": -75.058945102853272, "feature_y": 38.596317350431562, "nearest_x": -75.058945, "nearest_y": 38.596315 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075138192538873, 38.595608751940773 ], [ -75.055646641577709, 38.596461688833138 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3401", "slope": 0.0412, "distance": 2.5444423011165096e-06, "feature_x": -75.059016111236602, "feature_y": 38.596765542009649, "nearest_x": -75.059016, "nearest_y": 38.596763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075170219466813, 38.596058649272308 ], [ -75.055678547235829, 38.596911591529619 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3402", "slope": 0.0392, "distance": 2.3621000893848261e-06, "feature_x": -75.059027103265066, "feature_y": 38.597216359841767, "nearest_x": -75.059027, "nearest_y": 38.597214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075202246755381, 38.596508546594343 ], [ -75.055710453295703, 38.597361494182415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3403", "slope": 0.0556, "distance": 2.2607316578093249e-06, "feature_x": -75.059059098833515, "feature_y": 38.59766625857025, "nearest_x": -75.059059, "nearest_y": 38.597664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075234274492132, 38.596958443838169 ], [ -75.055742359757318, 38.597811396825939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3404", "slope": 0.0437, "distance": 2.7584352692094302e-06, "feature_x": -75.059123120591863, "feature_y": 38.598114755798022, "nearest_x": -75.059123, "nearest_y": 38.598112 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07526630263331, 38.597408341038111 ], [ -75.055774266576847, 38.598261299391403 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3405", "slope": 0.0645, "distance": 2.550210304724213e-06, "feature_x": -75.059226111488798, "feature_y": 38.598561547772135, "nearest_x": -75.059226, "nearest_y": 38.598559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075298331178985, 38.597858238228618 ], [ -75.055806173841958, 38.598711201947573 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3406", "slope": 0.0278, "distance": 2.435817549908492e-06, "feature_x": -75.059304106487843, "feature_y": 38.599009433488746, "nearest_x": -75.059304, "nearest_y": 38.599007 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075330360085289, 38.598308135340886 ], [ -75.055838081508824, 38.599161104425654 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3407", "slope": 0.0641, "distance": 2.664686493902349e-06, "feature_x": -75.059397116493429, "feature_y": 38.599456662138877, "nearest_x": -75.059397, "nearest_y": 38.599454 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075362389439917, 38.598758032443676 ], [ -75.055869989577488, 38.599611006860101 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3408", "slope": 0.0704, "distance": 2.893549307690883e-06, "feature_x": -75.059490126498744, "feature_y": 38.599903890782883, "nearest_x": -75.05949, "nearest_y": 38.599901 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075394419198972, 38.599207929468221 ], [ -75.055901898004166, 38.600060909285212 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3409", "slope": 0.0471, "distance": 3.1481937526406046e-06, "feature_x": -75.05949113763117, "feature_y": 38.600355145183869, "nearest_x": -75.059491, "nearest_y": 38.600352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075426449362595, 38.599657826448961 ], [ -75.055933806876425, 38.600510811632276 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3410", "slope": 0.0736, "distance": 1.678487322731031e-06, "feature_x": -75.059600073379286, "feature_y": 38.600801676882575, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075458479886919, 38.600107723420194 ], [ -75.055965716150581, 38.600960713970011 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3410", "slope": 0.0437, "distance": 1.678487322731031e-06, "feature_x": -75.059600073379286, "feature_y": 38.600801676882575, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075458479886919, 38.600107723420194 ], [ -75.055965716150581, 38.600960713970011 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3411", "slope": 0.0755, "distance": 3.2739108310979188e-06, "feature_x": -75.059776143127223, "feature_y": 38.601245270780751, "nearest_x": -75.059776, "nearest_y": 38.601242 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075490510859566, 38.600557620313218 ], [ -75.055997625826535, 38.601410616229749 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3412", "slope": 0.0433, "distance": 3.4539643718995908e-06, "feature_x": -75.059733150998724, "feature_y": 38.601698450662148, "nearest_x": -75.059733, "nearest_y": 38.601695 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075522542236769, 38.601007517196713 ], [ -75.056029535860517, 38.601860518445733 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3413", "slope": 0.0754, "distance": 4.5928105233286484e-06, "feature_x": -75.059988200786265, "feature_y": 38.602138588419486, "nearest_x": -75.059988, "nearest_y": 38.602134 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075554574018511, 38.601457414002041 ], [ -75.056061446340223, 38.602310420652486 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3414", "slope": 0.0528, "distance": 4.672453492638175e-06, "feature_x": -75.059993204268082, "feature_y": 38.602589667986308, "nearest_x": -75.059993, "nearest_y": 38.602585 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075586606161025, 38.601907310763501 ], [ -75.056093357221769, 38.60276032278108 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3415", "slope": 0.0771, "distance": 4.350692561518685e-06, "feature_x": -75.06019019020151, "feature_y": 38.603032346533006, "nearest_x": -75.06019, "nearest_y": 38.603028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075618638751962, 38.602357207515475 ], [ -75.056125268505241, 38.603210224900451 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3416", "slope": 0.0809, "distance": 5.0343732395023579e-06, "feature_x": -75.060364220090349, "feature_y": 38.603476029560035, "nearest_x": -75.060364, "nearest_y": 38.603471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075650671747439, 38.602807104189189 ], [ -75.056157180190596, 38.603660126941705 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3417", "slope": 0.08, "distance": 4.6459691674017525e-06, "feature_x": -75.060334203110273, "feature_y": 38.603928641527304, "nearest_x": -75.060334, "nearest_y": 38.603924 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075682705147628, 38.603257000853418 ], [ -75.05618909223405, 38.604110028939274 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3418", "slope": 0.1088, "distance": 5.1547531255734933e-06, "feature_x": -75.060512225353079, "feature_y": 38.604372149824833, "nearest_x": -75.060512, "nearest_y": 38.604367 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075714738908573, 38.603706897439487 ], [ -75.056221004723326, 38.604559930927579 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3419", "slope": 0.0641, "distance": 2.8332007636965627e-05, "feature_x": -75.060401238605508, "feature_y": 38.604828304920296, "nearest_x": -75.0604, "nearest_y": 38.6048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075746773117942, 38.604156793981623 ], [ -75.056252917614486, 38.605009832837773 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3420", "slope": 0.0735, "distance": 4.8701512844179721e-06, "feature_x": -75.060555212911012, "feature_y": 38.605272865495088, "nearest_x": -75.060555, "nearest_y": 38.605268 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075778807732007, 38.604606690514323 ], [ -75.056284830907643, 38.60545973473868 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3421", "slope": 0.0433, "distance": 3.5298005242198351e-05, "feature_x": -75.060301543141961, "feature_y": 38.605735264257923, "nearest_x": -75.0603, "nearest_y": 38.6057 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075810842750698, 38.605056586968757 ], [ -75.056316744558927, 38.605909636561535 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3422", "slope": 0.0567, "distance": 5.0047056757649242e-06, "feature_x": -75.060497218793429, "feature_y": 38.606177999920831, "nearest_x": -75.060497, "nearest_y": 38.606173 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075842878174072, 38.605506483379351 ], [ -75.05634865865602, 38.606359538340683 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3423", "slope": 0.0545, "distance": 3.63154977562892e-06, "feature_x": -75.060261158762444, "feature_y": 38.606639628077765, "nearest_x": -75.060261, "nearest_y": 38.606636 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075874913958387, 38.60595637978048 ], [ -75.056380573155138, 38.60680944011051 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3424", "slope": 0.045, "distance": 2.019524619984666e-06, "feature_x": -75.060099911711333, "feature_y": 38.607097982406188, "nearest_x": -75.0601, "nearest_y": 38.6071 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075906950191154, 38.606406276103364 ], [ -75.056412488056239, 38.607259341802298 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3425", "slope": 0.0169, "distance": 0.00013641264748481721, "feature_x": -75.06022703637295, "feature_y": 38.607543717772451, "nearest_x": -75.060233, "nearest_y": 38.60768 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075938986828703, 38.606856172416741 ], [ -75.056444403315581, 38.607709243484763 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3426", "slope": 0.0969, "distance": 2.7318108489024219e-06, "feature_x": -75.062599795260311, "feature_y": 38.609297275872215, "nearest_x": -75.0626, "nearest_y": 38.6093 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076068083584801, 38.608285027750824 ], [ -75.056631700185051, 38.609745825300521 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3427", "slope": 0.0358, "distance": 1.2465093148646706e-05, "feature_x": -75.062099065784707, "feature_y": 38.60978756996424, "nearest_x": -75.0621, "nearest_y": 38.6098 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076122901146903, 38.608733568044606 ], [ -75.056686397830148, 38.610194374683999 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3428", "slope": 0.0679, "distance": 2.8139275916123421e-05, "feature_x": -75.0627548910592, "feature_y": 38.61019093986426, "nearest_x": -75.062757, "nearest_y": 38.610219 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076177719352444, 38.60918210831197 ], [ -75.056741096203609, 38.610642924041279 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3429", "slope": 0.0554, "distance": 2.7222822883126718e-05, "feature_x": -75.062857959744051, "feature_y": 38.610635853739829, "nearest_x": -75.06286, "nearest_y": 38.610663 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07623253828892, 38.609630648484107 ], [ -75.056795795217852, 38.611091473303645 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3430", "slope": 0.0357, "distance": 1.5374201610885378e-05, "feature_x": -75.062501152243058, "feature_y": 38.611115330962498, "nearest_x": -75.0625, "nearest_y": 38.6111 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076287357868821, 38.610079188595378 ], [ -75.056850494960472, 38.611540022539828 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3431", "slope": 0.0733, "distance": 1.5423820069154685e-05, "feature_x": -75.063201155961821, "feature_y": 38.611515380441404, "nearest_x": -75.0632, "nearest_y": 38.6115 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076342178179786, 38.610527728680111 ], [ -75.056905195343916, 38.611988571681032 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3432", "slope": 0.0355, "distance": 5.6905277919063207e-06, "feature_x": -75.062700426485364, "feature_y": 38.612005674523488, "nearest_x": -75.0627, "nearest_y": 38.612 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076396999134175, 38.610976268669681 ], [ -75.056959896455822, 38.612437120796059 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3433", "slope": 0.0893, "distance": 1.3234778738234673e-05, "feature_x": -75.063300991900874, "feature_y": 38.612413197556627, "nearest_x": -75.0633, "nearest_y": 38.6124 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076451820819685, 38.611424808632719 ], [ -75.057014598252366, 38.612885669816123 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3434", "slope": 0.0362, "distance": 3.9931839676161378e-06, "feature_x": -75.062899700724657, "feature_y": 38.612896018046655, "nearest_x": -75.0629, "nearest_y": 38.6129 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076506643148662, 38.611873348500552 ], [ -75.057069300689804, 38.613334218810017 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3434", "slope": 0.0352, "distance": 3.9931839676161378e-06, "feature_x": -75.062899700724657, "feature_y": 38.612896018046655, "nearest_x": -75.0629, "nearest_y": 38.6129 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076506643148662, 38.611873348500552 ], [ -75.057069300689804, 38.613334218810017 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3435", "slope": 0.0908, "distance": 3.5510440095652406e-06, "feature_x": -75.063500266138504, "feature_y": 38.613303541056887, "nearest_x": -75.0635, "nearest_y": 38.6133 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076561466208801, 38.612321888341924 ], [ -75.057124003855762, 38.613782767708919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3435", "slope": 0.0571, "distance": 3.5510440095652406e-06, "feature_x": -75.063500266138504, "feature_y": 38.613303541056887, "nearest_x": -75.0635, "nearest_y": 38.6133 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076561466208801, 38.612321888341924 ], [ -75.057124003855762, 38.613782767708919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3436", "slope": 0.0314, "distance": 1.3676957459110382e-05, "feature_x": -75.063098974959189, "feature_y": 38.613786361508268, "nearest_x": -75.0631, "nearest_y": 38.6138 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076616289912437, 38.61277042808802 ], [ -75.057178707662601, 38.614231316547354 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3436", "slope": 0.0312, "distance": 1.3676957459110382e-05, "feature_x": -75.063098974959189, "feature_y": 38.613786361508268, "nearest_x": -75.0631, "nearest_y": 38.6138 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076616289912437, 38.61277042808802 ], [ -75.057178707662601, 38.614231316547354 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3437", "slope": 0.0766, "distance": 6.1327286252854303e-06, "feature_x": -75.063699540373108, "feature_y": 38.614193884519352, "nearest_x": -75.0637, "nearest_y": 38.6142 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076671114347334, 38.61321896780764 ], [ -75.057233412198059, 38.614679865359491 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3437", "slope": 0.0744, "distance": 6.1327286252854303e-06, "feature_x": -75.063699540373108, "feature_y": 38.614193884519352, "nearest_x": -75.0637, "nearest_y": 38.6142 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076671114347334, 38.61321896780764 ], [ -75.057233412198059, 38.614679865359491 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3438", "slope": 0.0319, "distance": 1.5866088813471958e-05, "feature_x": -75.063198810891194, "feature_y": 38.614684178533743, "nearest_x": -75.0632, "nearest_y": 38.6147 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076725939425742, 38.613667507432041 ], [ -75.057288117374455, 38.615128414076722 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3439", "slope": 0.0357, "distance": 8.3218941145224977e-06, "feature_x": -75.063799376302612, "feature_y": 38.615091701510785, "nearest_x": -75.0638, "nearest_y": 38.6151 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076780765235412, 38.614116046995505 ], [ -75.057342823279498, 38.615576962767712 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3440", "slope": 0.0526, "distance": 1.4211587213649184e-05, "feature_x": -75.0642010651097, "feature_y": 38.615514171617846, "nearest_x": -75.0642, "nearest_y": 38.6155 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076835591732532, 38.614564586532531 ], [ -75.057397529825479, 38.61602551136378 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3441", "slope": 0.0469, "distance": 3.0164269324992788e-06, "feature_x": -75.063799773929134, "feature_y": 38.615996992056616, "nearest_x": -75.0638, "nearest_y": 38.616 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07689041887329, 38.615013125974336 ], [ -75.057452237100165, 38.616474059933616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3442", "slope": 0.0389, "distance": 1.9517033548313029e-05, "feature_x": -75.064201462734871, "feature_y": 38.616419462142872, "nearest_x": -75.0642, "nearest_y": 38.6164 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076945246745353, 38.615461665389617 ], [ -75.057506945015916, 38.616922608408572 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3443", "slope": 0.0367, "distance": 2.4772980772983877e-05, "feature_x": -75.063501856650277, "feature_y": 38.616924703308001, "nearest_x": -75.0635, "nearest_y": 38.6169 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077000075261111, 38.615910204709657 ], [ -75.057561653660358, 38.617371156857239 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3444", "slope": 0.0369, "distance": 2.9928358172620163e-05, "feature_x": -75.063597756971717, "feature_y": 38.617370155813852, "nearest_x": -75.0636, "nearest_y": 38.6174 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077054904508245, 38.616358744003179 ], [ -75.057616362945907, 38.61781970521097 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3445", "slope": 0.0324, "distance": 7.3949379800884102e-06, "feature_x": -75.063999445774613, "feature_y": 38.61779262585992, "nearest_x": -75.064, "nearest_y": 38.6178 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077109734399073, 38.616807283201474 ], [ -75.057671072960161, 38.618268253504077 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3445", "slope": 0.0352, "distance": 7.3949379800884102e-06, "feature_x": -75.063999445774613, "feature_y": 38.61779262585992, "nearest_x": -75.064, "nearest_y": 38.6178 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077109734399073, 38.616807283201474 ], [ -75.057671072960161, 38.618268253504077 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3446", "slope": 0.048, "distance": 3.0127824413886734e-05, "feature_x": -75.06420225797784, "feature_y": 38.618230043091387, "nearest_x": -75.0642, "nearest_y": 38.6182 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077164565021334, 38.617255822373245 ], [ -75.057725783659464, 38.618716801771015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3447", "slope": 0.0388, "distance": 1.2899743260911668e-05, "feature_x": -75.063800966791888, "feature_y": 38.618712863463358, "nearest_x": -75.0638, "nearest_y": 38.6187 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077219396287347, 38.617704361449832 ], [ -75.057780494999847, 38.619165349942989 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3448", "slope": 0.0368, "distance": 2.6812296819559234e-05, "feature_x": -75.063697990509382, "feature_y": 38.61917326311147, "nearest_x": -75.0637, "nearest_y": 38.6192 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077274228284793, 38.618152900465461 ], [ -75.057835207069118, 38.61961389808878 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3449", "slope": 0.0364, "distance": 1.0710411105202993e-05, "feature_x": -75.063900802708972, "feature_y": 38.619610680288588, "nearest_x": -75.0639, "nearest_y": 38.6196 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077329060926132, 38.618601439454629 ], [ -75.057889919779541, 38.620062446139563 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3450", "slope": 0.0537, "distance": 3.324380242113268e-05, "feature_x": -75.064302491510404, "feature_y": 38.620033150305808, "nearest_x": -75.0643, "nearest_y": 38.62 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077383894298876, 38.619049978348521 ], [ -75.057944633218881, 38.620510994164128 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3451", "slope": 0.0304, "distance": 8.521042671944837e-06, "feature_x": -75.064000638623298, "feature_y": 38.620508497077644, "nearest_x": -75.064, "nearest_y": 38.6205 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077438728315556, 38.619498517215902 ], [ -75.057999347299429, 38.620959542093736 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3452", "slope": 0.0277, "distance": 2.3696368942218608e-05, "feature_x": -75.063798224037214, "feature_y": 38.620976370275983, "nearest_x": -75.0638, "nearest_y": 38.621 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07749356306374, 38.619947055988021 ], [ -75.058054062108937, 38.621408089997104 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3453", "slope": 0.0396, "distance": 8.6576857705055169e-06, "feature_x": -75.064299351135688, "feature_y": 38.621391366663566, "nearest_x": -75.0643, "nearest_y": 38.6214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077548398499701, 38.620395594733672 ], [ -75.05810877755971, 38.621856637805521 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3453", "slope": 0.0407, "distance": 8.6576857705055169e-06, "feature_x": -75.064299351135688, "feature_y": 38.621391366663566, "nearest_x": -75.0643, "nearest_y": 38.6214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077548398499701, 38.620395594733672 ], [ -75.05810877755971, 38.621856637805521 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3454", "slope": 0.0552, "distance": 3.5603858073944734e-05, "feature_x": -75.064452668389109, "feature_y": 38.62183250372388, "nearest_x": -75.06445, "nearest_y": 38.621797 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077603234579556, 38.620844133384054 ], [ -75.058163493739457, 38.622305185553373 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3455", "slope": 0.0453, "distance": 1.0847128416901236e-05, "feature_x": -75.064399187044259, "feature_y": 38.622289183378633, "nearest_x": -75.0644, "nearest_y": 38.6223 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077658071391028, 38.621292672007868 ], [ -75.05821821056054, 38.622753733274941 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3456", "slope": 0.0704, "distance": 2.667550193214202e-05, "feature_x": -75.064601999239144, "feature_y": 38.622726600478309, "nearest_x": -75.0646, "nearest_y": 38.6227 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077712908846493, 38.621741210536477 ], [ -75.058272928110611, 38.623202280901559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3457", "slope": 0.0244, "distance": 1.9527208122026963e-06, "feature_x": -75.064300146349865, "feature_y": 38.623201947228871, "nearest_x": -75.0643, "nearest_y": 38.6232 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077767747033619, 38.622189749038526 ], [ -75.058327646302132, 38.623650828501944 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3458", "slope": 0.0604, "distance": 3.5552894382352997e-05, "feature_x": -75.064714664570161, "feature_y": 38.623623452903473, "nearest_x": -75.064712, "nearest_y": 38.623588 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077822585864766, 38.622638287445341 ], [ -75.058382365222641, 38.624099376007337 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3459", "slope": 0.0262, "distance": 2.3680087288767636e-07, "feature_x": -75.064399982252567, "feature_y": 38.624099763865118, "nearest_x": -75.0644, "nearest_y": 38.6241 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077877425427587, 38.623086825791269 ], [ -75.058437084828455, 38.62454792348656 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3460", "slope": 0.0567, "distance": 3.5726164559995374e-05, "feature_x": -75.064849677556481, "feature_y": 38.624518625686314, "nearest_x": -75.064847, "nearest_y": 38.624483 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077932265634516, 38.623535364110666 ], [ -75.058491805075661, 38.624996470870762 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3461", "slope": 0.0244, "distance": 2.4263506060426959e-06, "feature_x": -75.064499818153124, "feature_y": 38.624997580473398, "nearest_x": -75.0645, "nearest_y": 38.625 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077987106573161, 38.623983902334778 ], [ -75.058546526052069, 38.625445018228696 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3461", "slope": 0.0293, "distance": 2.4263506060426959e-06, "feature_x": -75.064499818153124, "feature_y": 38.624997580473398, "nearest_x": -75.0645, "nearest_y": 38.625 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077987106573161, 38.623983902334778 ], [ -75.058546526052069, 38.625445018228696 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3461", "slope": 0.0297, "distance": 2.4263506060426959e-06, "feature_x": -75.064499818153124, "feature_y": 38.624997580473398, "nearest_x": -75.0645, "nearest_y": 38.625 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077987106573161, 38.623983902334778 ], [ -75.058546526052069, 38.625445018228696 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3462", "slope": 0.0409, "distance": 2.7601564354635326e-05, "feature_x": -75.064802068645122, "feature_y": 38.625427523936168, "nearest_x": -75.0648, "nearest_y": 38.6254 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07804194815597, 38.624432440532381 ], [ -75.058601247669912, 38.625893565491701 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3463", "slope": 0.035, "distance": 2.8787302458365208e-06, "feature_x": -75.064500215751238, "feature_y": 38.625902870633944, "nearest_x": -75.0645, "nearest_y": 38.6259 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078096790470511, 38.624880978634692 ], [ -75.058655970016972, 38.62634211272843 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3464", "slope": 0.043, "distance": 2.541195809600896e-05, "feature_x": -75.064901904541642, "feature_y": 38.626325340488066, "nearest_x": -75.0649, "nearest_y": 38.6263 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078151633429286, 38.625329516710515 ], [ -75.058710693005537, 38.62679065987021 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3465", "slope": 0.0361, "distance": 6.8908491545101859e-07, "feature_x": -75.064600051644618, "feature_y": 38.626800687146897, "nearest_x": -75.0646, "nearest_y": 38.6268 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078206477119821, 38.625778054691061 ], [ -75.058765416723332, 38.62723920695133 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3466", "slope": 0.0422, "distance": 3.0716984574306384e-05, "feature_x": -75.064902302135977, "feature_y": 38.627230630594369, "nearest_x": -75.0649, "nearest_y": 38.6272 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078261321498459, 38.626226592645047 ], [ -75.05882014108272, 38.627687754006324 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3467", "slope": 0.0344, "distance": 1.500572650934945e-06, "feature_x": -75.06469988753706, "feature_y": 38.627698503647643, "nearest_x": -75.0647, "nearest_y": 38.6277 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078316166521262, 38.62667513050377 ], [ -75.058874866171351, 38.628136300966212 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3468", "slope": 0.0394, "distance": 2.8527295963083065e-05, "feature_x": -75.065002138026387, "feature_y": 38.628128447064142, "nearest_x": -75.065, "nearest_y": 38.6281 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078371012276008, 38.627123668301579 ], [ -75.058929591901645, 38.628584847899916 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3469", "slope": 0.0258, "distance": 1.1184935682959431e-05, "feature_x": -75.064899161726061, "feature_y": 38.628588846521481, "nearest_x": -75.0649, "nearest_y": 38.6286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078425858675033, 38.627572206072863 ], [ -75.05898431836124, 38.629033394738578 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3469", "slope": 0.0274, "distance": 1.1184935682959431e-05, "feature_x": -75.064899161726061, "feature_y": 38.628588846521481, "nearest_x": -75.0649, "nearest_y": 38.6286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078425858675033, 38.627572206072863 ], [ -75.05898431836124, 38.629033394738578 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3470", "slope": 0.027, "distance": 3.383225163749596e-05, "feature_x": -75.065002535615534, "feature_y": 38.629033737099824, "nearest_x": -75.065, "nearest_y": 38.629 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078480705805973, 38.628020743748863 ], [ -75.059039045462512, 38.629481941551035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3471", "slope": 0.0287, "distance": 1.6146735041870598e-06, "feature_x": -75.064800121014457, "feature_y": 38.629501610132301, "nearest_x": -75.0648, "nearest_y": 38.6295 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078535553581304, 38.628469281398367 ], [ -75.059093773293085, 38.629930488268464 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3472", "slope": 0.0459, "distance": 2.4147833773791119e-05, "feature_x": -75.065201809800612, "feature_y": 38.629924079918972, "nearest_x": -75.0652, "nearest_y": 38.6299 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078590402088565, 38.628917818952523 ], [ -75.05914850180929, 38.630379034959695 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3473", "slope": 0.0305, "distance": 5.7509189542984883e-07, "feature_x": -75.064899956898756, "feature_y": 38.630399426525528, "nearest_x": -75.0649, "nearest_y": 38.6304 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07864525124026, 38.629366356480183 ], [ -75.059203230967185, 38.630827581555913 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3474", "slope": 0.0447, "distance": 1.4463352222857174e-05, "feature_x": -75.065401083980717, "feature_y": 38.630814422674625, "nearest_x": -75.0654, "nearest_y": 38.6308 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078700101123943, 38.62981489391251 ], [ -75.059257960854538, 38.631276128091478 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3475", "slope": 0.0362, "distance": 1.775423712091263e-05, "feature_x": -75.065198669378205, "feature_y": 38.631282295695968, "nearest_x": -75.0652, "nearest_y": 38.6313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078754951652073, 38.630263431318348 ], [ -75.059312691383667, 38.631724674600818 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3476", "slope": 0.0367, "distance": 1.9768200759847617e-05, "feature_x": -75.06540148156185, "feature_y": 38.631719712603477, "nearest_x": -75.0654, "nearest_y": 38.6317 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078809802912261, 38.630711968628852 ], [ -75.059367422642254, 38.632173221015144 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3477", "slope": 0.0372, "distance": 1.2449414207004959e-05, "feature_x": -75.065199066957135, "feature_y": 38.632187585599283, "nearest_x": -75.0652, "nearest_y": 38.6322 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078864654816911, 38.631160505878526 ], [ -75.059422154542702, 38.632621767403265 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3478", "slope": 0.0489, "distance": 1.7578341745904192e-05, "feature_x": -75.065501317439242, "feature_y": 38.632617528903339, "nearest_x": -75.0655, "nearest_y": 38.6326 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078919507453733, 38.631609043101555 ], [ -75.05947688717265, 38.633070313696308 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3479", "slope": 0.0392, "distance": 1.4639288190584691e-05, "feature_x": -75.065298902833121, "feature_y": 38.633085401884244, "nearest_x": -75.0653, "nearest_y": 38.6331 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078974360778858, 38.632057580229315 ], [ -75.059531620444474, 38.633518859963132 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3480", "slope": 0.0409, "distance": 2.7300534470869908e-05, "feature_x": -75.065182953913961, "feature_y": 38.633546776247243, "nearest_x": -75.065185, "nearest_y": 38.633574 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079029214748516, 38.63250611733055 ], [ -75.059586354445855, 38.633967406134929 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3481", "slope": 0.0368, "distance": 1.8398502952694771e-06, "feature_x": -75.06519986210921, "feature_y": 38.633998165324215, "nearest_x": -75.0652, "nearest_y": 38.634 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079084069450374, 38.632954654336451 ], [ -75.059641089089183, 38.634415952280456 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3482", "slope": 0.047, "distance": 3.424129454883032e-05, "feature_x": -75.065372433726324, "feature_y": 38.63443785500781, "nearest_x": -75.065375, "nearest_y": 38.634472 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079138924796823, 38.633403191315864 ], [ -75.059695824462111, 38.634864498331005 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3483", "slope": 0.0345, "distance": 3.4648548370296381e-06, "feature_x": -75.065200259679628, "feature_y": 38.634903455110063, "nearest_x": -75.0652, "nearest_y": 38.6349 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079193780875499, 38.633851728199943 ], [ -75.059750560476971, 38.635313044320903 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3484", "slope": 0.0415, "distance": 4.0987250084036818e-05, "feature_x": -75.065403071861468, "feature_y": 38.635340871974954, "nearest_x": -75.0654, "nearest_y": 38.6353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079248637598795, 38.63430026505749 ], [ -75.059805297221558, 38.635761590284567 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3485", "slope": 0.0494, "distance": 6.2197998729516141e-06, "feature_x": -75.065399533846147, "feature_y": 38.63579379769309, "nearest_x": -75.0654, "nearest_y": 38.6358 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079303495054361, 38.634748801819711 ], [ -75.059860034651919, 38.636210136153181 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3486", "slope": 0.0524, "distance": 2.1624925614168213e-05, "feature_x": -75.065293379281741, "feature_y": 38.636254435893711, "nearest_x": -75.065295, "nearest_y": 38.636276 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079358353154618, 38.635197338521003 ], [ -75.059914772724341, 38.636658681995556 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3487", "slope": 0.0509, "distance": 9.1514092517679679e-07, "feature_x": -75.06539993141314, "feature_y": 38.636699087432874, "nearest_x": -75.0654, "nearest_y": 38.6367 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079413211987216, 38.635645875195721 ], [ -75.059969511526504, 38.637107227742867 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3488", "slope": 0.0509, "distance": 7.1412797567745875e-06, "feature_x": -75.065105464784111, "feature_y": 38.637173878804838, "nearest_x": -75.065106, "nearest_y": 38.637181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079468071464532, 38.636094411775161 ], [ -75.060024250970741, 38.637555773463959 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3489", "slope": 0.0561, "distance": 6.9101533500729201e-06, "feature_x": -75.065124482106256, "feature_y": 38.637625109281217, "nearest_x": -75.065125, "nearest_y": 38.637632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079522931674234, 38.636542948328071 ], [ -75.060078991144749, 38.638004319090037 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3490", "slope": 0.0518, "distance": 4.8574203693074653e-06, "feature_x": -75.065132635951969, "feature_y": 38.638077156240954, "nearest_x": -75.065133, "nearest_y": 38.638082 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079577792528667, 38.636991484785625 ], [ -75.060133731960889, 38.638452864689818 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3491", "slope": 0.0551, "distance": 1.3603355726295224e-05, "feature_x": -75.065323980472186, "feature_y": 38.63851543490324, "nearest_x": -75.065325, "nearest_y": 38.638529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079632654115557, 38.637440021216634 ], [ -75.060188473506841, 38.638901410194578 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3492", "slope": 0.0515, "distance": 1.0524289683423301e-05, "feature_x": -75.065305211238254, "feature_y": 38.638969505309518, "nearest_x": -75.065306, "nearest_y": 38.63898 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079687516391076, 38.637888557552301 ], [ -75.060243215694925, 38.639349955638686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3493", "slope": 0.033, "distance": 2.0564769759023888e-06, "feature_x": -75.065107154126352, "feature_y": 38.639437050693203, "nearest_x": -75.065107, "nearest_y": 38.639435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079742379311412, 38.638337093861438 ], [ -75.060297958612935, 38.639798501056511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3494", "slope": 0.0351, "distance": 2.2297801394685484e-06, "feature_x": -75.064999832885107, "feature_y": 38.63989777649104, "nearest_x": -75.065, "nearest_y": 38.6399 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079797242964233, 38.638785630075233 ], [ -75.060352702173105, 38.640247046379322 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3495", "slope": 0.0481, "distance": 3.0857937241763458e-06, "feature_x": -75.065272768729628, "feature_y": 38.640329922884966, "nearest_x": -75.065273, "nearest_y": 38.640333 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079852107261942, 38.639234166262533 ], [ -75.06040744646323, 38.640695591675893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3496", "slope": 0.0516, "distance": 1.1309637141087835e-06, "feature_x": -75.06526891523788, "feature_y": 38.640782872217081, "nearest_x": -75.065269, "nearest_y": 38.640784 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079906972292193, 38.639682702354435 ], [ -75.060462191395573, 38.641144136877394 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3497", "slope": 0.0299, "distance": 8.8452134096497178e-07, "feature_x": -75.065100066292061, "feature_y": 38.641700882033653, "nearest_x": -75.0651, "nearest_y": 38.6417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080016704375112, 38.64057977438982 ], [ -75.060571683406351, 38.642041227132808 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3498", "slope": 0.0494, "distance": 6.6300880846470762e-06, "feature_x": -75.065245496904055, "feature_y": 38.642142611441173, "nearest_x": -75.065245, "nearest_y": 38.642136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080071571427794, 38.641028310298921 ], [ -75.060626430397178, 38.642489772186693 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3499", "slope": 0.0369, "distance": 6.1889592416009964e-06, "feature_x": -75.065100463842853, "feature_y": 38.642606171552991, "nearest_x": -75.0651, "nearest_y": 38.6426 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080126439213132, 38.641476846181419 ], [ -75.060681178117946, 38.642938317145564 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3500", "slope": 0.0567, "distance": 7.6329264864924115e-06, "feature_x": -75.065545427936328, "feature_y": 38.643025388540885, "nearest_x": -75.065546, "nearest_y": 38.643033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080181307643485, 38.64192538196869 ], [ -75.060735926481144, 38.643386862078216 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3501", "slope": 0.0541, "distance": 5.1306317259267737e-06, "feature_x": -75.065547615475396, "feature_y": 38.64347788379802, "nearest_x": -75.065548, "nearest_y": 38.643483 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080236176806537, 38.642373917729266 ], [ -75.060790675574395, 38.643835406915734 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3502", "slope": 0.0491, "distance": 4.4270814484719345e-06, "feature_x": -75.065573668204237, "feature_y": 38.643928585369579, "nearest_x": -75.065574, "nearest_y": 38.643933 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080291046614619, 38.642822453394572 ], [ -75.060845425310049, 38.644283951692643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3503", "slope": 0.052, "distance": 5.9719078328772534e-06, "feature_x": -75.065629552424355, "feature_y": 38.644377044887975, "nearest_x": -75.06563, "nearest_y": 38.644383 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080345917155455, 38.643270989033262 ], [ -75.06090017577587, 38.644732496443218 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3504", "slope": 0.0512, "distance": 5.8071920152799939e-06, "feature_x": -75.065455435230746, "feature_y": 38.644842790859464, "nearest_x": -75.065455, "nearest_y": 38.644837 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080400788385191, 38.643719524576639 ], [ -75.060954926884108, 38.645181041098795 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3505", "slope": 0.0425, "distance": 6.0610643315713116e-06, "feature_x": -75.06548745425772, "feature_y": 38.64529304401777, "nearest_x": -75.065487, "nearest_y": 38.645287 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080455660260029, 38.64416806005908 ], [ -75.061009678722542, 38.645629585728038 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3506", "slope": 0.0375, "distance": 5.1157578347704937e-06, "feature_x": -75.06553538340998, "feature_y": 38.645742101369912, "nearest_x": -75.065535, "nearest_y": 38.645737 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08051053286772, 38.644616595514947 ], [ -75.061064431203434, 38.646078130262303 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3507", "slope": 0.0462, "distance": 4.3953031403510384e-06, "feature_x": -75.065580329414189, "feature_y": 38.646191382941474, "nearest_x": -75.06558, "nearest_y": 38.646187 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080565406120513, 38.645065130875466 ], [ -75.061119184414594, 38.646526674770207 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3508", "slope": 0.0448, "distance": 4.6491284335356359e-06, "feature_x": -75.065612348437611, "feature_y": 38.646641636052891, "nearest_x": -75.065612, "nearest_y": 38.646637 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080620280106217, 38.645513666209375 ], [ -75.061173938268254, 38.646975219183112 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3509", "slope": 0.0304, "distance": 1.0226564506409281e-05, "feature_x": -75.065400766449031, "feature_y": 38.647110197802583, "nearest_x": -75.0654, "nearest_y": 38.6471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080675154737051, 38.645962201447958 ], [ -75.061228692852211, 38.64742376356967 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3510", "slope": 0.0464, "distance": 3.283103309478926e-06, "feature_x": -75.065701246058339, "feature_y": 38.647540273869673, "nearest_x": -75.065701, "nearest_y": 38.647537 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080730030100852, 38.646410736659959 ], [ -75.061283448122566, 38.647872307861199 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3511", "slope": 0.0652, "distance": 1.1787773795623691e-05, "feature_x": -75.066003116543129, "feature_y": 38.647970245378993, "nearest_x": -75.066004, "nearest_y": 38.647982 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080784906109841, 38.646859271776613 ], [ -75.06133820403555, 38.64832085209207 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3512", "slope": 0.0502, "distance": 2.2168273076724893e-06, "feature_x": -75.065786166144306, "feature_y": 38.648439210592542, "nearest_x": -75.065786, "nearest_y": 38.648437 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080839782851854, 38.647307806866721 ], [ -75.061392960678887, 38.648769396296643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3513", "slope": 0.0459, "distance": 2.1708118513996801e-06, "feature_x": -75.065822162695596, "feature_y": 38.648889164706503, "nearest_x": -75.065822, "nearest_y": 38.648887 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080894660239082, 38.647756341861459 ], [ -75.061447717964867, 38.649217940406153 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3514", "slope": 0.0438, "distance": 3.6237552804154594e-06, "feature_x": -75.065838271589215, "feature_y": 38.649340613563567, "nearest_x": -75.065838, "nearest_y": 38.649337 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080949538359278, 38.648204876795191 ], [ -75.061502475981229, 38.649666484489352 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3515", "slope": 0.073, "distance": 8.2525940307242823e-05, "feature_x": -75.066064185063283, "feature_y": 38.649776293838258, "nearest_x": -75.066058, "nearest_y": 38.649694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081004417124902, 38.648653411702369 ], [ -75.061557234640262, 38.650115028477487 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3516", "slope": 0.0473, "distance": 5.6823001150816399e-06, "feature_x": -75.065868425870804, "feature_y": 38.650243666318794, "nearest_x": -75.065868, "nearest_y": 38.650238 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081059296623494, 38.649101946514172 ], [ -75.061611994029761, 38.650563572439317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3517", "slope": 0.0416, "distance": 6.887477228828641e-06, "feature_x": -75.065874516195109, "feature_y": 38.650695868106375, "nearest_x": -75.065874, "nearest_y": 38.650689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081114176811369, 38.649550481299364 ], [ -75.061666754061974, 38.651012116306106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3518", "slope": 0.0348, "distance": 1.7842079869847321e-05, "feature_x": -75.065711337208825, "feature_y": 38.651160791899464, "nearest_x": -75.06571, "nearest_y": 38.651143 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081169057644587, 38.649999015989309 ], [ -75.061721514824697, 38.65146066014659 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3519", "slope": 0.0322, "distance": 9.3956512415364202e-06, "feature_x": -75.065898704175098, "feature_y": 38.651599369226204, "nearest_x": -75.065898, "nearest_y": 38.65159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081223939210957, 38.650447550652551 ], [ -75.061776276230177, 38.651909203891996 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3520", "slope": 0.0329, "distance": 3.2944095197217021e-05, "feature_x": -75.065697530941492, "feature_y": 38.652067148559262, "nearest_x": -75.0657, "nearest_y": 38.6521 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081278821422728, 38.650896085220495 ], [ -75.061831038366179, 38.652357747576715 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3521", "slope": 0.0363, "distance": 1.9567320266053807e-05, "feature_x": -75.065701466510504, "feature_y": 38.652519512287654, "nearest_x": -75.0657, "nearest_y": 38.6525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081333704367722, 38.65134461976178 ], [ -75.061885801145038, 38.652806291235109 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3521", "slope": 0.0358, "distance": 1.9567320266053807e-05, "feature_x": -75.065701466510504, "feature_y": 38.652519512287654, "nearest_x": -75.0657, "nearest_y": 38.6525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081333704367722, 38.65134461976178 ], [ -75.061885801145038, 38.652806291235109 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3521", "slope": 0.0293, "distance": 1.9567320266053807e-05, "feature_x": -75.065701466510504, "feature_y": 38.652519512287654, "nearest_x": -75.0657, "nearest_y": 38.6525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081333704367722, 38.65134461976178 ], [ -75.061885801145038, 38.652806291235109 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3522", "slope": 0.0369, "distance": 2.7640057522199006e-05, "feature_x": -75.065697928462541, "feature_y": 38.65297243767948, "nearest_x": -75.0657, "nearest_y": 38.653 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081388587958145, 38.651793154207766 ], [ -75.061940564654435, 38.653254834798439 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3523", "slope": 0.0307, "distance": 1.7376649914168877e-05, "feature_x": -75.065801302326648, "feature_y": 38.653417327778492, "nearest_x": -75.0658, "nearest_y": 38.6534 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081443472281819, 38.652241688627093 ], [ -75.061995328850571, 38.65370337833545 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3524", "slope": 0.0297, "distance": 2.2336054063886612e-05, "feature_x": -75.065698325981117, "feature_y": 38.653877726765572, "nearest_x": -75.0657, "nearest_y": 38.6539 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081498357250979, 38.652690222951172 ], [ -75.062050093689621, 38.654151921777462 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3525", "slope": 0.0287, "distance": 3.7670017910863626e-05, "feature_x": -75.065602823252789, "feature_y": 38.654337564071838, "nearest_x": -75.0656, "nearest_y": 38.6543 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081553242953404, 38.653138757214158 ], [ -75.062104859259293, 38.654600465193063 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3526", "slope": 0.0404, "distance": 1.3823889875075731e-05, "feature_x": -75.066061036058358, "feature_y": 38.654755785010494, "nearest_x": -75.06606, "nearest_y": 38.654742 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081608129301429, 38.653587291450584 ], [ -75.062159625471921, 38.655049008513657 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3527", "slope": 0.0522, "distance": 9.0790004625390602e-06, "feature_x": -75.066172680443429, "feature_y": 38.655200053465975, "nearest_x": -75.066172, "nearest_y": 38.655191 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081663016382734, 38.654035825591613 ], [ -75.062214392415228, 38.655497551807862 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3528", "slope": 0.021, "distance": 1.1728150096032366e-05, "feature_x": -75.065699121010837, "feature_y": 38.655688304835074, "nearest_x": -75.0657, "nearest_y": 38.6557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081717904109695, 38.654484359706061 ], [ -75.062269160001549, 38.655946095007046 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3528", "slope": 0.0269, "distance": 1.1728150096032366e-05, "feature_x": -75.065699121010837, "feature_y": 38.655688304835074, "nearest_x": -75.0657, "nearest_y": 38.6557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081717904109695, 38.654484359706061 ], [ -75.062269160001549, 38.655946095007046 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3529", "slope": 0.039, "distance": 1.8299104171462772e-05, "feature_x": -75.066001371462306, "feature_y": 38.656118247638332, "nearest_x": -75.066, "nearest_y": 38.6561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081772792569922, 38.654932893725103 ], [ -75.062323928318548, 38.656394638179897 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3530", "slope": 0.0306, "distance": 1.3918945548273334e-05, "feature_x": -75.065798956817247, "feature_y": 38.65658612020119, "nearest_x": -75.0658, "nearest_y": 38.6566 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081827681719759, 38.655381427717607 ], [ -75.062378697278604, 38.656843181257706 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3530", "slope": 0.0274, "distance": 1.3918945548273334e-05, "feature_x": -75.065798956817247, "feature_y": 38.65658612020119, "nearest_x": -75.0658, "nearest_y": 38.6566 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081827681719759, 38.655381427717607 ], [ -75.062378697278604, 38.656843181257706 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3531", "slope": 0.0353, "distance": 1.6108259962681528e-05, "feature_x": -75.066101207265305, "feature_y": 38.657016062955812, "nearest_x": -75.0661, "nearest_y": 38.657 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081882571515209, 38.655829961614693 ], [ -75.062433466969438, 38.657291724274749 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3532", "slope": 0.0263, "distance": 8.615080150703079e-06, "feature_x": -75.06579935432579, "feature_y": 38.657491409149586, "nearest_x": -75.0658, "nearest_y": 38.6575 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081937462044152, 38.656278495485154 ], [ -75.062488237303342, 38.657740267265488 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3533", "slope": 0.0473, "distance": 2.3029355738744895e-05, "feature_x": -75.066279725980678, "feature_y": 38.657907964586137, "nearest_x": -75.066278, "nearest_y": 38.657885 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081992353218766, 38.656727029260246 ], [ -75.062543008368095, 38.658188810161143 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3534", "slope": 0.0324, "distance": 1.830065197521722e-05, "feature_x": -75.065998628421283, "feature_y": 38.658381750818251, "nearest_x": -75.066, "nearest_y": 38.6584 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082047245126844, 38.657175562974352 ], [ -75.062597780075961, 38.658637353030471 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3535", "slope": 0.0366, "distance": 1.1726518798319254e-05, "feature_x": -75.066300878867281, "feature_y": 38.65881169353819, "nearest_x": -75.0663, "nearest_y": 38.6588 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082102137680735, 38.657624096661841 ], [ -75.062652552514677, 38.659085895804694 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3536", "slope": 0.0491, "distance": 2.1691642353752596e-05, "feature_x": -75.066403625723439, "feature_y": 38.659256630635021, "nearest_x": -75.066402, "nearest_y": 38.659235 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082157030968119, 38.65807263025399 ], [ -75.062707325640417, 38.659534438552654 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3537", "slope": 0.0461, "distance": 2.1668297494992996e-05, "feature_x": -75.066452623973873, "feature_y": 38.659705607355811, "nearest_x": -75.066451, "nearest_y": 38.659684 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082211924901344, 38.658521163819501 ], [ -75.062762099409383, 38.659982981205459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3538", "slope": 0.0438, "distance": 1.9536210912361663e-05, "feature_x": -75.066436464180498, "feature_y": 38.660159481265673, "nearest_x": -75.066435, "nearest_y": 38.66014 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082266819568105, 38.658969697289585 ], [ -75.06281687390927, 38.660431523831946 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3539", "slope": 0.046, "distance": 7.3446333810976822e-06, "feature_x": -75.066500550458301, "feature_y": 38.660607323976734, "nearest_x": -75.0665, "nearest_y": 38.6606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082321714880763, 38.659418230733088 ], [ -75.062871649052383, 38.660880066363347 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3540", "slope": 0.0269, "distance": 1.7378797418329795e-05, "feature_x": -75.066198697511041, "feature_y": 38.661082670080141, "nearest_x": -75.0662, "nearest_y": 38.6611 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082376610926971, 38.659866764081173 ], [ -75.062926424926459, 38.661328608834019 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3541", "slope": 0.0418, "distance": 2.3410651872254174e-06, "feature_x": -75.066699824544145, "feature_y": 38.661497665519015, "nearest_x": -75.0667, "nearest_y": 38.6615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082431507619134, 38.660315297402704 ], [ -75.062981201443876, 38.661777151278386 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3542", "slope": 0.0289, "distance": 1.9569808970679783e-05, "feature_x": -75.066298533301094, "feature_y": 38.661980485230785, "nearest_x": -75.0663, "nearest_y": 38.662 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082486405044904, 38.660763830628795 ], [ -75.063035978692255, 38.662225693627654 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3543", "slope": 0.0319, "distance": 2.9625979185994364e-06, "feature_x": -75.066700222037909, "feature_y": 38.662402954265659, "nearest_x": -75.0667, "nearest_y": 38.6624 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082541303160497, 38.661212363793858 ], [ -75.063090756584046, 38.662674235950561 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3544", "slope": 0.0377, "distance": 1.8985697422131184e-05, "feature_x": -75.066802422921654, "feature_y": 38.662847932300458, "nearest_x": -75.066801, "nearest_y": 38.662829 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082596201922115, 38.661660896932318 ], [ -75.063145535206829, 38.663122778178362 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3545", "slope": 0.0557, "distance": 6.7231748012224425e-06, "feature_x": -75.066899496117969, "feature_y": 38.663293295734022, "nearest_x": -75.0669, "nearest_y": 38.6633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082651101417412, 38.662109429975374 ], [ -75.063200314473022, 38.663571320379837 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3546", "slope": 0.0517, "distance": 1.8316426738211014e-05, "feature_x": -75.066895372761991, "feature_y": 38.663746264912071, "nearest_x": -75.066894, "nearest_y": 38.663728 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082706001558776, 38.662557962991819 ], [ -75.063255094470335, 38.664019862486199 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3547", "slope": 0.0507, "distance": 1.3569833310132386e-05, "feature_x": -75.066701017018929, "feature_y": 38.664213531668359, "nearest_x": -75.0667, "nearest_y": 38.6642 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082760902433876, 38.663006495912846 ], [ -75.063309875111059, 38.664468404566207 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3548", "slope": 0.045, "distance": 1.633358803634761e-05, "feature_x": -75.066939224154225, "feature_y": 38.66464828765006, "nearest_x": -75.066938, "nearest_y": 38.664632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082815803955057, 38.663455028807313 ], [ -75.06336465648296, 38.664916946551173 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3549", "slope": 0.0461, "distance": 1.1378668532576649e-05, "feature_x": -75.066800852797698, "feature_y": 38.665111346666194, "nearest_x": -75.0668, "nearest_y": 38.6651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082870706210031, 38.663903561606297 ], [ -75.063419438542141, 38.665365488475352 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3550", "slope": 0.0424, "distance": 1.6407396706066184e-05, "feature_x": -75.06706222968613, "feature_y": 38.665544361251136, "nearest_x": -75.067061, "nearest_y": 38.665528 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082925609111157, 38.664352094378692 ], [ -75.063474221244888, 38.665814030373205 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3551", "slope": 0.0483, "distance": 5.8019195551876739e-06, "feature_x": -75.067099565163161, "feature_y": 38.66599421439826, "nearest_x": -75.0671, "nearest_y": 38.666 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082980512746104, 38.664800627055655 ], [ -75.063529004678784, 38.666262572175903 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3552", "slope": 0.0455, "distance": 1.6256321329646256e-05, "feature_x": -75.067188218363668, "feature_y": 38.666440210600641, "nearest_x": -75.067187, "nearest_y": 38.666424 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08303541702719, 38.665249159671632 ], [ -75.063583788756304, 38.666711113952303 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3553", "slope": 0.0443, "distance": 6.9962819375368328e-06, "feature_x": -75.067000524350846, "feature_y": 38.666906976604984, "nearest_x": -75.067, "nearest_y": 38.6669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083090322042239, 38.665697692260906 ], [ -75.063638573565029, 38.667159655633576 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3554", "slope": 0.05, "distance": 1.6952509150830356e-05, "feature_x": -75.067316270541056, "feature_y": 38.667335904830431, "nearest_x": -75.067315, "nearest_y": 38.667319 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08314522770344, 38.666146224754904 ], [ -75.063693359017378, 38.667608197288544 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3555", "slope": 0.0501, "distance": 4.8050346103818845e-06, "feature_x": -75.06710036012332, "feature_y": 38.66780479152051, "nearest_x": -75.0671, "nearest_y": 38.6678 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083200134098647, 38.666594757222143 ], [ -75.063748145201004, 38.668056738848321 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3556", "slope": 0.0422, "distance": 1.5390014961798476e-05, "feature_x": -75.067381153436827, "feature_y": 38.66823634673073, "nearest_x": -75.06738, "nearest_y": 38.668221 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083255041183904, 38.667043289593998 ], [ -75.063802932028324, 38.66850528038178 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3557", "slope": 0.0483, "distance": 2.6137512040698598e-06, "feature_x": -75.067200195893051, "feature_y": 38.668702606400061, "nearest_x": -75.0672, "nearest_y": 38.6687 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083309948915485, 38.66749182193923 ], [ -75.063857719586935, 38.668953821820089 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3558", "slope": 0.0437, "distance": 1.2940734251013477e-05, "feature_x": -75.067377969870449, "feature_y": 38.669141904338581, "nearest_x": -75.067377, "nearest_y": 38.669129 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083364857381056, 38.667940354189028 ], [ -75.063912507789283, 38.669402363197705 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3559", "slope": 0.0324, "distance": 7.9171419430004669e-06, "feature_x": -75.067200593366834, "feature_y": 38.669607894875071, "nearest_x": -75.0672, "nearest_y": 38.6696 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08341976649298, 38.668388886412245 ], [ -75.063967296723007, 38.66985090454893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3559", "slope": 0.0278, "distance": 7.9171419430004669e-06, "feature_x": -75.067200593366834, "feature_y": 38.669607894875071, "nearest_x": -75.0672, "nearest_y": 38.6696 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08341976649298, 38.668388886412245 ], [ -75.063967296723007, 38.66985090454893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3559", "slope": 0.0421, "distance": 7.9171419430004669e-06, "feature_x": -75.067200593366834, "feature_y": 38.669607894875071, "nearest_x": -75.0672, "nearest_y": 38.6696 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08341976649298, 38.668388886412245 ], [ -75.063967296723007, 38.66985090454893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3560", "slope": 0.0447, "distance": 1.5312435682357811e-05, "feature_x": -75.067630147622737, "feature_y": 38.670028269369617, "nearest_x": -75.067629, "nearest_y": 38.670013 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083474676338938, 38.668837418539987 ], [ -75.064022086300426, 38.670299445805092 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3561", "slope": 0.0321, "distance": 5.7257874458210438e-06, "feature_x": -75.067300429131237, "feature_y": 38.670505709683724, "nearest_x": -75.0673, "nearest_y": 38.6705 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08352958683129, 38.669285950641083 ], [ -75.064076876609363, 38.670747987034815 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3562", "slope": 0.0467, "distance": 1.3674889102425911e-05, "feature_x": -75.067696024893493, "feature_y": 38.670928636428613, "nearest_x": -75.067695, "nearest_y": 38.670915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083584498057732, 38.669734482646767 ], [ -75.064131667605864, 38.671196528169425 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3563", "slope": 0.0448, "distance": 1.6203441551005541e-05, "feature_x": -75.067844214401305, "feature_y": 38.671370157869525, "nearest_x": -75.067843, "nearest_y": 38.671354 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083639409930555, 38.670183014591416 ], [ -75.06418645924623, 38.671645069277695 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3564", "slope": 0.0541, "distance": 1.6000764603314049e-05, "feature_x": -75.06792219921131, "feature_y": 38.671816955762601, "nearest_x": -75.067921, "nearest_y": 38.671801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08369432253761, 38.670631546509398 ], [ -75.064241251618029, 38.672093610290808 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3565", "slope": 0.0327, "distance": 6.1517484960795216e-06, "feature_x": -75.067599538944094, "feature_y": 38.672293865553243, "nearest_x": -75.0676, "nearest_y": 38.6723 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083749235791046, 38.671080078331983 ], [ -75.06429604463375, 38.672542151277575 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3566", "slope": 0.0503, "distance": 1.7658400380773335e-05, "feature_x": -75.068117323446515, "feature_y": 38.672707608736282, "nearest_x": -75.068116, "nearest_y": 38.67269 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083804149778743, 38.671528610127936 ], [ -75.06435083838096, 38.672990692169257 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3567", "slope": 0.032, "distance": 1.5837926081689207e-05, "feature_x": -75.06779881299272, "feature_y": 38.673184206617961, "nearest_x": -75.0678, "nearest_y": 38.6732 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083859064412906, 38.671977141828464 ], [ -75.064405632772136, 38.673439233034514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3568", "slope": 0.047, "distance": 8.005208275259334e-07, "feature_x": -75.068299940003243, "feature_y": 38.673599201730632, "nearest_x": -75.0683, "nearest_y": 38.6736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083913979781343, 38.672425673502268 ], [ -75.064460427894858, 38.673887773804637 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3569", "slope": 0.0448, "distance": 1.7258557053427965e-05, "feature_x": -75.068295293479636, "feature_y": 38.674052210017493, "nearest_x": -75.068294, "nearest_y": 38.674035 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083968895840144, 38.672874205080667 ], [ -75.06451522366153, 38.674336314514015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3570", "slope": 0.0486, "distance": 2.992043670841931e-06, "feature_x": -75.068399775754841, "feature_y": 38.674497016371433, "nearest_x": -75.0684, "nearest_y": 38.6745 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084023812545581, 38.673322736632436 ], [ -75.064570020159863, 38.674784855197004 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3571", "slope": 0.0425, "distance": 1.8495614592009001e-05, "feature_x": -75.068469386193755, "feature_y": 38.674944443595798, "nearest_x": -75.068468, "nearest_y": 38.674926 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084078729985265, 38.673771268088792 ], [ -75.06462481730216, 38.675233395784879 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3572", "slope": 0.069, "distance": 1.2678325702470644e-05, "feature_x": -75.068599049795438, "feature_y": 38.675387357332013, "nearest_x": -75.0686, "nearest_y": 38.6754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084133648071585, 38.674219799484085 ], [ -75.064679615176175, 38.675681936346407 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3573", "slope": 0.0453, "distance": 1.8914540046645057e-05, "feature_x": -75.068614417591206, "feature_y": 38.675838861343017, "nearest_x": -75.068613, "nearest_y": 38.67582 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084188566892308, 38.674668330852683 ], [ -75.064734413694225, 38.676130476812745 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3574", "slope": 0.0651, "distance": 1.1951337458101582e-07, "feature_x": -75.068500008957187, "feature_y": 38.676300119177242, "nearest_x": -75.0685, "nearest_y": 38.6763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08424348635964, 38.675116862125876 ], [ -75.064789212944007, 38.676579017252713 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3575", "slope": 0.0534, "distance": 1.9183536855434994e-05, "feature_x": -75.068761437751945, "feature_y": 38.676733129583255, "nearest_x": -75.06876, "nearest_y": 38.676714 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084298406561459, 38.675565393372374 ], [ -75.064844012881707, 38.677027557597526 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3576", "slope": 0.0485, "distance": 2.0721165406283175e-06, "feature_x": -75.068599844700699, "feature_y": 38.677197933711277, "nearest_x": -75.0686, "nearest_y": 38.6772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0843533274099, 38.676013924523467 ], [ -75.064898813463486, 38.677476097915992 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3577", "slope": 0.0558, "distance": 2.017276693949744e-05, "feature_x": -75.068925511892132, "feature_y": 38.677626116031121, "nearest_x": -75.068924, "nearest_y": 38.677606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084408248992858, 38.676462455647901 ], [ -75.064953614777068, 38.67792463813926 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3578", "slope": 0.0357, "distance": 3.230908980179362e-06, "feature_x": -75.068600242147554, "feature_y": 38.678103221822063, "nearest_x": -75.0686, "nearest_y": 38.6781 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084463171222524, 38.676910986676887 ], [ -75.065008416734813, 38.678373178301868 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3579", "slope": 0.0765, "distance": 1.0773498769334126e-05, "feature_x": -75.069200807443522, "feature_y": 38.678510743198345, "nearest_x": -75.0692, "nearest_y": 38.6785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084518094186748, 38.677359517679157 ], [ -75.065063219424417, 38.67882171843798 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3580", "slope": 0.0348, "distance": 1.0392079882735159e-06, "feature_x": -75.068700077885737, "feature_y": 38.679001036285221, "nearest_x": -75.0687, "nearest_y": 38.679 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084573017797695, 38.677808048586023 ], [ -75.065118022758213, 38.679270258479008 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3581", "slope": 0.0646, "distance": 8.5817671863845105e-06, "feature_x": -75.069300643179488, "feature_y": 38.679408557630993, "nearest_x": -75.0693, "nearest_y": 38.6794 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084627942143214, 38.678256579431817 ], [ -75.065172826823911, 38.679718798493589 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3582", "slope": 0.0415, "distance": 8.6472495030417575e-06, "feature_x": -75.068899351912762, "feature_y": 38.679891377070867, "nearest_x": -75.0689, "nearest_y": 38.6799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084682867179467, 38.678705110250924 ], [ -75.06522763153383, 38.680167338413071 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3583", "slope": 0.0627, "distance": 1.3884728638829065e-05, "feature_x": -75.069301040621781, "feature_y": 38.680313845677873, "nearest_x": -75.0693, "nearest_y": 38.6803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084737792862569, 38.679153640974604 ], [ -75.065282436975707, 38.680615878306114 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3584", "slope": 0.036, "distance": 1.0839023399733452e-05, "feature_x": -75.068999187645332, "feature_y": 38.680789191461329, "nearest_x": -75.069, "nearest_y": 38.6808 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084792719280287, 38.679602171671633 ], [ -75.065337243061848, 38.6810644181041 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3584", "slope": 0.0485, "distance": 1.0839023399733452e-05, "feature_x": -75.068999187645332, "feature_y": 38.680789191461329, "nearest_x": -75.069, "nearest_y": 38.6808 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084792719280287, 38.679602171671633 ], [ -75.065337243061848, 38.6810644181041 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3585", "slope": 0.0574, "distance": 1.1692933336788233e-05, "feature_x": -75.06940087635293, "feature_y": 38.681211660046976, "nearest_x": -75.0694, "nearest_y": 38.6812 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084847646344926, 38.680050702273199 ], [ -75.065392049880003, 38.681512957875576 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3586", "slope": 0.0362, "distance": 1.3030833348305521e-05, "feature_x": -75.069099023375145, "feature_y": 38.681687005815853, "nearest_x": -75.0691, "nearest_y": 38.6817 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084902574144223, 38.680499232848049 ], [ -75.065446857342465, 38.681961497551974 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3586", "slope": 0.0393, "distance": 1.3030833348305521e-05, "feature_x": -75.069099023375145, "feature_y": 38.681687005815853, "nearest_x": -75.0691, "nearest_y": 38.6817 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084902574144223, 38.680499232848049 ], [ -75.065446857342465, 38.681961497551974 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3587", "slope": 0.0933, "distance": 5.4883722872089382e-06, "feature_x": -75.069699588661663, "feature_y": 38.682094527063754, "nearest_x": -75.0697, "nearest_y": 38.6821 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084957502590456, 38.680947763327474 ], [ -75.065501665536956, 38.682410037167536 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3588", "slope": 0.0311, "distance": 1.5222676640313525e-05, "feature_x": -75.0691988591024, "feature_y": 38.68258482013713, "nearest_x": -75.0692, "nearest_y": 38.6826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085012431771446, 38.681396293780189 ], [ -75.065556474419708, 38.682858576756715 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3588", "slope": 0.0439, "distance": 1.5222676640313525e-05, "feature_x": -75.0691988591024, "feature_y": 38.68258482013713, "nearest_x": -75.0692, "nearest_y": 38.6826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085012431771446, 38.681396293780189 ], [ -75.065556474419708, 38.682858576756715 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3589", "slope": 0.0521, "distance": 2.1896175106785556e-05, "feature_x": -75.069739641057993, "feature_y": 38.682996834592117, "nearest_x": -75.069738, "nearest_y": 38.682975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085067361599386, 38.681844824137535 ], [ -75.065611283946794, 38.683307116250731 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3590", "slope": 0.0382, "distance": 1.7414564921536016e-05, "feature_x": -75.069298694826216, "feature_y": 38.683482634413551, "nearest_x": -75.0693, "nearest_y": 38.6835 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085122292162112, 38.682293354433732 ], [ -75.065666094206051, 38.683755655718414 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3591", "slope": 0.0535, "distance": 1.2612029538784417e-05, "feature_x": -75.069600945236985, "feature_y": 38.6839125765582, "nearest_x": -75.0696, "nearest_y": 38.6839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085177223371872, 38.682741884703255 ], [ -75.065720905109671, 38.684204195090857 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3591", "slope": 0.0425, "distance": 1.2612029538784417e-05, "feature_x": -75.069600945236985, "feature_y": 38.6839125765582, "nearest_x": -75.0696, "nearest_y": 38.6839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085177223371872, 38.682741884703255 ], [ -75.065720905109671, 38.684204195090857 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3592", "slope": 0.0674, "distance": 2.458900239749015e-05, "feature_x": -75.070062842878386, "feature_y": 38.684330519845801, "nearest_x": -75.070061, "nearest_y": 38.684306 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085232155316447, 38.683190414877316 ], [ -75.065775716745492, 38.684652734436909 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3593", "slope": 0.0513, "distance": 2.9253647227491097e-06, "feature_x": -75.06980021924808, "feature_y": 38.684802917137134, "nearest_x": -75.0698, "nearest_y": 38.6848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085287087908128, 38.683638945024668 ], [ -75.065830529025803, 38.685101273687792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3594", "slope": 0.072, "distance": 2.7732402477088046e-05, "feature_x": -75.070318078467892, "feature_y": 38.685216654405046, "nearest_x": -75.070316, "nearest_y": 38.685189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085342021234609, 38.684087475076574 ], [ -75.0658853420383, 38.685549812912278 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3595", "slope": 0.0429, "distance": 7.3339007889380097e-07, "feature_x": -75.069900054965586, "feature_y": 38.685700731327415, "nearest_x": -75.0699, "nearest_y": 38.6857 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085396955252136, 38.684536005101805 ], [ -75.06594015569533, 38.685998352041594 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3596", "slope": 0.0446, "distance": 4.5749383709306792e-05, "feature_x": -75.070003428791821, "feature_y": 38.686145620713461, "nearest_x": -75.07, "nearest_y": 38.6861 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085451889916811, 38.68498453503156 ], [ -75.06599497008456, 38.686446891110158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3597", "slope": 0.0298, "distance": 1.4586211928929225e-06, "feature_x": -75.069999890680293, "feature_y": 38.686598545481182, "nearest_x": -75.07, "nearest_y": 38.6866 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085506825316401, 38.685433064934614 ], [ -75.066049785118437, 38.686895430152283 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3598", "slope": 0.0913, "distance": 2.1073167279592057e-05, "feature_x": -75.070401579376764, "feature_y": 38.687021013898928, "nearest_x": -75.0704, "nearest_y": 38.687 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085561761363209, 38.685881594742227 ], [ -75.066104600884572, 38.687343969099224 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3599", "slope": 0.044, "distance": 2.6134856533970674e-05, "feature_x": -75.070398041263246, "feature_y": 38.687473938647841, "nearest_x": -75.0704, "nearest_y": 38.6875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085616698144975, 38.686330124523089 ], [ -75.066159417295353, 38.68779250801974 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3599", "slope": 0.0466, "distance": 2.6134856533970674e-05, "feature_x": -75.070398041263246, "feature_y": 38.687473938647841, "nearest_x": -75.0704, "nearest_y": 38.6875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085616698144975, 38.686330124523089 ], [ -75.066159417295353, 38.68779250801974 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3600", "slope": 0.049, "distance": 1.8881098531449632e-05, "feature_x": -75.070501415087321, "feature_y": 38.687918827995368, "nearest_x": -75.0705, "nearest_y": 38.6879 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085671635574002, 38.686778654208524 ], [ -75.066214234438419, 38.688241046845093 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3601", "slope": 0.0346, "distance": 2.0832217119442623e-05, "feature_x": -75.070398438681465, "feature_y": 38.688379226373584, "nearest_x": -75.0704, "nearest_y": 38.6884 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085726573737972, 38.687227183832903 ], [ -75.066269052270059, 38.688689585643992 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3601", "slope": 0.0335, "distance": 2.0832217119442623e-05, "feature_x": -75.070398438681465, "feature_y": 38.688379226373584, "nearest_x": -75.0704, "nearest_y": 38.6884 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085726573737972, 38.687227183832903 ], [ -75.066269052270059, 38.688689585643992 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3602", "slope": 0.0582, "distance": 9.1942630055198679e-06, "feature_x": -75.070700689085271, "feature_y": 38.688809168404099, "nearest_x": -75.0707, "nearest_y": 38.6888 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085781512549303, 38.687675713430529 ], [ -75.066323870746331, 38.689138124347821 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3603", "slope": 0.0369, "distance": 3.0519069766203411e-05, "feature_x": -75.070597712677667, "feature_y": 38.689269566765276, "nearest_x": -75.0706, "nearest_y": 38.6893 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085836452095677, 38.688124242932673 ], [ -75.066378689955073, 38.689586663025139 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3603", "slope": 0.0335, "distance": 3.0519069766203411e-05, "feature_x": -75.070597712677667, "feature_y": 38.689269566765276, "nearest_x": -75.0706, "nearest_y": 38.6893 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085836452095677, 38.688124242932673 ], [ -75.066378689955073, 38.689586663025139 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3604", "slope": 0.0645, "distance": 7.0021213373556319e-06, "feature_x": -75.070800524790215, "feature_y": 38.689706982427836, "nearest_x": -75.0708, "nearest_y": 38.6897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085891392289412, 38.688572772408165 ], [ -75.066433509808462, 38.690035201607323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3604", "slope": 0.0381, "distance": 7.0021213373556319e-06, "feature_x": -75.070800524790215, "feature_y": 38.689706982427836, "nearest_x": -75.0708, "nearest_y": 38.6897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085891392289412, 38.688572772408165 ], [ -75.066433509808462, 38.690035201607323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3605", "slope": 0.0376, "distance": 3.2711227895882435e-05, "feature_x": -75.070697548380977, "feature_y": 38.690167380772621, "nearest_x": -75.0707, "nearest_y": 38.6902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085946333218217, 38.689021301788109 ], [ -75.066488330394407, 38.690483740163032 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3606", "slope": 0.0607, "distance": 2.6847891361427751e-06, "feature_x": -75.070999798782225, "feature_y": 38.690597322761853, "nearest_x": -75.071, "nearest_y": 38.6906 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086001274794441, 38.689469831141402 ], [ -75.066543151625027, 38.690932278623592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3607", "slope": 0.0602, "distance": 4.2331100579369132e-05, "feature_x": -75.071103172603088, "feature_y": 38.691042212044088, "nearest_x": -75.0711, "nearest_y": 38.691 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086056217105792, 38.689918360399218 ], [ -75.066597973588173, 38.69138081702333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3608", "slope": 0.0606, "distance": 4.8770029466901815e-06, "feature_x": -75.071099634481612, "feature_y": 38.691495136713655, "nearest_x": -75.0711, "nearest_y": 38.6915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086111160108445, 38.69036688963029 ], [ -75.066652796196195, 38.691829355396713 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3608", "slope": 0.0343, "distance": 4.8770029466901815e-06, "feature_x": -75.071099634481612, "feature_y": 38.691495136713655, "nearest_x": -75.0711, "nearest_y": 38.6915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086111160108445, 38.69036688963029 ], [ -75.066652796196195, 38.691829355396713 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3609", "slope": 0.0397, "distance": 4.4590413225767187e-05, "feature_x": -75.070996658067017, "feature_y": 38.691955534997632, "nearest_x": -75.071, "nearest_y": 38.692 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086166103758572, 38.690815418765894 ], [ -75.066707619536686, 38.692277893674827 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3610", "slope": 0.0558, "distance": 7.0692613595778793e-06, "feature_x": -75.071199470177604, "feature_y": 38.692392950620992, "nearest_x": -75.0712, "nearest_y": 38.6924 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086221048143869, 38.69126394784039 ], [ -75.066762443522123, 38.692726431926545 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3611", "slope": 0.057, "distance": 2.2957127846946714e-05, "feature_x": -75.071501720575952, "feature_y": 38.692822892560741, "nearest_x": -75.0715, "nearest_y": 38.6928 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086275993176741, 38.691712476888192 ], [ -75.066817268240101, 38.693174970083042 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3612", "slope": 0.0364, "distance": 1.7668094255385376e-06, "feature_x": -75.071199867582308, "feature_y": 38.693298238159741, "nearest_x": -75.0712, "nearest_y": 38.6933 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086330938944798, 38.692161005840482 ], [ -75.066872093646879, 38.693623508213122 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3613", "slope": 0.0552, "distance": 3.5754293340904081e-05, "feature_x": -75.071402679689982, "feature_y": 38.69373565373408, "nearest_x": -75.0714, "nearest_y": 38.6937 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086385885360485, 38.692609534766127 ], [ -75.066926919698545, 38.694072046248017 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3614", "slope": 0.0382, "distance": 3.9591309063517254e-06, "feature_x": -75.071299703273553, "feature_y": 38.694196052004187, "nearest_x": -75.0713, "nearest_y": 38.6942 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086440832511414, 38.693058063596183 ], [ -75.066981746482938, 38.694520584256487 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3615", "slope": 0.0517, "distance": 1.1077740575743602e-05, "feature_x": -75.07180083024754, "feature_y": 38.694611046584328, "nearest_x": -75.0718, "nearest_y": 38.6946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086495780310003, 38.693506592399594 ], [ -75.067036573912247, 38.694969122169766 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3616", "slope": 0.0329, "distance": 6.151515022878363e-06, "feature_x": -75.07139953896008, "feature_y": 38.69509386578617, "nearest_x": -75.0714, "nearest_y": 38.6951 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086550728843861, 38.693955121107471 ], [ -75.067091402074283, 38.69541766002223 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3617", "slope": 0.0402, "distance": 2.3874837105576618e-05, "feature_x": -75.071701789356553, "feature_y": 38.695523807688886, "nearest_x": -75.0717, "nearest_y": 38.6955 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086605678025407, 38.694403649788626 ], [ -75.067146230881349, 38.695866197848225 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3618", "slope": 0.032, "distance": 1.5838647208661918e-05, "feature_x": -75.071598812934781, "feature_y": 38.695984205899151, "nearest_x": -75.0716, "nearest_y": 38.696 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086660627942337, 38.694852178374298 ], [ -75.067201060421169, 38.69631473557903 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3619", "slope": 0.043, "distance": 6.6929363780103935e-06, "feature_x": -75.072000501618149, "feature_y": 38.696406674112417, "nearest_x": -75.072, "nearest_y": 38.6964 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08671557850694, 38.695300706898912 ], [ -75.067255890606063, 38.696763273283445 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3620", "slope": 0.0347, "distance": 2.5525817281500662e-05, "feature_x": -75.071798086906426, "feature_y": 38.696874545974367, "nearest_x": -75.0718, "nearest_y": 38.6969 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086770529807055, 38.695749235396725 ], [ -75.067310721523768, 38.697211810892611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3620", "slope": 0.034, "distance": 2.5525817281500662e-05, "feature_x": -75.071798086906426, "feature_y": 38.696874545974367, "nearest_x": -75.0718, "nearest_y": 38.6969 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086770529807055, 38.695749235396725 ], [ -75.067310721523768, 38.697211810892611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3621", "slope": 0.0412, "distance": 2.9942551093930334e-06, "feature_x": -75.072199775588345, "feature_y": 38.697297014166267, "nearest_x": -75.0722, "nearest_y": 38.6973 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086825481798684, 38.696197763799056 ], [ -75.067365553086589, 38.697660348475317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3622", "slope": 0.0682, "distance": 1.9537278971117202e-05, "feature_x": -75.072601464268402, "feature_y": 38.697719482330136, "nearest_x": -75.0726, "nearest_y": 38.6977 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086880434438157, 38.696646292174655 ], [ -75.067420385382206, 38.698108885962846 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3623", "slope": 0.0394, "distance": 1.26814853302146e-05, "feature_x": -75.072399049555472, "feature_y": 38.698187354181506, "nearest_x": -75.0724, "nearest_y": 38.6982 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086935387813057, 38.697094820454758 ], [ -75.067475218323054, 38.698557423423907 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3624", "slope": 0.056, "distance": 9.8500268610062584e-06, "feature_x": -75.072800738234079, "feature_y": 38.698609822323533, "nearest_x": -75.0728, "nearest_y": 38.6986 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086990341835843, 38.69754334870813 ], [ -75.067530051996727, 38.699005960789762 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3625", "slope": 0.0417, "distance": 7.3792920281501181e-06, "feature_x": -75.072399446941091, "feature_y": 38.699092641462329, "nearest_x": -75.0724, "nearest_y": 38.6991 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087045296594113, 38.697991876866041 ], [ -75.067584886359526, 38.699454498094781 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3625", "slope": 0.0421, "distance": 7.3792920281501181e-06, "feature_x": -75.072399446941091, "feature_y": 38.699092641462329, "nearest_x": -75.0724, "nearest_y": 38.6991 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087045296594113, 38.697991876866041 ], [ -75.067584886359526, 38.699454498094781 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3626", "slope": 0.0429, "distance": 3.0141707850085863e-05, "feature_x": -75.072602259043464, "feature_y": 38.699530056933888, "nearest_x": -75.0726, "nearest_y": 38.6995 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087100252000297, 38.698440404997172 ], [ -75.067639721367513, 38.699903035373438 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3627", "slope": 0.0311, "distance": 2.0771094723379154e-06, "feature_x": -75.072399844325986, "feature_y": 38.699997928732429, "nearest_x": -75.0724, "nearest_y": 38.7 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087155208142022, 38.698888933032805 ], [ -75.067694557108481, 38.700351572556784 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3628", "slope": 0.035, "distance": 2.0454383850907586e-05, "feature_x": -75.072801533003656, "feature_y": 38.700420396855606, "nearest_x": -75.0728, "nearest_y": 38.7004 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087210164931705, 38.699337461041694 ], [ -75.067749393494708, 38.700800109713732 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3629", "slope": 0.0303, "distance": 1.1764449396297447e-05, "feature_x": -75.0725991182846, "feature_y": 38.700888268638288, "nearest_x": -75.0726, "nearest_y": 38.7009 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087265122456969, 38.699785988955071 ], [ -75.067804230613959, 38.701248646775412 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3630", "slope": 0.0444, "distance": 1.8261757755137886e-05, "feature_x": -75.072901368672163, "feature_y": 38.701318210396288, "nearest_x": -75.0729, "nearest_y": 38.7013 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087320080630192, 38.700234516807342 ], [ -75.067859068378525, 38.701697183810673 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3631", "slope": 0.0335, "distance": 1.3957082003724527e-05, "feature_x": -75.072698953952255, "feature_y": 38.701786082172504, "nearest_x": -75.0727, "nearest_y": 38.7018 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08737503953914, 38.700683044632882 ], [ -75.067913906876143, 38.702145720750686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3631", "slope": 0.0322, "distance": 1.3957082003724527e-05, "feature_x": -75.072698953952255, "feature_y": 38.701786082172504, "nearest_x": -75.0727, "nearest_y": 38.7018 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08737503953914, 38.700683044632882 ], [ -75.067913906876143, 38.702145720750686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3632", "slope": 0.038, "distance": 8.5743587293859871e-06, "feature_x": -75.0731006426264, "feature_y": 38.702208550243206, "nearest_x": -75.0731, "nearest_y": 38.7022 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087429999096017, 38.701131572362897 ], [ -75.067968746019119, 38.702594257664316 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3633", "slope": 0.0331, "distance": 2.3644496797312875e-05, "feature_x": -75.072898227904957, "feature_y": 38.702676422003734, "nearest_x": -75.0729, "nearest_y": 38.7027 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087484959388718, 38.701580100066138 ], [ -75.06802358589519, 38.703042794482663 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3634", "slope": 0.0783, "distance": 3.1092089554173342e-05, "feature_x": -75.073697669726627, "feature_y": 38.703068995357462, "nearest_x": -75.0737, "nearest_y": 38.7031 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087539920373288, 38.702028627673869 ], [ -75.068078426416662, 38.703491331240201 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3635", "slope": 0.0291, "distance": 3.2251245422190234e-05, "feature_x": -75.073145417149348, "feature_y": 38.703563160538245, "nearest_x": -75.073143, "nearest_y": 38.703531 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087594882005902, 38.702477155254876 ], [ -75.068133267671342, 38.703939867971229 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3636", "slope": 0.0382, "distance": 1.1683665996419146e-05, "feature_x": -75.0732008756613, "feature_y": 38.704011650805484, "nearest_x": -75.0732, "nearest_y": 38.704 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087649844374297, 38.70292568274035 ], [ -75.068188109571395, 38.704388404607073 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3637", "slope": 0.0639, "distance": 1.9225566462245156e-05, "feature_x": -75.073801440907815, "feature_y": 38.704419171494216, "nearest_x": -75.0738, "nearest_y": 38.7044 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08770480739085, 38.703374210199144 ], [ -75.068242952204699, 38.704836941216463 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3638", "slope": 0.0329, "distance": 5.4985900918832732e-06, "feature_x": -75.073499587894474, "feature_y": 38.704894516874795, "nearest_x": -75.0735, "nearest_y": 38.7049 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087759771143197, 38.703822737562326 ], [ -75.068297795527343, 38.705285477730598 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3639", "slope": 0.052, "distance": 2.4527521642877955e-05, "feature_x": -75.07380183827631, "feature_y": 38.705324458537532, "nearest_x": -75.0738, "nearest_y": 38.7053 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087814735543716, 38.704271264864424 ], [ -75.068352639495515, 38.705734014218272 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3640", "slope": 0.0395, "distance": 1.9663918492785503e-07, "feature_x": -75.073499985262387, "feature_y": 38.70579980391387, "nearest_x": -75.0735, "nearest_y": 38.7058 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087869700680159, 38.704719792139706 ], [ -75.068407484196953, 38.706182550610706 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3641", "slope": 0.0399, "distance": 4.3794618183563578e-05, "feature_x": -75.074153717702629, "feature_y": 38.706203328555027, "nearest_x": -75.074157, "nearest_y": 38.706247 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087924666464772, 38.705168319319519 ], [ -75.068462329543948, 38.706631086976671 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3642", "slope": 0.0344, "distance": 2.3894730022025004e-06, "feature_x": -75.07359982091495, "feature_y": 38.706697617247436, "nearest_x": -75.0736, "nearest_y": 38.7067 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087979632985352, 38.705616846472559 ], [ -75.068517175624265, 38.707079623247402 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3643", "slope": 0.0598, "distance": 1.2647095353934548e-05, "feature_x": -75.074100947868374, "feature_y": 38.70711261152514, "nearest_x": -75.0741, "nearest_y": 38.7071 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088034600154145, 38.706065373530109 ], [ -75.068572022350182, 38.707528159491716 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3644", "slope": 0.038, "distance": 4.5823427133476481e-06, "feature_x": -75.073699656564784, "feature_y": 38.707595430545219, "nearest_x": -75.0737, "nearest_y": 38.7076 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088089568058962, 38.706513900560843 ], [ -75.068626869809449, 38.707976695640731 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3645", "slope": 0.0613, "distance": 1.0454178481539037e-05, "feature_x": -75.074200783514797, "feature_y": 38.708010424775885, "nearest_x": -75.0742, "nearest_y": 38.708 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088144536612035, 38.706962427496094 ], [ -75.068681717914359, 38.708425231728931 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3646", "slope": 0.036, "distance": 6.7752483679614008e-06, "feature_x": -75.07379949221189, "feature_y": 38.708493243807162, "nearest_x": -75.0738, "nearest_y": 38.7085 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088199505901159, 38.707410954404516 ], [ -75.068736566752719, 38.708873767790614 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3647", "slope": 0.0552, "distance": 8.2612511399185749e-06, "feature_x": -75.074300619160397, "feature_y": 38.708908238016193, "nearest_x": -75.0743, "nearest_y": 38.7089 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088254475882479, 38.707859481217433 ], [ -75.068791416236721, 38.709322303757084 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3648", "slope": 0.0366, "distance": 1.6462952928197443e-05, "feature_x": -75.073998766142168, "feature_y": 38.709383583349492, "nearest_x": -75.074, "nearest_y": 38.7094 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088309446512113, 38.708308007969237 ], [ -75.068846266454244, 38.70977083969705 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3648", "slope": 0.0359, "distance": 1.6462952928197443e-05, "feature_x": -75.073998766142168, "feature_y": 38.709383583349492, "nearest_x": -75.074, "nearest_y": 38.7094 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088309446512113, 38.708308007969237 ], [ -75.068846266454244, 38.70977083969705 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3649", "slope": 0.0441, "distance": 2.8552550195709888e-05, "feature_x": -75.07410213994352, "feature_y": 38.709828472245512, "nearest_x": -75.0741, "nearest_y": 38.7098 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088364417877941, 38.70875653469426 ], [ -75.068901117317452, 38.710219375541847 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3650", "slope": 0.0389, "distance": 1.8655931390531029e-05, "feature_x": -75.074098601783632, "feature_y": 38.710281396538839, "nearest_x": -75.0741, "nearest_y": 38.7103 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088419389892096, 38.709205061323736 ], [ -75.068955968914224, 38.710667911360076 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3651", "slope": 0.0455, "distance": 1.886480012198158e-05, "feature_x": -75.074301413870629, "feature_y": 38.710718811742439, "nearest_x": -75.0743, "nearest_y": 38.7107 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088474362642415, 38.709653587926418 ], [ -75.069010821200578, 38.711116447083093 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3652", "slope": 0.0387, "distance": 2.0848945782162339e-05, "feature_x": -75.074198437422368, "feature_y": 38.711179209692368, "nearest_x": -75.0742, "nearest_y": 38.7112 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088529336041191, 38.71010211443361 ], [ -75.069065674132773, 38.711564982779635 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3653", "slope": 0.0433, "distance": 9.1770096887033804e-06, "feature_x": -75.074500687794526, "feature_y": 38.711609151199127, "nearest_x": -75.0745, "nearest_y": 38.7116 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088584310176188, 38.710550640913979 ], [ -75.069120527798546, 38.712013518380893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3654", "slope": 0.0374, "distance": 3.0536778358807068e-05, "feature_x": -75.074397711342669, "feature_y": 38.712069549107071, "nearest_x": -75.0744, "nearest_y": 38.7121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08863928495964, 38.710999167298858 ], [ -75.069175382110132, 38.712462053921307 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3655", "slope": 0.0408, "distance": 1.447869633923216e-05, "feature_x": -75.074501085143183, "feature_y": 38.712514437974647, "nearest_x": -75.0745, "nearest_y": 38.7125 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088694260479372, 38.711447693656964 ], [ -75.069230237155423, 38.712910589435268 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3656", "slope": 0.0424, "distance": 3.2729865585434923e-05, "feature_x": -75.074497546975778, "feature_y": 38.712967362187982, "nearest_x": -75.0745, "nearest_y": 38.713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088749236647601, 38.711896219919502 ], [ -75.069285092846528, 38.713359124853945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3656", "slope": 0.0369, "distance": 3.2729865585434923e-05, "feature_x": -75.074497546975778, "feature_y": 38.712967362187982, "nearest_x": -75.0745, "nearest_y": 38.713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088749236647601, 38.711896219919502 ], [ -75.069285092846528, 38.713359124853945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3657", "slope": 0.0744, "distance": 4.7908225772809329e-06, "feature_x": -75.0747003590606, "feature_y": 38.713404777348266, "nearest_x": -75.0747, "nearest_y": 38.7134 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088804213552123, 38.712344746120863 ], [ -75.069339949271352, 38.713807660246111 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3658", "slope": 0.0384, "distance": 3.4922988749511006e-05, "feature_x": -75.074597382606143, "feature_y": 38.71386517523306, "nearest_x": -75.0746, "nearest_y": 38.7139 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088859191105271, 38.712793272295464 ], [ -75.069394806342075, 38.714256195543065 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3659", "slope": 0.0475, "distance": 2.5976798958239188e-06, "feature_x": -75.074800194689857, "feature_y": 38.714302590373855, "nearest_x": -75.0748, "nearest_y": 38.7143 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088914169394698, 38.71324179837449 ], [ -75.069449664146561, 38.71470473081348 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3660", "slope": 0.0356, "distance": 3.5255565509397523e-05, "feature_x": -75.074854642320048, "feature_y": 38.714751156408298, "nearest_x": -75.074852, "nearest_y": 38.714716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088969148376705, 38.713690324426722 ], [ -75.069504522596986, 38.715153265988661 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3661", "slope": 0.049, "distance": 4.0450134990324208e-07, "feature_x": -75.074900030316414, "feature_y": 38.715200403363681, "nearest_x": -75.0749, "nearest_y": 38.7152 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089024128007267, 38.714138850383513 ], [ -75.069559381781204, 38.715601801137375 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3662", "slope": 0.0324, "distance": 3.4861111617301953e-05, "feature_x": -75.074930612757029, "feature_y": 38.715650763063785, "nearest_x": -75.074928, "nearest_y": 38.715616 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089079108374321, 38.714587376313411 ], [ -75.069614241611418, 38.716050336190797 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3663", "slope": 0.0343, "distance": 1.7887380235077762e-06, "feature_x": -75.074999865938352, "feature_y": 38.716098216292849, "nearest_x": -75.075, "nearest_y": 38.7161 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089134089389987, 38.715035902147811 ], [ -75.069669102175453, 38.71649887118334 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3664", "slope": 0.0561, "distance": 4.3226652542043616e-05, "feature_x": -75.075103239734801, "feature_y": 38.716543105076369, "nearest_x": -75.0751, "nearest_y": 38.7165 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089189071142215, 38.71548442795536 ], [ -75.069723963429453, 38.716947406149366 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3665", "slope": 0.0386, "distance": 3.9819884159831496e-06, "feature_x": -75.075099701559424, "feature_y": 38.716996029211039, "nearest_x": -75.0751, "nearest_y": 38.717 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089244053543069, 38.715932953667426 ], [ -75.069778825329564, 38.71739594102015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3665", "slope": 0.0431, "distance": 3.9819884159831496e-06, "feature_x": -75.075099701559424, "feature_y": 38.716996029211039, "nearest_x": -75.0751, "nearest_y": 38.717 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089244053543069, 38.715932953667426 ], [ -75.069778825329564, 38.71739594102015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3666", "slope": 0.0387, "distance": 2.6043857265319612e-05, "feature_x": -75.075401951925429, "feature_y": 38.717425970608161, "nearest_x": -75.0754, "nearest_y": 38.7174 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089299036680487, 38.716381479352634 ], [ -75.069833687963524, 38.717844475864418 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3667", "slope": 0.0394, "distance": 6.1752746527309267e-06, "feature_x": -75.075199537177753, "feature_y": 38.717893842093488, "nearest_x": -75.0752, "nearest_y": 38.7179 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089354020466658, 38.716830004942395 ], [ -75.069888551243608, 38.718293010613479 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3668", "slope": 0.0353, "distance": 1.9264714928818932e-05, "feature_x": -75.075336443844989, "feature_y": 38.718336210532343, "nearest_x": -75.075335, "nearest_y": 38.718317 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089409004989378, 38.717278530470864 ], [ -75.069943415257683, 38.718741545335952 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3669", "slope": 0.0367, "distance": 1.5863361585028131e-05, "feature_x": -75.075398811078372, "feature_y": 38.718784181254598, "nearest_x": -75.0754, "nearest_y": 38.7188 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089463990160979, 38.717727055972595 ], [ -75.069998279917868, 38.719190079963205 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3670", "slope": 0.0529, "distance": 2.1657197891112743e-05, "feature_x": -75.075601623156174, "feature_y": 38.71922159628636, "nearest_x": -75.0756, "nearest_y": 38.7192 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089518976069115, 38.718175581378723 ], [ -75.070053145312116, 38.719638614563898 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3671", "slope": 0.0331, "distance": 1.8884951498459332e-05, "feature_x": -75.075527415382879, "feature_y": 38.719679831836991, "nearest_x": -75.075526, "nearest_y": 38.719661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089573962626176, 38.718624106758078 ], [ -75.070108011352517, 38.720087149069371 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3672", "slope": 0.0633, "distance": 1.1969052781696048e-05, "feature_x": -75.075800897052559, "feature_y": 38.720111935389447, "nearest_x": -75.0758, "nearest_y": 38.7201 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089628949919828, 38.719072632041865 ], [ -75.070162878126993, 38.720535683548306 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3673", "slope": 0.0324, "distance": 1.7907243338131136e-05, "feature_x": -75.075664342106137, "feature_y": 38.720574856878649, "nearest_x": -75.075663, "nearest_y": 38.720557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089683937906344, 38.719521157298871 ], [ -75.07021774554768, 38.720984217932035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3674", "slope": 0.064, "distance": 9.775612903091549e-06, "feature_x": -75.075900732659449, "feature_y": 38.721009748118675, "nearest_x": -75.0759, "nearest_y": 38.721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089738926541713, 38.719969682460295 ], [ -75.070272613702457, 38.721432752254778 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3675", "slope": 0.0362, "distance": 3.7433081323638333e-05, "feature_x": -75.075897194477449, "feature_y": 38.721462672200431, "nearest_x": -75.0759, "nearest_y": 38.7215 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089793915913873, 38.720418207594889 ], [ -75.070327482503572, 38.721881286551046 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3676", "slope": 0.0381, "distance": 8.7393031392693024e-08, "feature_x": -75.076100006549908, "feature_y": 38.721900087147233, "nearest_x": -75.0761, "nearest_y": 38.7219 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089848905934957, 38.720866732633958 ], [ -75.070382352038777, 38.722329820752009 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3676", "slope": 0.0396, "distance": 8.7393031392693024e-08, "feature_x": -75.076100006549908, "feature_y": 38.721900087147233, "nearest_x": -75.0761, "nearest_y": 38.7219 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089848905934957, 38.720866732633958 ], [ -75.070382352038777, 38.722329820752009 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3676", "slope": 0.0631, "distance": 8.7393031392693024e-08, "feature_x": -75.076100006549908, "feature_y": 38.721900087147233, "nearest_x": -75.0761, "nearest_y": 38.7219 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089848905934957, 38.720866732633958 ], [ -75.070382352038777, 38.722329820752009 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3677", "slope": 0.0398, "distance": 3.9626557602465174e-05, "feature_x": -75.075997030080984, "feature_y": 38.722360484893414, "nearest_x": -75.076, "nearest_y": 38.7224 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089903896692817, 38.721315257611806 ], [ -75.07043722226426, 38.722778354926454 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3678", "slope": 0.0398, "distance": 5.3886741255502519e-06, "feature_x": -75.076100403868693, "feature_y": 38.722805373518298, "nearest_x": -75.0761, "nearest_y": 38.7228 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089958888099744, 38.721763782562839 ], [ -75.07049209313611, 38.723226889005645 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3679", "slope": 0.0636, "distance": 3.5414373833286575e-05, "feature_x": -75.07640265422593, "feature_y": 38.723235314769695, "nearest_x": -75.0764, "nearest_y": 38.7232 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090013880243433, 38.72221230741836 ], [ -75.070546964742164, 38.723675423058346 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3680", "slope": 0.0331, "distance": 3.1951509845418796e-06, "feature_x": -75.07620023946923, "feature_y": 38.723703186164514, "nearest_x": -75.0762, "nearest_y": 38.7237 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090068873036259, 38.72266083224703 ], [ -75.070601836994641, 38.724123957015713 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3681", "slope": 0.0628, "distance": 4.3828041658711902e-05, "feature_x": -75.076912715188541, "feature_y": 38.724102295226238, "nearest_x": -75.076916, "nearest_y": 38.724146 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090123866565847, 38.72310935698011 ], [ -75.070656709981336, 38.724572490946571 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3682", "slope": 0.0306, "distance": 6.4931796598719594e-06, "feature_x": -75.076399513351021, "feature_y": 38.724593525082639, "nearest_x": -75.0764, "nearest_y": 38.7246 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090178860744658, 38.723557881686396 ], [ -75.070711583614496, 38.72502102478213 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3683", "slope": 0.0516, "distance": 2.3532454275474843e-05, "feature_x": -75.076701763703824, "feature_y": 38.725023466268411, "nearest_x": -75.0767, "nearest_y": 38.725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090233855660273, 38.724006406297072 ], [ -75.070766457981932, 38.725469558556789 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3684", "slope": 0.0312, "distance": 1.6181548270346e-05, "feature_x": -75.076598787229742, "feature_y": 38.725483863962914, "nearest_x": -75.0766, "nearest_y": 38.7255 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090288851225139, 38.72445493088096 ], [ -75.070821332995919, 38.725918092304916 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3685", "slope": 0.0384, "distance": 1.3844064551590054e-05, "feature_x": -75.076901037581237, "feature_y": 38.725913805127618, "nearest_x": -75.0769, "nearest_y": 38.7259 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090343847526896, 38.724903455369294 ], [ -75.070876208744224, 38.726366625957787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3685", "slope": 0.0496, "distance": 1.3844064551590054e-05, "feature_x": -75.076901037581237, "feature_y": 38.725913805127618, "nearest_x": -75.0769, "nearest_y": 38.7259 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090343847526896, 38.724903455369294 ], [ -75.070876208744224, 38.726366625957787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3686", "slope": 0.0338, "distance": 1.8375190317183148e-05, "feature_x": -75.076698622821041, "feature_y": 38.726381676490583, "nearest_x": -75.0767, "nearest_y": 38.7264 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090398844521758, 38.725351979796379 ], [ -75.070931085139094, 38.726815159584106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3687", "slope": 0.0472, "distance": 3.3391374134967196e-06, "feature_x": -75.077199749739194, "feature_y": 38.726796670254032, "nearest_x": -75.0772, "nearest_y": 38.7268 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090453842165871, 38.72580050419667 ], [ -75.070985962268324, 38.727263693115113 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3688", "slope": 0.0369, "distance": 2.8063633984702825e-05, "feature_x": -75.076897896693794, "feature_y": 38.727272015296045, "nearest_x": -75.0769, "nearest_y": 38.7273 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090508840546988, 38.726249028501336 ], [ -75.071040840044176, 38.727712226619595 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3689", "slope": 0.0508, "distance": 1.9619463689622331e-06, "feature_x": -75.07720014704347, "feature_y": 38.727701956428319, "nearest_x": -75.0772, "nearest_y": 38.7277 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090563839577385, 38.726697552779235 ], [ -75.071095718554446, 38.728160760028778 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3690", "slope": 0.0345, "distance": 3.775211335233096e-05, "feature_x": -75.077097170563675, "feature_y": 38.728162354065923, "nearest_x": -75.0771, "nearest_y": 38.7282 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090618839344842, 38.727146076961482 ], [ -75.071150597755263, 38.728609293411424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3691", "slope": 0.0378, "distance": 7.2629964643637884e-06, "feature_x": -75.077200544345345, "feature_y": 38.728607242569005, "nearest_x": -75.0772, "nearest_y": 38.7286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090673839761635, 38.727594601117012 ], [ -75.07120547760276, 38.729057826698828 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3692", "slope": 0.0668, "distance": 2.2298981942252281e-05, "feature_x": -75.077701671258936, "feature_y": 38.72902223626518, "nearest_x": -75.0777, "nearest_y": 38.729 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090728840915531, 38.72804312517686 ], [ -75.071260358184702, 38.729506359925239 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3693", "slope": 0.036, "distance": 2.4255420478943076e-06, "feature_x": -75.07739981821102, "feature_y": 38.729497581279887, "nearest_x": -75.0774, "nearest_y": 38.7295 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090783842718807, 38.728491649209907 ], [ -75.071315239413437, 38.729954893125161 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3694", "slope": 0.0572, "distance": 1.2610420138112104e-05, "feature_x": -75.077900945122991, "feature_y": 38.729912574952827, "nearest_x": -75.0779, "nearest_y": 38.7299 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090838845259199, 38.728940173147315 ], [ -75.071370121376646, 38.730403426229735 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3695", "slope": 0.0336, "distance": 2.8754278910727382e-06, "feature_x": -75.077400215506955, "feature_y": 38.730402867340636, "nearest_x": -75.0774, "nearest_y": 38.7304 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090893848449028, 38.729388697023573 ], [ -75.071425003986676, 38.730851959307792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3696", "slope": 0.0695, "distance": 2.9218203314194248e-06, "feature_x": -75.078100218983977, "feature_y": 38.730802913602595, "nearest_x": -75.0781, "nearest_y": 38.7308 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090948852376073, 38.729837220872945 ], [ -75.071479887331222, 38.731300492290529 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3697", "slope": 0.0384, "distance": 2.1802744010911832e-05, "feature_x": -75.077798365932352, "feature_y": 38.731278258577106, "nearest_x": -75.0778, "nearest_y": 38.7313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091003856952582, 38.730285744626833 ], [ -75.071534771322632, 38.731749025246785 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3698", "slope": 0.0856, "distance": 6.7668174190120668e-06, "feature_x": -75.078299492841907, "feature_y": 38.731693252214534, "nearest_x": -75.0783, "nearest_y": 38.7317 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091058862266337, 38.73073426835375 ], [ -75.071589656048658, 38.73219755810765 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3699", "slope": 0.0394, "distance": 3.1491395588093445e-05, "feature_x": -75.077997639788933, "feature_y": 38.732168597175288, "nearest_x": -75.078, "nearest_y": 38.7322 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091113868273482, 38.731182791985113 ], [ -75.071644541421549, 38.732646090942012 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3700", "slope": 0.0548, "distance": 1.4659309046739745e-06, "feature_x": -75.078299890131689, "feature_y": 38.732598538192086, "nearest_x": -75.0783, "nearest_y": 38.7326 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091168874930176, 38.731631315589638 ], [ -75.071699427529097, 38.733094623681019 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3701", "slope": 0.0847, "distance": 2.8494853395381785e-05, "feature_x": -75.078693864372937, "feature_y": 38.733021585289599, "nearest_x": -75.078696, "nearest_y": 38.73305 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091223882324144, 38.732079839098553 ], [ -75.071754314283538, 38.733543156359147 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3702", "slope": 0.0484, "distance": 3.6598602937370865e-06, "feature_x": -75.078399725701445, "feature_y": 38.733496350433221, "nearest_x": -75.0784, "nearest_y": 38.7335 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091278890367718, 38.732528362580688 ], [ -75.071809201772751, 38.733991689010686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3702", "slope": 0.0381, "distance": 3.6598602937370865e-06, "feature_x": -75.078399725701445, "feature_y": 38.733496350433221, "nearest_x": -75.0784, "nearest_y": 38.7335 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091278890367718, 38.732528362580688 ], [ -75.071809201772751, 38.733991689010686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3703", "slope": 0.0576, "distance": 3.2227139522203261e-05, "feature_x": -75.078747584645896, "feature_y": 38.733922863500716, "nearest_x": -75.07875, "nearest_y": 38.733955 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091333899148651, 38.732976885967162 ], [ -75.071864089952726, 38.734440221566949 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3704", "slope": 0.0443, "distance": 1.640957761673312e-06, "feature_x": -75.078400122986224, "feature_y": 38.734401636342497, "nearest_x": -75.0784, "nearest_y": 38.7344 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091388908579205, 38.733425409326806 ], [ -75.071918978779777, 38.734888754096623 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3705", "slope": 0.0522, "distance": 3.9161143730670249e-05, "feature_x": -75.078602935043065, "feature_y": 38.734839051001273, "nearest_x": -75.0786, "nearest_y": 38.7348 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09144391874716, 38.733873932590811 ], [ -75.07197386834153, 38.735337286530985 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3705", "slope": 0.0812, "distance": 3.9161143730670249e-05, "feature_x": -75.078602935043065, "feature_y": 38.734839051001273, "nearest_x": -75.0786, "nearest_y": 38.7348 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09144391874716, 38.733873932590811 ], [ -75.07197386834153, 38.735337286530985 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3706", "slope": 0.0433, "distance": 5.5305367744280102e-07, "feature_x": -75.078499958549827, "feature_y": 38.735299448501813, "nearest_x": -75.0785, "nearest_y": 38.7353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09149892956475, 38.73432245579361 ], [ -75.07202875855036, 38.735785818938787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3707", "slope": 0.0514, "distance": 3.6967124112082604e-05, "feature_x": -75.078702770606441, "feature_y": 38.735736863152404, "nearest_x": -75.0787, "nearest_y": 38.7357 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091553941119884, 38.734770978969557 ], [ -75.072083649493962, 38.736234351251269 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3707", "slope": 0.0461, "distance": 3.6967124112082604e-05, "feature_x": -75.078702770606441, "feature_y": 38.735736863152404, "nearest_x": -75.0787, "nearest_y": 38.7357 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091553941119884, 38.734770978969557 ], [ -75.072083649493962, 38.736234351251269 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3708", "slope": 0.0594, "distance": 1.7736660791546275e-05, "feature_x": -75.078798670675297, "feature_y": 38.736182313224376, "nearest_x": -75.0788, "nearest_y": 38.7362 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091608953324638, 38.735219502049901 ], [ -75.072138541084698, 38.736682883537213 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3708", "slope": 0.0501, "distance": 1.7736660791546275e-05, "feature_x": -75.078798670675297, "feature_y": 38.736182313224376, "nearest_x": -75.0788, "nearest_y": 38.7362 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091608953324638, 38.735219502049901 ], [ -75.072138541084698, 38.736682883537213 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3708", "slope": 0.0412, "distance": 1.7736660791546275e-05, "feature_x": -75.078798670675297, "feature_y": 38.736182313224376, "nearest_x": -75.0788, "nearest_y": 38.7362 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091608953324638, 38.735219502049901 ], [ -75.072138541084698, 38.736682883537213 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3709", "slope": 0.0624, "distance": 2.7278282707975589e-05, "feature_x": -75.078902044448924, "feature_y": 38.736627201561284, "nearest_x": -75.0789, "nearest_y": 38.7366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091663966266964, 38.735668025103429 ], [ -75.072193433410263, 38.737131415727838 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3710", "slope": 0.0435, "distance": 1.9930733494300126e-05, "feature_x": -75.07889850623404, "feature_y": 38.73708012532262, "nearest_x": -75.0789, "nearest_y": 38.7371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091718979902893, 38.736116548061275 ], [ -75.07224832638299, 38.737579947891881 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3710", "slope": 0.049, "distance": 1.9930733494300126e-05, "feature_x": -75.07889850623404, "feature_y": 38.73708012532262, "nearest_x": -75.0789, "nearest_y": 38.7371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091718979902893, 38.736116548061275 ], [ -75.07224832638299, 38.737579947891881 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3711", "slope": 0.0377, "distance": 2.5084190346502126e-05, "feature_x": -75.079001880006658, "feature_y": 38.737525013639882, "nearest_x": -75.079, "nearest_y": 38.7375 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091773994188628, 38.736565070992306 ], [ -75.072303220090561, 38.738028479960604 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3711", "slope": 0.0652, "distance": 2.5084190346502126e-05, "feature_x": -75.079001880006658, "feature_y": 38.737525013639882, "nearest_x": -75.079, "nearest_y": 38.7375 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091773994188628, 38.736565070992306 ], [ -75.072303220090561, 38.738028479960604 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3712", "slope": 0.0274, "distance": 1.4630078169700021e-05, "feature_x": -75.078898903506726, "feature_y": 38.737985411069616, "nearest_x": -75.0789, "nearest_y": 38.738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091829009211949, 38.737013593827697 ], [ -75.072358114445308, 38.738477011968371 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3712", "slope": 0.0378, "distance": 1.4630078169700021e-05, "feature_x": -75.078898903506726, "feature_y": 38.737985411069616, "nearest_x": -75.0789, "nearest_y": 38.738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091829009211949, 38.737013593827697 ], [ -75.072358114445308, 38.738477011968371 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3713", "slope": 0.0502, "distance": 2.2890062132605731e-05, "feature_x": -75.079101715561663, "feature_y": 38.73842282568274, "nearest_x": -75.0791, "nearest_y": 38.7384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091884024885061, 38.737462116636252 ], [ -75.072413009535083, 38.738925543949563 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3713", "slope": 0.0378, "distance": 2.2890062132605731e-05, "feature_x": -75.079101715561663, "feature_y": 38.73842282568274, "nearest_x": -75.0791, "nearest_y": 38.7384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091884024885061, 38.737462116636252 ], [ -75.072413009535083, 38.738925543949563 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3713", "slope": 0.0413, "distance": 2.2890062132605731e-05, "feature_x": -75.079101715561663, "feature_y": 38.73842282568274, "nearest_x": -75.0791, "nearest_y": 38.7384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091884024885061, 38.737462116636252 ], [ -75.072413009535083, 38.738925543949563 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3714", "slope": 0.0538, "distance": 2.7243268461571854e-05, "feature_x": -75.0796159581746, "feature_y": 38.73883683335454, "nearest_x": -75.079618, "nearest_y": 38.738864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091939041295802, 38.737910639349153 ], [ -75.072467905272006, 38.739374075835457 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3715", "slope": 0.0489, "distance": 5.7063075370907465e-06, "feature_x": -75.079400427675736, "feature_y": 38.73930569025827, "nearest_x": -75.0794, "nearest_y": 38.7393 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091994058356391, 38.738359162000918 ], [ -75.072522801744, 38.739822607694784 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3716", "slope": 0.0486, "distance": 2.717885879956434e-05, "feature_x": -75.079778963001658, "feature_y": 38.739729897583068, "nearest_x": -75.079781, "nearest_y": 38.739757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092049076154709, 38.738807684625705 ], [ -75.072577698907082, 38.74027113945872 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3717", "slope": 0.0348, "distance": 3.5121055128617064e-06, "feature_x": -75.079500263224944, "feature_y": 38.740203502227544, "nearest_x": -75.0795, "nearest_y": 38.7402 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092104094602874, 38.739256207154938 ], [ -75.072632596717497, 38.740719671196153 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3718", "slope": 0.0363, "distance": 7.0157408775763267e-06, "feature_x": -75.079595474184885, "feature_y": 38.740649003991244, "nearest_x": -75.079596, "nearest_y": 38.740656 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09215911378881, 38.739704729657241 ], [ -75.072687495262926, 38.741168202838196 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3719", "slope": 0.0302, "distance": 1.3178676656165788e-06, "feature_x": -75.079600098771436, "feature_y": 38.741101314161099, "nearest_x": -75.0796, "nearest_y": 38.7411 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092214133624665, 38.740153252063983 ], [ -75.07274239445573, 38.7416167344537 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3720", "slope": 0.037, "distance": 7.2092677910525121e-06, "feature_x": -75.079655459680382, "feature_y": 38.741549811008639, "nearest_x": -75.079656, "nearest_y": 38.741557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09226915419832, 38.740601774443839 ], [ -75.072797294383619, 38.742065265973842 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3721", "slope": 0.0407, "distance": 8.7642817313649132e-07, "feature_x": -75.079699934313524, "feature_y": 38.741999126036823, "nearest_x": -75.0797, "nearest_y": 38.742 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092324175421936, 38.741050296728091 ], [ -75.072852194958898, 38.742513797433098 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3722", "slope": 0.0259, "distance": 4.0590742530232575e-05, "feature_x": -75.079596957807837, "feature_y": 38.742459523421019, "nearest_x": -75.0796, "nearest_y": 38.7425 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092379197383423, 38.741498818985399 ], [ -75.072907096269347, 38.742962328865687 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3723", "slope": 0.0333, "distance": 3.0707365405233593e-06, "feature_x": -75.079799769854645, "feature_y": 38.742896937900063, "nearest_x": -75.0798, "nearest_y": 38.7429 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092434220038783, 38.74194734114711 ], [ -75.0729619982272, 38.743410860202985 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3724", "slope": 0.0431, "distance": 3.4449281739459977e-05, "feature_x": -75.080002581902818, "feature_y": 38.743334352391329, "nearest_x": -75.08, "nearest_y": 38.7433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092489243344204, 38.742395863247587 ], [ -75.073016900920294, 38.743859391513638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3724", "slope": 0.0443, "distance": 3.4449281739459977e-05, "feature_x": -75.080002581902818, "feature_y": 38.743334352391329, "nearest_x": -75.08, "nearest_y": 38.7433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092489243344204, 38.742395863247587 ], [ -75.073016900920294, 38.743859391513638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3724", "slope": 0.0397, "distance": 3.4449281739459977e-05, "feature_x": -75.080002581902818, "feature_y": 38.743334352391329, "nearest_x": -75.08, "nearest_y": 38.7433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092489243344204, 38.742395863247587 ], [ -75.073016900920294, 38.743859391513638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3724", "slope": 0.0434, "distance": 3.4449281739459977e-05, "feature_x": -75.080002581902818, "feature_y": 38.743334352391329, "nearest_x": -75.08, "nearest_y": 38.7433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092489243344204, 38.742395863247587 ], [ -75.073016900920294, 38.743859391513638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3725", "slope": 0.0279, "distance": 1.2759876569697793e-05, "feature_x": -75.079999043673453, "feature_y": 38.743787276011254, "nearest_x": -75.08, "nearest_y": 38.7438 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092544267387581, 38.742844385321163 ], [ -75.073071804260806, 38.744307922729 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3726", "slope": 0.0369, "distance": 2.4760121420221388e-05, "feature_x": -75.080201855720446, "feature_y": 38.744224690482262, "nearest_x": -75.0802, "nearest_y": 38.7442 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092599292081019, 38.743292907299143 ], [ -75.073126708336645, 38.744756453917752 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3726", "slope": 0.0422, "distance": 2.4760121420221388e-05, "feature_x": -75.080201855720446, "feature_y": 38.744224690482262, "nearest_x": -75.0802, "nearest_y": 38.7442 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092599292081019, 38.743292907299143 ], [ -75.073126708336645, 38.744756453917752 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3727", "slope": 0.0433, "distance": 2.9067930202305881e-06, "feature_x": -75.080843782141798, "feature_y": 38.744629101382493, "nearest_x": -75.080844, "nearest_y": 38.744632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092654317512441, 38.743741429250235 ], [ -75.073181613059916, 38.745204985011235 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3728", "slope": 0.0483, "distance": 3.2672305515293094e-06, "feature_x": -75.080963755127712, "feature_y": 38.745072741958708, "nearest_x": -75.080964, "nearest_y": 38.745076 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092709343593938, 38.744189951105696 ], [ -75.07323651851857, 38.74565351607805 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3729", "slope": 0.0499, "distance": 2.3764319819499043e-06, "feature_x": -75.081053821891246, "feature_y": 38.745518630251858, "nearest_x": -75.081054, "nearest_y": 38.745521 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092764370413519, 38.744638472934248 ], [ -75.073291424668611, 38.746102047049519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3730", "slope": 0.056, "distance": 2.6098793130571154e-06, "feature_x": -75.081158804394832, "feature_y": 38.745963397461118, "nearest_x": -75.081159, "nearest_y": 38.745966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092819397883204, 38.745086994667183 ], [ -75.07334633146624, 38.746550577960029 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3731", "slope": 0.0499, "distance": 2.612097836311538e-06, "feature_x": -75.081220804228536, "feature_y": 38.746411395248835, "nearest_x": -75.081221, "nearest_y": 38.746414 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092874426090987, 38.745535516373224 ], [ -75.073401238999253, 38.746999108843937 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3732", "slope": 0.0338, "distance": 2.3082139640889266e-06, "feature_x": -75.081238827004015, "feature_y": 38.746862698278015, "nearest_x": -75.081239, "nearest_y": 38.746865 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092929454948958, 38.745984037983661 ], [ -75.073456147179897, 38.747447639632519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3733", "slope": 0.0171, "distance": 2.9032429543352726e-05, "feature_x": -75.080497824077682, "feature_y": 38.747371049225791, "nearest_x": -75.0805, "nearest_y": 38.7474 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092984484545013, 38.746432559532799 ], [ -75.073511056095967, 38.747896170394519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3733", "slope": 0.0183, "distance": 2.9032429543352726e-05, "feature_x": -75.080497824077682, "feature_y": 38.747371049225791, "nearest_x": -75.0805, "nearest_y": 38.7474 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092984484545013, 38.746432559532799 ], [ -75.073511056095967, 38.747896170394519 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3734", "slope": 0.0364, "distance": 2.8182969022645552e-06, "feature_x": -75.081249788774286, "feature_y": 38.74776718962972, "nearest_x": -75.08125, "nearest_y": 38.74777 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093039514791386, 38.746881081055037 ], [ -75.073565965659682, 38.748344701061143 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3735", "slope": 0.0405, "distance": 3.6157712751813509e-06, "feature_x": -75.081295729005149, "feature_y": 38.748216394398291, "nearest_x": -75.081296, "nearest_y": 38.74822 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093094545775855, 38.747329602481635 ], [ -75.073620875958881, 38.74879323170115 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3736", "slope": 0.0544, "distance": 3.4681610390134474e-06, "feature_x": -75.081355740068247, "feature_y": 38.748664541593364, "nearest_x": -75.081356, "nearest_y": 38.748668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093149577454597, 38.747778123881318 ], [ -75.073675786905781, 38.749241762245802 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3737", "slope": 0.0612, "distance": 3.1477926257784012e-06, "feature_x": -75.081426764079197, "feature_y": 38.749111861060726, "nearest_x": -75.081427, "nearest_y": 38.749115 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093204609783669, 38.748226645185412 ], [ -75.073730698588207, 38.749690292763859 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3738", "slope": 0.0547, "distance": 2.579734017046556e-06, "feature_x": -75.081507806654045, "feature_y": 38.749558427521634, "nearest_x": -75.081508, "nearest_y": 38.749561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093259642850938, 38.748675166462597 ], [ -75.073785610918378, 38.750138823186553 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3739", "slope": 0.0194, "distance": 5.324559426131079e-06, "feature_x": -75.081100600934789, "feature_y": 38.750041690416211, "nearest_x": -75.081101, "nearest_y": 38.750047 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093314676568596, 38.749123687644136 ], [ -75.073840523984103, 38.750587353548319 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3740", "slope": 0.0206, "distance": 4.1264757873572986e-06, "feature_x": -75.081452690728767, "feature_y": 38.75046788513017, "nearest_x": -75.081453, "nearest_y": 38.750472 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093369711024536, 38.749572208798739 ], [ -75.073895437697644, 38.751035883883432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3741", "slope": 0.0628, "distance": 3.9598455831722514e-06, "feature_x": -75.081392703217361, "feature_y": 38.750925051291716, "nearest_x": -75.081393, "nearest_y": 38.750929 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093424746130879, 38.750020729857724 ], [ -75.073950352146795, 38.751484414123176 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3742", "slope": 0.0315, "distance": 3.9100764624975891e-06, "feature_x": -75.081440706947433, "feature_y": 38.751374100920863, "nearest_x": -75.081441, "nearest_y": 38.751378 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09347978197556, 38.750469250889758 ], [ -75.074005267287745, 38.751932944336296 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3743", "slope": 0.0621, "distance": 3.5174112387198491e-06, "feature_x": -75.081683736376888, "feature_y": 38.751808492481693, "nearest_x": -75.081684, "nearest_y": 38.751812 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093534818470673, 38.750917771826202 ], [ -75.074060183076455, 38.752381474454076 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3744", "slope": 0.0306, "distance": 5.0091853333076283e-06, "feature_x": -75.081100375428704, "feature_y": 38.752304995096694, "nearest_x": -75.0811, "nearest_y": 38.7523 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093589855704124, 38.75136629270132 ], [ -75.074115099600903, 38.752830004545224 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3744", "slope": 0.0246, "distance": 5.0091853333076283e-06, "feature_x": -75.081100375428704, "feature_y": 38.752304995096694, "nearest_x": -75.0811, "nearest_y": 38.7523 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093589855704124, 38.75136629270132 ], [ -75.074115099600903, 38.752830004545224 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3745", "slope": 0.0149, "distance": 4.1940832924700831e-06, "feature_x": -75.081643685661604, "feature_y": 38.752716817712823, "nearest_x": -75.081644, "nearest_y": 38.752721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093644893588163, 38.751814813549608 ], [ -75.07417001677328, 38.753278534541082 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3746", "slope": 0.0259, "distance": 2.8144613770316476e-06, "feature_x": -75.081200210938434, "feature_y": 38.753202806545531, "nearest_x": -75.0812, "nearest_y": 38.7532 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093699932210527, 38.752263334302157 ], [ -75.074224934681354, 38.75372706451023 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3747", "slope": 0.0173, "distance": 5.7675856906238101e-06, "feature_x": -75.081442567730591, "feature_y": 38.753637248635997, "nearest_x": -75.081443, "nearest_y": 38.753643 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09375497148352, 38.752711855027862 ], [ -75.0742798532374, 38.754175594384066 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3748", "slope": 0.0461, "distance": 8.114509229459392e-06, "feature_x": -75.081200608166853, "feature_y": 38.754108091686668, "nearest_x": -75.0812, "nearest_y": 38.7541 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093810011494909, 38.753160375657856 ], [ -75.074334772529227, 38.754624124231242 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3749", "slope": 0.0744, "distance": 3.9094856953076705e-05, "feature_x": -75.081197069915547, "feature_y": 38.754561015099782, "nearest_x": -75.0812, "nearest_y": 38.7546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093865052200854, 38.753608896260921 ], [ -75.07438969246904, 38.755072653983071 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3749", "slope": 0.0503, "distance": 3.9094856953076705e-05, "feature_x": -75.081197069915547, "feature_y": 38.754561015099782, "nearest_x": -75.0812, "nearest_y": 38.7546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093865052200854, 38.753608896260921 ], [ -75.07438969246904, 38.755072653983071 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3750", "slope": 0.025, "distance": 5.9196925969606252e-06, "feature_x": -75.081300443669619, "feature_y": 38.755005903043092, "nearest_x": -75.0813, "nearest_y": 38.755 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093920093557443, 38.754057416768411 ], [ -75.074444613144664, 38.755521183673878 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3750", "slope": 0.0269, "distance": 5.9196925969606252e-06, "feature_x": -75.081300443669619, "feature_y": 38.755005903043092, "nearest_x": -75.0813, "nearest_y": 38.755 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093920093557443, 38.754057416768411 ], [ -75.074444613144664, 38.755521183673878 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3751", "slope": 0.028, "distance": 1.977975909650998e-05, "feature_x": -75.081796517544831, "feature_y": 38.755421275872727, "nearest_x": -75.081798, "nearest_y": 38.755441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093975135652542, 38.754505937248908 ], [ -75.074499534468373, 38.755969713338139 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3752", "slope": 0.0278, "distance": 1.1219672070530736e-05, "feature_x": -75.081300840893064, "feature_y": 38.755911188116023, "nearest_x": -75.0813, "nearest_y": 38.7559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094030178398313, 38.754954457633779 ], [ -75.07455445652792, 38.756418242906932 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3752", "slope": 0.054, "distance": 1.1219672070530736e-05, "feature_x": -75.081300840893064, "feature_y": 38.755911188116023, "nearest_x": -75.0813, "nearest_y": 38.7559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094030178398313, 38.754954457633779 ], [ -75.07455445652792, 38.756418242906932 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3752", "slope": 0.0327, "distance": 1.1219672070530736e-05, "feature_x": -75.081300840893064, "feature_y": 38.755911188116023, "nearest_x": -75.0813, "nearest_y": 38.7559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094030178398313, 38.754954457633779 ], [ -75.07455445652792, 38.756418242906932 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3752", "slope": 0.0256, "distance": 1.1219672070530736e-05, "feature_x": -75.081300840893064, "feature_y": 38.755911188116023, "nearest_x": -75.0813, "nearest_y": 38.7559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094030178398313, 38.754954457633779 ], [ -75.07455445652792, 38.756418242906932 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3753", "slope": 0.0286, "distance": 1.2512078446350354e-05, "feature_x": -75.081651062243452, "feature_y": 38.756337523112578, "nearest_x": -75.081652, "nearest_y": 38.75635 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094085221882594, 38.755402977957324 ], [ -75.074609379235596, 38.75686677244915 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3754", "slope": 0.043, "distance": 9.0248072061396178e-06, "feature_x": -75.081400676392221, "feature_y": 38.756808999424351, "nearest_x": -75.0814, "nearest_y": 38.7568 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094140266017689, 38.755851498253975 ], [ -75.074664302679125, 38.757315301895943 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3755", "slope": 0.0312, "distance": 1.2113002673557794e-05, "feature_x": -75.081743092153275, "feature_y": 38.757235921065934, "nearest_x": -75.081744, "nearest_y": 38.757248 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094195310891322, 38.756300018454951 ], [ -75.074719226814778, 38.757763831316133 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3756", "slope": 0.0361, "distance": 1.2715053029836915e-05, "feature_x": -75.081813047030693, "feature_y": 38.757683320708892, "nearest_x": -75.081814, "nearest_y": 38.757696 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094250356415785, 38.756748538629061 ], [ -75.074774151598504, 38.758212360640933 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3757", "slope": 0.04, "distance": 1.2261463217315506e-05, "feature_x": -75.081829081026299, "feature_y": 38.75813477302296, "nearest_x": -75.08183, "nearest_y": 38.758147 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09430540267887, 38.757197058707405 ], [ -75.074829077118309, 38.758660889939165 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3758", "slope": 0.0365, "distance": 1.2129783285132353e-05, "feature_x": -75.081500909104577, "feature_y": 38.758612095667466, "nearest_x": -75.0815, "nearest_y": 38.7586 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094360449592799, 38.75764557875889 ], [ -75.074884003286229, 38.759109419141957 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3759", "slope": 0.0595, "distance": 1.5616252563428017e-05, "feature_x": -75.082010829590985, "feature_y": 38.759026427669191, "nearest_x": -75.082012, "nearest_y": 38.759042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094415497245379, 38.758094098714686 ], [ -75.074938930190186, 38.759557948283721 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3760", "slope": 0.0559, "distance": 7.3603499484906404e-05, "feature_x": -75.0820865164455, "feature_y": 38.759473396484694, "nearest_x": -75.082081, "nearest_y": 38.7594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094470545548873, 38.758542618643531 ], [ -75.07499385774247, 38.760006477398882 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3761", "slope": 0.0355, "distance": 3.727466637810366e-05, "feature_x": -75.081597206332816, "feature_y": 38.759962830171141, "nearest_x": -75.0816, "nearest_y": 38.76 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094525594591062, 38.758991138476716 ], [ -75.075048786030735, 38.760455006418638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3762", "slope": 0.0377, "distance": 7.2498358392700126e-06, "feature_x": -75.081899456638183, "feature_y": 38.760392770554816, "nearest_x": -75.0819, "nearest_y": 38.7604 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094580644328062, 38.759439658248603 ], [ -75.075103714967398, 38.760903535411764 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3763", "slope": 0.0374, "distance": 1.4343211071363537e-05, "feature_x": -75.082028925002746, "feature_y": 38.76083569713019, "nearest_x": -75.08203, "nearest_y": 38.76085 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094635694716089, 38.759888177993552 ], [ -75.075158644640112, 38.761352064309548 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3764", "slope": 0.0347, "distance": 5.5447526039173908e-06, "feature_x": -75.081800415569035, "feature_y": 38.761305529157603, "nearest_x": -75.0818, "nearest_y": 38.7613 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094690745842854, 38.760336697642813 ], [ -75.075213574961225, 38.761800593180645 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3765", "slope": 0.0428, "distance": 1.1855897851533392e-05, "feature_x": -75.082000111422161, "feature_y": 38.761743177447684, "nearest_x": -75.082001, "nearest_y": 38.761755 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094745797620661, 38.76078521726518 ], [ -75.075268506018446, 38.76224912195633 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3766", "slope": 0.0418, "distance": 1.0346747641531784e-05, "feature_x": -75.08196222453013, "feature_y": 38.762198682353308, "nearest_x": -75.081963, "nearest_y": 38.762209 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094800850137261, 38.761233736791802 ], [ -75.075323437724123, 38.762697650705398 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3767", "slope": 0.044, "distance": 9.0332337348284109e-06, "feature_x": -75.081900322975571, "feature_y": 38.762655992172867, "nearest_x": -75.081901, "nearest_y": 38.762665 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094855903304961, 38.761682256291536 ], [ -75.07537837016595, 38.763146179359047 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3768", "slope": 0.0591, "distance": 7.5762068845861548e-06, "feature_x": -75.08187643217704, "feature_y": 38.763110445101731, "nearest_x": -75.081877, "nearest_y": 38.763118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094910957211482, 38.762130775695589 ], [ -75.075433303300144, 38.763594707951654 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3769", "slope": 0.0381, "distance": 1.0860613182484775e-06, "feature_x": -75.081399918601676, "feature_y": 38.763598916993303, "nearest_x": -75.0814, "nearest_y": 38.7636 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094966011769131, 38.762579295072669 ], [ -75.075488237082794, 38.764043236517722 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3770", "slope": 0.052, "distance": 3.6293668349514523e-06, "feature_x": -75.081761727985494, "feature_y": 38.764024380841022, "nearest_x": -75.081762, "nearest_y": 38.764028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095021067065701, 38.763027814354061 ], [ -75.075543171601737, 38.764491764988286 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3771", "slope": 0.0614, "distance": 2.0973846364700239e-06, "feature_x": -75.081736842804787, "feature_y": 38.764478908514413, "nearest_x": -75.081737, "nearest_y": 38.764481 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095076123013428, 38.763476333608544 ], [ -75.075598106769178, 38.764940293432254 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3772", "slope": 0.0699, "distance": 1.3670111438567178e-06, "feature_x": -75.081735897544974, "feature_y": 38.764931636833673, "nearest_x": -75.081736, "nearest_y": 38.764933 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095131179700104, 38.763924852767282 ], [ -75.075653042672954, 38.765388821780761 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3773", "slope": 0.0887, "distance": 5.6167734810430951e-07, "feature_x": -75.081733957903282, "feature_y": 38.765384439902412, "nearest_x": -75.081734, "nearest_y": 38.765385 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09518623703795, 38.764373371864764 ], [ -75.075707979225285, 38.765837350102672 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3774", "slope": 0.0867, "distance": 5.9352524817377317e-07, "feature_x": -75.081822955516344, "feature_y": 38.765830408144083, "nearest_x": -75.081823, "nearest_y": 38.765831 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095241295114874, 38.764821890935288 ], [ -75.075762916513952, 38.766285878329128 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3775", "slope": 0.0573, "distance": 1.6777697472332378e-06, "feature_x": -75.081695125745867, "feature_y": 38.766292673050899, "nearest_x": -75.081695, "nearest_y": 38.766291 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095296353886866, 38.765270409910059 ], [ -75.075817854451273, 38.766734406529004 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3776", "slope": 0.074, "distance": 1.3418998206082611e-06, "feature_x": -75.081916899426986, "feature_y": 38.766728661874374, "nearest_x": -75.081917, "nearest_y": 38.76673 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095351413310183, 38.76571892885795 ], [ -75.075872793124958, 38.767182934633404 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3777", "slope": 0.0532, "distance": 2.4511805366876205e-06, "feature_x": -75.081782183711667, "feature_y": 38.767191444286411, "nearest_x": -75.081782, "nearest_y": 38.767189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095406473472536, 38.766167447710082 ], [ -75.075927732447312, 38.76763146267681 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3778", "slope": 0.0551, "distance": 5.1680828834234787e-06, "feature_x": -75.082300387338734, "feature_y": 38.767605153547265, "nearest_x": -75.0823, "nearest_y": 38.7676 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095461534286244, 38.766615966535305 ], [ -75.075982672506143, 38.768079990693501 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3779", "slope": 0.0718, "distance": 1.0094812480498209e-05, "feature_x": -75.082538243411477, "feature_y": 38.768039933579942, "nearest_x": -75.082539, "nearest_y": 38.76805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095516595839015, 38.767064485264797 ], [ -75.076037613213657, 38.76852851861485 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3780", "slope": 0.0751, "distance": 1.1234427232290699e-05, "feature_x": -75.082695157999282, "feature_y": 38.768480797170447, "nearest_x": -75.082696, "nearest_y": 38.768492 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095571658043212, 38.767513003967423 ], [ -75.076092554657677, 38.768977046509512 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3781", "slope": 0.0778, "distance": 1.1536918172052453e-05, "feature_x": -75.082761135328056, "feature_y": 38.76892849553029, "nearest_x": -75.082762, "nearest_y": 38.76894 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095626720986516, 38.767961522574232 ], [ -75.076147496794349, 38.769425574308748 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3782", "slope": 0.0408, "distance": 2.9201923276129223e-05, "feature_x": -75.082897811366408, "feature_y": 38.769370880209372, "nearest_x": -75.0829, "nearest_y": 38.7694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095681784581259, 38.768410041119772 ], [ -75.076202439579774, 38.769874102081317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3782", "slope": 0.035, "distance": 2.9201923276129223e-05, "feature_x": -75.082897811366408, "feature_y": 38.769370880209372, "nearest_x": -75.0829, "nearest_y": 38.7694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095681784581259, 38.768410041119772 ], [ -75.076202439579774, 38.769874102081317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3782", "slope": 0.043, "distance": 2.9201923276129223e-05, "feature_x": -75.082897811366408, "feature_y": 38.769370880209372, "nearest_x": -75.0829, "nearest_y": 38.7694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095681784581259, 38.768410041119772 ], [ -75.076202439579774, 38.769874102081317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3783", "slope": 0.0689, "distance": 1.4276045141196804e-05, "feature_x": -75.082987930035074, "feature_y": 38.76981676410734, "nearest_x": -75.082989, "nearest_y": 38.769831 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095736848915209, 38.768858559638311 ], [ -75.076257383101776, 38.770322629758468 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3784", "slope": 0.0411, "distance": 3.8892153276434154e-05, "feature_x": -75.083097085100007, "feature_y": 38.770261217233923, "nearest_x": -75.0831, "nearest_y": 38.7703 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09579191390057, 38.769307078061196 ], [ -75.076312327272575, 38.770771157408959 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3785", "slope": 0.0418, "distance": 1.3727433131776915e-06, "feature_x": -75.083299897115239, "feature_y": 38.770698631117632, "nearest_x": -75.0833, "nearest_y": 38.7707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095846979625293, 38.76975559645706 ], [ -75.076367272180008, 38.771219684964009 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3786", "slope": 0.0676, "distance": 1.7265640699507701e-05, "feature_x": -75.083266705969734, "feature_y": 38.771153782920273, "nearest_x": -75.083268, "nearest_y": 38.771171 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095902046001413, 38.770204114757313 ], [ -75.076422217736294, 38.771668212492465 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3787", "slope": 0.0361, "distance": 3.5682017843599019e-06, "feature_x": -75.083399732569362, "feature_y": 38.771596441834063, "nearest_x": -75.0834, "nearest_y": 38.7716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095957113116938, 38.770652633030508 ], [ -75.076477164029257, 38.772116739925423 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3788", "slope": 0.0726, "distance": 1.7593799459152127e-05, "feature_x": -75.083381681374618, "feature_y": 38.772050455684493, "nearest_x": -75.083383, "nearest_y": 38.772068 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096012180927815, 38.771101151208001 ], [ -75.076532110971073, 38.772565267297352 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3789", "slope": 0.0227, "distance": 5.7636960300251965e-06, "feature_x": -75.083499568020741, "feature_y": 38.772494252514825, "nearest_x": -75.0835, "nearest_y": 38.7725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096067249390316, 38.771549669358535 ], [ -75.07658705864965, 38.773013794642573 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3789", "slope": 0.0369, "distance": 5.7636960300251965e-06, "feature_x": -75.083499568020741, "feature_y": 38.772494252514825, "nearest_x": -75.0835, "nearest_y": 38.7725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096067249390316, 38.771549669358535 ], [ -75.07658705864965, 38.773013794642573 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3790", "slope": 0.0717, "distance": 1.5383849437897881e-05, "feature_x": -75.083369847006438, "feature_y": 38.772956659418874, "nearest_x": -75.083371, "nearest_y": 38.772972 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096122318592137, 38.771998187413352 ], [ -75.076642006977153, 38.77346232189241 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3791", "slope": 0.0651, "distance": 3.2076949931084195e-06, "feature_x": -75.083876240411456, "feature_y": 38.776087198673082, "nearest_x": -75.083876, "nearest_y": 38.776084 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096507822304986, 38.775137812182621 ], [ -75.077026664846841, 38.776602011034768 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3792", "slope": 0.0513, "distance": 1.0938414481611452e-05, "feature_x": -75.084061819816228, "feature_y": 38.77652590764928, "nearest_x": -75.084061, "nearest_y": 38.776515 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096562897071536, 38.775586329781063 ], [ -75.077081618761852, 38.77705053783054 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3793", "slope": 0.0599, "distance": 1.1580852953150658e-05, "feature_x": -75.084141867965997, "feature_y": 38.776972548280831, "nearest_x": -75.084141, "nearest_y": 38.776961 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096617972489838, 38.776034847283746 ], [ -75.077136573325944, 38.777499064530858 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3794", "slope": 0.0582, "distance": 5.7878605525827919e-06, "feature_x": -75.084400433790734, "feature_y": 38.777405771581705, "nearest_x": -75.0844, "nearest_y": 38.7774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096673048647787, 38.776483364725074 ], [ -75.077191528627083, 38.777947591204438 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3794", "slope": 0.0507, "distance": 5.7878605525827919e-06, "feature_x": -75.084400433790734, "feature_y": 38.777405771581705, "nearest_x": -75.0844, "nearest_y": 38.7774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096673048647787, 38.776483364725074 ], [ -75.077191528627083, 38.777947591204438 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3795", "slope": 0.0445, "distance": 1.7389241983967199e-05, "feature_x": -75.084388303295455, "feature_y": 38.777859340333265, "nearest_x": -75.084387, "nearest_y": 38.777842 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096728125501485, 38.776931882139401 ], [ -75.07724648457733, 38.77839611778262 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3796", "slope": 0.0239, "distance": 3.5921302146576631e-06, "feature_x": -75.084500269224364, "feature_y": 38.778303582027043, "nearest_x": -75.0845, "nearest_y": 38.7783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096783203007035, 38.777380399458039 ], [ -75.077301441264694, 38.778844644334079 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3796", "slope": 0.0554, "distance": 3.5921302146576631e-06, "feature_x": -75.084500269224364, "feature_y": 38.778303582027043, "nearest_x": -75.0845, "nearest_y": 38.7783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096783203007035, 38.777380399458039 ], [ -75.077301441264694, 38.778844644334079 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3796", "slope": 0.0509, "distance": 3.5921302146576631e-06, "feature_x": -75.084500269224364, "feature_y": 38.778303582027043, "nearest_x": -75.0845, "nearest_y": 38.7783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096783203007035, 38.777380399458039 ], [ -75.077301441264694, 38.778844644334079 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3797", "slope": 0.0535, "distance": 1.4582298922252845e-05, "feature_x": -75.08460213459864, "feature_y": 38.77851442521856, "nearest_x": -75.0846, "nearest_y": 38.7785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09658112286256, 38.776741812071435 ], [ -75.077391715402001, 38.779581400457424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3797", "slope": 0.0604, "distance": 1.4582298922252845e-05, "feature_x": -75.08460213459864, "feature_y": 38.77851442521856, "nearest_x": -75.0846, "nearest_y": 38.7785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09658112286256, 38.776741812071435 ], [ -75.077391715402001, 38.779581400457424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3798", "slope": 0.0472, "distance": 8.1351680332757908e-07, "feature_x": -75.084625836699402, "feature_y": 38.778723203041714, "nearest_x": -75.084626, "nearest_y": 38.778724 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09653856339888, 38.776282227775113 ], [ -75.077466315397714, 38.78019022355339 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3799", "slope": 0.047, "distance": 1.4499395384647972e-06, "feature_x": -75.084734691988601, "feature_y": 38.779072583153628, "nearest_x": -75.084735, "nearest_y": 38.779074 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096664648091945, 38.776479103330523 ], [ -75.077551072210966, 38.780634246313888 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3800", "slope": 0.0468, "distance": 5.4431477011894262e-07, "feature_x": -75.084856877917247, "feature_y": 38.779422469552671, "nearest_x": -75.084857, "nearest_y": 38.779423 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096490169556063, 38.776745061043954 ], [ -75.07771339652011, 38.781066545749532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3801", "slope": 0.0543, "distance": 1.9051447137430386e-06, "feature_x": -75.085017572700551, "feature_y": 38.77985514339246, "nearest_x": -75.085018, "nearest_y": 38.779857 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096652599285591, 38.777177334297384 ], [ -75.077875722793337, 38.781498844891331 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3802", "slope": 0.0643, "distance": 7.4006397462774839e-07, "feature_x": -75.085109165986907, "feature_y": 38.780303721209428, "nearest_x": -75.085109, "nearest_y": 38.780303 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096815030981105, 38.777609607290479 ], [ -75.078038051030774, 38.781931143807867 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3803", "slope": 0.0578, "distance": 1.1660947919814306e-06, "feature_x": -75.085249261540312, "feature_y": 38.780741136386261, "nearest_x": -75.085249, "nearest_y": 38.78074 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096977464642691, 38.778041880057664 ], [ -75.078200381232421, 38.782363442430459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3804", "slope": 0.0488, "distance": 1.0217499171323203e-06, "feature_x": -75.085404770834316, "feature_y": 38.781175004281174, "nearest_x": -75.085405, "nearest_y": 38.781176 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097139900270335, 38.778474152530073 ], [ -75.078362713398406, 38.782795740827865 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3805", "slope": 0.0521, "distance": 1.5623416788934517e-06, "feature_x": -75.085518350413778, "feature_y": 38.781618522537912, "nearest_x": -75.085518, "nearest_y": 38.781617 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097302337864178, 38.778906424776508 ], [ -75.078525047572668, 38.783228038931242 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3806", "slope": 0.0468, "distance": 2.7235142769338864e-06, "feature_x": -75.085633610850621, "feature_y": 38.782061654127261, "nearest_x": -75.085633, "nearest_y": 38.782059 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097464777424221, 38.779338696728168 ], [ -75.0786873836674, 38.78366033677505 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3807", "slope": 0.0534, "distance": 3.8849180323540657e-06, "feature_x": -75.085748871339533, "feature_y": 38.782504785941832, "nearest_x": -75.085748, "nearest_y": 38.782501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097627218950578, 38.779770968453867 ], [ -75.078849721726684, 38.784092634393602 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3808", "slope": 0.0505, "distance": 7.6605687211940954e-06, "feature_x": -75.085848718172542, "feature_y": 38.78295146539994, "nearest_x": -75.085847, "nearest_y": 38.782944 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097789662443247, 38.78020323988472 ], [ -75.079012061750447, 38.784524931718181 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3809", "slope": 0.0897, "distance": 7.2402982046164941e-06, "feature_x": -75.086175376088278, "feature_y": 38.783345944163493, "nearest_x": -75.086177, "nearest_y": 38.783353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.097952107902358, 38.780635511055266 ], [ -75.079174403738875, 38.78495722881744 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3810", "slope": 0.0623, "distance": 3.2948118086714488e-06, "feature_x": -75.08617273898696, "feature_y": 38.783816210869531, "nearest_x": -75.086172, "nearest_y": 38.783813 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098114555327953, 38.78106778199966 ], [ -75.07933674769194, 38.78538952562274 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3811", "slope": 0.0873, "distance": 5.2063616680733574e-07, "feature_x": -75.086348116772527, "feature_y": 38.78424550737185, "nearest_x": -75.086348, "nearest_y": 38.784245 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098277004720046, 38.781500052649285 ], [ -75.079499093609769, 38.785821822202699 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3812", "slope": 0.0448, "distance": 1.864286876734406e-05, "feature_x": -75.086248181376732, "feature_y": 38.784738167901487, "nearest_x": -75.086244, "nearest_y": 38.78472 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098439456078765, 38.781932323072901 ], [ -75.079661441492362, 38.786254118488564 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3813", "slope": 0.061, "distance": 3.9934199659840787e-06, "feature_x": -75.086299104322336, "feature_y": 38.785196108321117, "nearest_x": -75.0863, "nearest_y": 38.7852 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098601909404096, 38.782364593201628 ], [ -75.079823791339805, 38.78668641451484 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3813", "slope": 0.0379, "distance": 3.9934199659840787e-06, "feature_x": -75.086299104322336, "feature_y": 38.785196108321117, "nearest_x": -75.0863, "nearest_y": 38.7852 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098601909404096, 38.782364593201628 ], [ -75.079823791339805, 38.78668641451484 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3814", "slope": 0.0483, "distance": 2.6033858627511396e-05, "feature_x": -75.086426839094386, "feature_y": 38.785636370588719, "nearest_x": -75.086421, "nearest_y": 38.785611 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098764364696194, 38.782796863104309 ], [ -75.079986143152212, 38.787118710315731 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3815", "slope": 0.0618, "distance": 1.189750341420242e-05, "feature_x": -75.086402668474079, "feature_y": 38.786111594388018, "nearest_x": -75.0864, "nearest_y": 38.7861 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.098926821998973, 38.783229132712066 ], [ -75.080148496929539, 38.787551005822586 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3816", "slope": 0.0516, "distance": 3.2830155760675566e-05, "feature_x": -75.08661236343228, "feature_y": 38.786532993733644, "nearest_x": -75.086605, "nearest_y": 38.786501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099089281224636, 38.78366140205943 ], [ -75.080310852671957, 38.787983301104063 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3817", "slope": 0.0561, "distance": 5.3603911211070411e-06, "feature_x": -75.086601202275588, "feature_y": 38.787005223822966, "nearest_x": -75.0866, "nearest_y": 38.787 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099251742417252, 38.784093671180628 ], [ -75.080473210379424, 38.788415596091475 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3817", "slope": 0.0514, "distance": 5.3603911211070411e-06, "feature_x": -75.086601202275588, "feature_y": 38.787005223822966, "nearest_x": -75.0866, "nearest_y": 38.787 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099251742417252, 38.784093671180628 ], [ -75.080473210379424, 38.788415596091475 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3818", "slope": 0.0457, "distance": 2.420510395528157e-05, "feature_x": -75.086594571064239, "feature_y": 38.787476411576698, "nearest_x": -75.0866, "nearest_y": 38.7875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099414205576792, 38.784525940007015 ], [ -75.080635570052095, 38.788847890853496 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3819", "slope": 0.0563, "distance": 1.1759164297013996e-06, "feature_x": -75.086799736254889, "feature_y": 38.787898854042773, "nearest_x": -75.0868, "nearest_y": 38.7879 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099576670703399, 38.784958208607186 ], [ -75.080797931689972, 38.789280185321438 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3819", "slope": 0.0377, "distance": 1.1759164297013996e-06, "feature_x": -75.086799736254889, "feature_y": 38.787898854042773, "nearest_x": -75.0868, "nearest_y": 38.7879 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099576670703399, 38.784958208607186 ], [ -75.080797931689972, 38.789280185321438 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3820", "slope": 0.059, "distance": 3.0741009090456214e-05, "feature_x": -75.0867931051271, "feature_y": 38.788370042190209, "nearest_x": -75.0868, "nearest_y": 38.7884 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099739137797059, 38.785390476912532 ], [ -75.080960295293124, 38.789712479529562 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3821", "slope": 0.0493, "distance": 3.1579774407930011e-05, "feature_x": -75.086942916997941, "feature_y": 38.788805224795155, "nearest_x": -75.08695, "nearest_y": 38.788836 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.099901606857884, 38.785822744991655 ], [ -75.081122660861666, 38.790144773512289 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3822", "slope": 0.0494, "distance": 2.8551520503453677e-05, "feature_x": -75.087041596199626, "feature_y": 38.789252175897786, "nearest_x": -75.087048, "nearest_y": 38.78928 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100064077885918, 38.786255012775847 ], [ -75.081285028395541, 38.790577067200921 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3823", "slope": 0.0401, "distance": 8.1828124158285334e-06, "feature_x": -75.08710183531808, "feature_y": 38.789707974335499, "nearest_x": -75.0871, "nearest_y": 38.7897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100226550881175, 38.78668728029956 ], [ -75.081447397894948, 38.791009360664106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3823", "slope": 0.067, "distance": 8.1828124158285334e-06, "feature_x": -75.08710183531808, "feature_y": 38.789707974335499, "nearest_x": -75.0871, "nearest_y": 38.7897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100226550881175, 38.78668728029956 ], [ -75.081447397894948, 38.791009360664106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3824", "slope": 0.0429, "distance": 2.1381409175501384e-05, "feature_x": -75.08709520437445, "feature_y": 38.790179163334386, "nearest_x": -75.0871, "nearest_y": 38.7902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100389025843825, 38.787119547597037 ], [ -75.081609769359858, 38.791441653833111 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3825", "slope": 0.0639, "distance": 1.6489401795888306e-06, "feature_x": -75.087300369840136, "feature_y": 38.790601606929364, "nearest_x": -75.0873, "nearest_y": 38.7906 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100551502773826, 38.787551814599574 ], [ -75.081772142790371, 38.79187394677669 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3826", "slope": 0.0482, "distance": 1.7178855779262921e-05, "feature_x": -75.087448146959503, "feature_y": 38.791037258818299, "nearest_x": -75.087452, "nearest_y": 38.791054 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100713981671319, 38.787984081375882 ], [ -75.081934518186543, 38.792306239426097 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3827", "slope": 0.0534, "distance": 4.8841509420369542e-06, "feature_x": -75.087498904534726, "feature_y": 38.791495240285066, "nearest_x": -75.0875, "nearest_y": 38.7915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.100876462536277, 38.788416347857265 ], [ -75.082096895548403, 38.792738531815623 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3828", "slope": 0.0385, "distance": 1.4693143475238143e-05, "feature_x": -75.087686704476155, "feature_y": 38.791921681201593, "nearest_x": -75.08769, "nearest_y": 38.791936 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10103894536887, 38.788848614112354 ], [ -75.08225927487608, 38.793170823979736 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3829", "slope": 0.021, "distance": 1.1416413373648048e-05, "feature_x": -75.087697439412494, "feature_y": 38.79238887444896, "nearest_x": -75.0877, "nearest_y": 38.7924 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10120143016907, 38.789280880072518 ], [ -75.082421656169544, 38.793603115849592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3829", "slope": 0.0242, "distance": 1.1416413373648048e-05, "feature_x": -75.087697439412494, "feature_y": 38.79238887444896, "nearest_x": -75.0877, "nearest_y": 38.7924 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10120143016907, 38.789280880072518 ], [ -75.082421656169544, 38.793603115849592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3830", "slope": 0.0404, "distance": 1.2508305058165836e-05, "feature_x": -75.087922194510782, "feature_y": 38.792806810376312, "nearest_x": -75.087925, "nearest_y": 38.792819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.101363916936947, 38.789713145771984 ], [ -75.082584039428937, 38.794035407493972 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3831", "slope": 0.0328, "distance": 9.9190181774060655e-06, "feature_x": -75.088035775261233, "feature_y": 38.793250333694651, "nearest_x": -75.088038, "nearest_y": 38.79326 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.101526405672629, 38.790145411245199 ], [ -75.082746424698186, 38.794467698844052 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3832", "slope": 0.0405, "distance": 8.4509771210415584e-06, "feature_x": -75.088154104527604, "feature_y": 38.793692764333741, "nearest_x": -75.088156, "nearest_y": 38.793701 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.101688896376103, 38.790577676423432 ], [ -75.08290881188961, 38.794899989968648 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3833", "slope": 0.0362, "distance": 7.9572760430845428e-06, "feature_x": -75.088272215259167, "feature_y": 38.794135245456673, "nearest_x": -75.088274, "nearest_y": 38.794143 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.101851389047496, 38.79100994137535 ], [ -75.083071201047034, 38.795332280798995 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3834", "slope": 0.0432, "distance": 1.4464933445574333e-06, "feature_x": -75.088299675565253, "feature_y": 38.794598590359946, "nearest_x": -75.0883, "nearest_y": 38.7946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10201388368678, 38.791442206032229 ], [ -75.083233592170615, 38.795764571369425 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3834", "slope": 0.0401, "distance": 1.4464933445574333e-06, "feature_x": -75.088299675565253, "feature_y": 38.794598590359946, "nearest_x": -75.0883, "nearest_y": 38.7946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10201388368678, 38.791442206032229 ], [ -75.083233592170615, 38.795764571369425 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3835", "slope": 0.0383, "distance": 2.7851052260674339e-06, "feature_x": -75.088486375326994, "feature_y": 38.795025285852851, "nearest_x": -75.088487, "nearest_y": 38.795028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102176380294125, 38.791874470462787 ], [ -75.083395985260424, 38.796196861714343 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3836", "slope": 0.0327, "distance": 2.8785450395104543e-06, "feature_x": -75.088624354369017, "feature_y": 38.795463194793733, "nearest_x": -75.088625, "nearest_y": 38.795466 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102338878869517, 38.79230673459832 ], [ -75.083558380316475, 38.796629151764911 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3837", "slope": 0.0352, "distance": 3.280726373451147e-05, "feature_x": -75.088806358368714, "feature_y": 38.795890971408532, "nearest_x": -75.088799, "nearest_y": 38.795859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102501379413013, 38.792738998473098 ], [ -75.083720777338883, 38.797061441590003 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3838", "slope": 0.0481, "distance": 1.5660318105730531e-05, "feature_x": -75.089003512467471, "feature_y": 38.796315261328104, "nearest_x": -75.089, "nearest_y": 38.7963 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102663881924755, 38.793171262121611 ], [ -75.083883176327646, 38.797493731120667 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3839", "slope": 0.019, "distance": 3.3465000270626721e-05, "feature_x": -75.089239505899883, "feature_y": 38.796730612385836, "nearest_x": -75.089232, "nearest_y": 38.796698 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102826386404701, 38.793603525474957 ], [ -75.084045577282936, 38.797926020425841 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3840", "slope": 0.0165, "distance": 3.1561512167760959e-05, "feature_x": -75.089107078967743, "feature_y": 38.797230757393677, "nearest_x": -75.0891, "nearest_y": 38.7972 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.102988892896917, 38.794035788601938 ], [ -75.084207980204653, 38.79835830943663 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3841", "slope": 0.0355, "distance": 4.2857386703982082e-05, "feature_x": -75.089290387463194, "feature_y": 38.797658234527042, "nearest_x": -75.0893, "nearest_y": 38.7977 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103151401313539, 38.794468051433817 ], [ -75.084370385092953, 38.798790598187423 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3841", "slope": 0.0244, "distance": 4.2857386703982082e-05, "feature_x": -75.089290387463194, "feature_y": 38.797658234527042, "nearest_x": -75.0893, "nearest_y": 38.7977 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103151401313539, 38.794468051433817 ], [ -75.084370385092953, 38.798790598187423 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3842", "slope": 0.0348, "distance": 3.3427403794986533e-05, "feature_x": -75.089678497477593, "feature_y": 38.798038575744876, "nearest_x": -75.089671, "nearest_y": 38.798006 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103313911698649, 38.79490031403931 ], [ -75.084532791947922, 38.799222886712627 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3843", "slope": 0.0362, "distance": 2.5638965982485358e-05, "feature_x": -75.089605750600995, "feature_y": 38.798524985739228, "nearest_x": -75.0896, "nearest_y": 38.7985 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103476424052232, 38.795332576349693 ], [ -75.084695200769573, 38.799655174943432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3843", "slope": 0.0306, "distance": 2.5638965982485358e-05, "feature_x": -75.089605750600995, "feature_y": 38.798524985739228, "nearest_x": -75.0896, "nearest_y": 38.7985 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103476424052232, 38.795332576349693 ], [ -75.084695200769573, 38.799655174943432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3844", "slope": 0.0224, "distance": 3.282551043784262e-05, "feature_x": -75.089882362484957, "feature_y": 38.798930989184903, "nearest_x": -75.089875, "nearest_y": 38.798899 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10363893837436, 38.795764838399265 ], [ -75.084857611557993, 38.800087462948646 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3845", "slope": 0.0189, "distance": 3.3161328371774719e-06, "feature_x": -75.089899256219056, "feature_y": 38.799396768355386, "nearest_x": -75.0899, "nearest_y": 38.7994 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103801454665145, 38.796197100222479 ], [ -75.085020024313195, 38.800519750659433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3846", "slope": 0.0245, "distance": 2.7110505974536399e-06, "feature_x": -75.090199391933666, "feature_y": 38.799797358021443, "nearest_x": -75.0902, "nearest_y": 38.7998 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.103963972924575, 38.796629361750469 ], [ -75.085182439035378, 38.800952038144572 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3847", "slope": 0.016, "distance": 2.0323360559838485e-05, "feature_x": -75.090404558364497, "feature_y": 38.800219805562286, "nearest_x": -75.0904, "nearest_y": 38.8002 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.104126493152805, 38.79706162305208 ], [ -75.085344855724401, 38.801384325335285 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3848", "slope": 0.016, "distance": 3.1665060881607497e-05, "feature_x": -75.09049289778109, "feature_y": 38.80066914170181, "nearest_x": -75.0905, "nearest_y": 38.8007 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.104289015349764, 38.797493884058447 ], [ -75.085507274380433, 38.801816612265981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3848", "slope": 0.0144, "distance": 3.1665060881607497e-05, "feature_x": -75.09049289778109, "feature_y": 38.80066914170181, "nearest_x": -75.0905, "nearest_y": 38.8007 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.104289015349764, 38.797493884058447 ], [ -75.085507274380433, 38.801816612265981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3849", "slope": 0.0325, "distance": 3.2802633655542888e-05, "feature_x": -75.090796357370749, "feature_y": 38.801068966887094, "nearest_x": -75.090789, "nearest_y": 38.801037 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.104451539515651, 38.797926144838414 ], [ -75.085669695003588, 38.802248898970952 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3850", "slope": 0.0348, "distance": 3.3106387833335059e-05, "feature_x": -75.090967425503806, "feature_y": 38.80149926290143, "nearest_x": -75.09096, "nearest_y": 38.801467 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.104614065650452, 38.798358405323128 ], [ -75.08583211759381, 38.802681185381452 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3851", "slope": 0.0356, "distance": 3.2884414846601961e-05, "feature_x": -75.091136375720453, "feature_y": 38.801930046583088, "nearest_x": -75.091129, "nearest_y": 38.801898 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10477659375421, 38.798790665546981 ], [ -75.085994542151283, 38.80311347156632 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3852", "slope": 0.0248, "distance": 7.8814502851493258e-06, "feature_x": -75.091101767749265, "feature_y": 38.802407680645878, "nearest_x": -75.0911, "nearest_y": 38.8024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10493912382708, 38.799222925544385 ], [ -75.086156968675922, 38.803545757456661 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3852", "slope": 0.0275, "distance": 7.8814502851493258e-06, "feature_x": -75.091101767749265, "feature_y": 38.802407680645878, "nearest_x": -75.0911, "nearest_y": 38.8024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.10493912382708, 38.799222925544385 ], [ -75.086156968675922, 38.803545757456661 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3853", "slope": 0.02, "distance": 8.4877342929193344e-06, "feature_x": -75.091401903735047, "feature_y": 38.802808271482711, "nearest_x": -75.0914, "nearest_y": 38.8028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.105101655868992, 38.799655185246507 ], [ -75.086319397167983, 38.803978043121298 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3854", "slope": 0.0776, "distance": 1.3335098379091659e-05, "feature_x": -75.091797009036242, "feature_y": 38.803187004655271, "nearest_x": -75.0918, "nearest_y": 38.8032 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.105264189880145, 38.800087444722166 ], [ -75.086481827627324, 38.804410328491436 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3855", "slope": 0.0342, "distance": 8.0308383466657351e-06, "feature_x": -75.09234380125838, "feature_y": 38.803530826227238, "nearest_x": -75.092342, "nearest_y": 38.803523 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.105426725860482, 38.800519703902516 ], [ -75.086644260054157, 38.804842613635842 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3856", "slope": 0.0518, "distance": 3.8091311543312183e-05, "feature_x": -75.401707192557822, "feature_y": 37.872778042074607, "nearest_x": -75.401739, "nearest_y": 37.872799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.39429086261822, 37.88403366405548 ], [ -75.410082489237226, 37.860067014629941 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3857", "slope": 0.0197, "distance": 9.9655624134914724e-05, "feature_x": -75.40118521531717, "feature_y": 37.87259683114452, "nearest_x": -75.401102, "nearest_y": 37.872542 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.393786899934085, 37.883824996571619 ], [ -75.409578646480185, 37.859858413177804 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3858", "slope": 0.0707, "distance": 0.00016403012166344929, "feature_x": -75.400447030551916, "feature_y": 37.872743748955095, "nearest_x": -75.400584, "nearest_y": 37.872834 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.393282940080041, 37.883616326872811 ], [ -75.409074806505643, 37.859649809580418 ] ] } }, @@ -4549,25 +3670,6 @@ { "type": "Feature", "properties": { "id": "region_29_3877", "slope": 0.1085, "distance": 7.877666623867602e-06, "feature_x": -75.392252422333584, "feature_y": 37.866686665033335, "nearest_x": -75.392259, "nearest_y": 37.866691 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.383708240403678, 37.879651188826472 ], [ -75.399502384530962, 37.855685926966402 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3878", "slope": 0.0976, "distance": 1.4257407827919233e-05, "feature_x": -75.391382904563045, "feature_y": 37.867032845703079, "nearest_x": -75.391371, "nearest_y": 37.867025 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.383204337157323, 37.879442475560118 ], [ -75.39899860107208, 37.855477279783955 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3879", "slope": 0.0976, "distance": 1.3263131624628014e-05, "feature_x": -75.391650074333697, "feature_y": 37.865654298615873, "nearest_x": -75.391639, "nearest_y": 37.865647 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.382700436741487, 37.879233760114097 ], [ -75.39849482048227, 37.855268630388323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3880", "slope": 0.0294, "distance": 1.3474928704945536e-05, "feature_x": -75.386464749315181, "feature_y": 37.859898584085045, "nearest_x": -75.386476, "nearest_y": 37.859906 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.3756461279512, 37.876311514903229 ], [ -75.39144218882052, 37.852347310451911 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3881", "slope": 0.0237, "distance": 2.506941956274069e-05, "feature_x": -75.386115931261372, "feature_y": 37.859454797032086, "nearest_x": -75.386095, "nearest_y": 37.859441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.375142269993546, 37.876102766734768 ], [ -75.390938450620396, 37.85213862841524 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3882", "slope": 0.0228, "distance": 1.8648641030847959e-05, "feature_x": -75.385726429701023, "feature_y": 37.859072736589148, "nearest_x": -75.385742, "nearest_y": 37.859083 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.374638414866752, 37.875894016421874 ], [ -75.390434715202986, 37.85192994420072 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3883", "slope": 0.0226, "distance": 1.1242054839740379e-05, "feature_x": -75.386790613824672, "feature_y": 37.852593812633046, "nearest_x": -75.3868, "nearest_y": 37.8526 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.37211918164904, 37.874850232142521 ], [ -75.387916080680085, 37.850886490390863 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3884", "slope": 0.0077, "distance": 4.7460500453060111e-06, "feature_x": -75.385603962505115, "feature_y": 37.850502612191455, "nearest_x": -75.3856, "nearest_y": 37.8505 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.37010384601875, 37.874015165498371 ], [ -75.385901223923113, 37.850051688164982 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3885", "slope": 0.0121, "distance": 7.3367027829476136e-07, "feature_x": -75.383421387456281, "feature_y": 37.852840596190298, "nearest_x": -75.383422, "nearest_y": 37.852841 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.369600019198714, 37.873806393365534 ], [ -75.385397516810087, 37.849842982173229 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3886", "slope": 0.0167, "distance": 0.00011956495381930096, "feature_x": -75.381102824858459, "feature_y": 37.855384808630262, "nearest_x": -75.381003, "nearest_y": 37.855319 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.369096195166222, 37.873597619088933 ], [ -75.384893812523231, 37.849634274004011 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3887", "slope": 0.0103, "distance": 2.2752964842119869e-06, "feature_x": -75.381033100359417, "feature_y": 37.854517747666279, "nearest_x": -75.381035, "nearest_y": 37.854519 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.368592374007875, 37.873388842634007 ], [ -75.384390111062544, 37.84942556365737 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3888", "slope": 0.0709, "distance": 0.00018181364430529032, "feature_x": -75.380429795380635, "feature_y": 37.854460071792602, "nearest_x": -75.380278, "nearest_y": 37.85436 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.368088555680274, 37.873180064000778 ], [ -75.383886412384513, 37.849216851099186 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3889", "slope": 0.0771, "distance": 4.153450968510955e-06, "feature_x": -75.379922532313628, "feature_y": 37.854256713888411, "nearest_x": -75.379926, "nearest_y": 37.854259 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.367584740183318, 37.87297128315511 ], [ -75.383382716576179, 37.849008136397948 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3890", "slope": 0.0191, "distance": 3.007847008602736e-06, "feature_x": -75.381297488778003, "feature_y": 37.851198344431296, "nearest_x": -75.3813, "nearest_y": 37.8512 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.367080927473921, 37.872762500165841 ], [ -75.382879023594072, 37.848799419519452 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3891", "slope": 0.0102, "distance": 7.198782534726274e-06, "feature_x": -75.380393989825819, "feature_y": 37.851596037642572, "nearest_x": -75.3804, "nearest_y": 37.8516 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.366577117638727, 37.872553714998361 ], [ -75.382375333437977, 37.848590700429327 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3892", "slope": 0.0485, "distance": 3.6142204503439994e-05, "feature_x": -75.379169825416554, "feature_y": 37.852480106446762, "nearest_x": -75.3792, "nearest_y": 37.8525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.36607331063432, 37.87234492765289 ], [ -75.381871646064909, 37.848381979196638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3893", "slope": 0.0418, "distance": 1.1551576019492814e-05, "feature_x": -75.377467355792959, "feature_y": 37.854089641684254, "nearest_x": -75.377477, "nearest_y": 37.854096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.365569506460531, 37.872136138095108 ], [ -75.381367961561494, 37.848173255786655 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3894", "slope": 0.0335, "distance": 1.2331201934871937e-05, "feature_x": -75.377210295070725, "feature_y": 37.853506787492904, "nearest_x": -75.3772, "nearest_y": 37.8535 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.365065705074429, 37.87192734639391 ], [ -75.38086427988425, 37.847964530199626 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3895", "slope": 0.0283, "distance": 5.1833966950975009e-06, "feature_x": -75.373904327472275, "feature_y": 37.855602853171057, "nearest_x": -75.3739, "nearest_y": 37.8556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.363554318031063, 37.871300958188598 ], [ -75.379353251766574, 37.847338340342318 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3896", "slope": 0.0204, "distance": 2.7824773007247276e-06, "feature_x": -75.372802323004848, "feature_y": 37.856301531609738, "nearest_x": -75.3728, "nearest_y": 37.8563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.363050527968383, 37.871092157776282 ], [ -75.378849581394391, 37.847129606047531 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3896", "slope": 0.0209, "distance": 2.7824773007247276e-06, "feature_x": -75.372802323004848, "feature_y": 37.856301531609738, "nearest_x": -75.3728, "nearest_y": 37.8563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.363050527968383, 37.871092157776282 ], [ -75.378849581394391, 37.847129606047531 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_3897", "slope": 0.0523, "distance": 2.8617647180303216e-06, "feature_x": -75.368702389177045, "feature_y": 37.859601575287392, "nearest_x": -75.3687, "nearest_y": 37.8596 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.361539174895483, 37.870465743438743 ], [ -75.377338587192156, 37.846503390068229 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3898", "slope": 0.0846, "distance": 8.5292505277528137e-06, "feature_x": -75.334002715179608, "feature_y": 37.901591914462649, "nearest_x": -75.334, "nearest_y": 37.9016 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.345888334737424, 37.905583188075852 ], [ -75.328084211610019, 37.899604439849988 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3899", "slope": 0.0536, "distance": 2.0764518242743817e-05, "feature_x": -75.298792654468315, "feature_y": 37.95571942185321, "nearest_x": -75.2988, "nearest_y": 37.9557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.314379127339421, 37.961614375807478 ], [ -75.297023142873954, 37.955050175548642 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_3899", "slope": 0.0543, "distance": 2.0764518242743817e-05, "feature_x": -75.298792654468315, "feature_y": 37.95571942185321, "nearest_x": -75.2988, "nearest_y": 37.9557 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.314379127339421, 37.961614375807478 ], [ -75.297023142873954, 37.955050175548642 ] ] } }, @@ -5468,9 +4570,6 @@ { "type": "Feature", "properties": { "id": "region_29_4731", "slope": 0.019, "distance": 3.2821479086719707e-05, "feature_x": -75.605385464242161, "feature_y": 37.56442942721926, "nearest_x": -75.6054, "nearest_y": 37.5644 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.610511663499281, 37.566961545200868 ], [ -75.58645987860973, 37.555081016576437 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4732", "slope": 0.024, "distance": 4.5697970617280247e-05, "feature_x": -75.604968761558439, "feature_y": 37.56475397206367, "nearest_x": -75.604989, "nearest_y": 37.564713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.610213218056643, 37.567344508562208 ], [ -75.586161355807349, 37.555463920547801 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4733", "slope": 0.0208, "distance": 1.9710541674983336e-06, "feature_x": -75.604599127070173, "feature_y": 37.56510176721477, "nearest_x": -75.6046, "nearest_y": 37.5651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.609914769531684, 37.567727471205728 ], [ -75.58586282992303, 37.555846823799904 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4734", "slope": 0.0141, "distance": 1.2542775368517577e-05, "feature_x": -75.601105554932388, "feature_y": 37.567088754381295, "nearest_x": -75.6011, "nearest_y": 37.5671 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.607825544919478, 37.57040818846572 ], [ -75.583773063804614, 37.558527125282417 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4735", "slope": 0.011, "distance": 1.6864887676719954e-05, "feature_x": -75.600692530883933, "feature_y": 37.567415120738787, "nearest_x": -75.6007, "nearest_y": 37.5674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.607527072119666, 37.570791145053768 ], [ -75.583474513648142, 37.558910022468289 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4736", "slope": 0.011, "distance": 4.8464901826383463e-06, "feature_x": -75.600302093874873, "feature_y": 37.567695629169975, "nearest_x": -75.6003, "nearest_y": 37.5677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.607203396022754, 37.571001743354785 ], [ -75.583063375808663, 37.559437307898811 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4737", "slope": 0.0135, "distance": 2.9536769412482894e-05, "feature_x": -75.600452337529902, "feature_y": 37.568356545098993, "nearest_x": -75.600463, "nearest_y": 37.568329 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.602659009175127, 37.569210728648478 ], [ -75.581752771041849, 37.561118104295559 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4738", "slope": 0.0074, "distance": 4.3941327377701254e-05, "feature_x": -75.599611867687742, "feature_y": 37.568457691629206, "nearest_x": -75.5996, "nearest_y": 37.5685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.602544158808712, 37.569280212438471 ], [ -75.581874526781974, 37.563482287962181 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4739", "slope": 0.0418, "distance": 2.6620163272161303e-06, "feature_x": -75.600330481216616, "feature_y": 37.568925610975818, "nearest_x": -75.600331, "nearest_y": 37.568923 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.602689340900824, 37.569394300565676 ], [ -75.58209563925034, 37.565302470244056 ] ] } }, @@ -5502,15 +4601,6 @@ { "type": "Feature", "properties": { "id": "region_29_4765", "slope": 0.017, "distance": 7.7059102760318719e-06, "feature_x": -75.659901484817183, "feature_y": 37.445192438494125, "nearest_x": -75.6599, "nearest_y": 37.4452 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.677144914542311, 37.448578449321282 ], [ -75.65738642433088, 37.44469856794904 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4766", "slope": 0.0161, "distance": 2.5779992381070926e-06, "feature_x": -75.659600496743067, "feature_y": 37.445597470311007, "nearest_x": -75.6596, "nearest_y": 37.4456 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.677009792562643, 37.449016051403575 ], [ -75.657251193596792, 37.44513614876189 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4767", "slope": 0.0133, "distance": 3.5432871553428043e-05, "feature_x": -75.659776827400293, "feature_y": 37.446096231120357, "nearest_x": -75.65977, "nearest_y": 37.446131 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.676874669089017, 37.449453653348627 ], [ -75.657115961280454, 37.445573729437406 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4768", "slope": 0.0396, "distance": 5.2474865910990286e-06, "feature_x": -75.658927988885893, "feature_y": 37.454748149151754, "nearest_x": -75.658929, "nearest_y": 37.454743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.674307030574397, 37.457768057437953 ], [ -75.654546255227515, 37.453887729234125 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4769", "slope": 0.0204, "distance": 8.4473705642083542e-06, "feature_x": -75.658398372314991, "feature_y": 37.455108289071781, "nearest_x": -75.6584, "nearest_y": 37.4551 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.67417187634247, 37.458205655920764 ], [ -75.654410992112219, 37.454325306467986 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4770", "slope": 0.0159, "distance": 7.4737866365616961e-06, "feature_x": -75.65850144008958, "feature_y": 37.455592666267748, "nearest_x": -75.6585, "nearest_y": 37.4556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.674036720572431, 37.458643254266526 ], [ -75.654275727499311, 37.454762883495015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4771", "slope": 0.037, "distance": 8.0602862447377286e-06, "feature_x": -75.659408446900542, "feature_y": 37.456234909241203, "nearest_x": -75.65941, "nearest_y": 37.456227 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.673901563220483, 37.459080852406622 ], [ -75.654140461303029, 37.455200460384532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4772", "slope": 0.017, "distance": 4.3053246567691997e-06, "feature_x": -75.661538170426951, "feature_y": 37.460366224645426, "nearest_x": -75.661539, "nearest_y": 37.460362 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.672820249231094, 37.462581631524159 ], [ -75.653058276482554, 37.458701069162871 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4773", "slope": 0.0159, "distance": 8.5219287421612581e-06, "feature_x": -75.659898357949089, "feature_y": 37.460508362232858, "nearest_x": -75.6599, "nearest_y": 37.4605 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.672685078030653, 37.463019228120622 ], [ -75.652922996462479, 37.459138644502282 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4774", "slope": 0.0226, "distance": 1.1870701406403493e-05, "feature_x": -75.660097712689677, "feature_y": 37.461011648251514, "nearest_x": -75.6601, "nearest_y": 37.461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.672549905334691, 37.463456824579694 ], [ -75.652787714857979, 37.459576219635316 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4775", "slope": 0.0225, "distance": 4.0489325733529737e-06, "feature_x": -75.660200780170001, "feature_y": 37.461496026942015, "nearest_x": -75.6602, "nearest_y": 37.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.672414731099394, 37.463894420832801 ], [ -75.652652431755811, 37.460013794630228 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_4775", "slope": 0.022, "distance": 4.0489325733529737e-06, "feature_x": -75.660200780170001, "feature_y": 37.461496026942015, "nearest_x": -75.6602, "nearest_y": 37.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.672414731099394, 37.463894420832801 ], [ -75.652652431755811, 37.460013794630228 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4776", "slope": 0.014, "distance": 0.00055346503349139277, "feature_x": -75.427757811341834, "feature_y": 37.875301542321154, "nearest_x": -75.428054, "nearest_y": 37.874834 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.43974398543206, 37.882894798930586 ], [ -75.423755584400041, 37.872766126437028 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4777", "slope": 0.014, "distance": 0.001040792840657454, "feature_x": -75.427497015086018, "feature_y": 37.875713214162054, "nearest_x": -75.428054, "nearest_y": 37.874834 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.439389040556648, 37.883246849389714 ], [ -75.423400611103929, 37.873118129462448 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_4778", "slope": 0.014, "distance": 0.0015281218484800305, "feature_x": -75.427236217104124, "feature_y": 37.876124886330786, "nearest_x": -75.428054, "nearest_y": 37.874834 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.439034092307921, 37.883598898812963 ], [ -75.423045634435468, 37.873470131416688 ] ] } }, @@ -15741,11 +14831,6 @@ { "type": "Feature", "properties": { "id": "region_29_14046", "slope": 0.103, "distance": 0.00013803070836125478, "feature_x": -69.797682524198081, "feature_y": 43.73453618596627, "nearest_x": -69.797545, "nearest_y": 43.734548 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.798061659760236, 43.738949607780526 ], [ -69.797366906278, 43.730862157063505 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_14047", "slope": 0.1077, "distance": 2.37369499540446e-05, "feature_x": -69.797072649866877, "feature_y": 43.73467796859903, "nearest_x": -69.797049, "nearest_y": 43.73468 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.797441965469503, 43.738977594809114 ], [ -69.796747295002675, 43.73089013972924 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_14048", "slope": 0.0499, "distance": 2.7817938196049185e-05, "feature_x": -69.796664214773784, "feature_y": 43.734739238596212, "nearest_x": -69.796637, "nearest_y": 43.734745 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.797462756728208, 43.73851126004508 ], [ -69.795857857891249, 43.730930302272291 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_14049", "slope": 0.0499, "distance": 5.2809259692801255e-05, "feature_x": -69.796592993056521, "feature_y": 43.734774192581838, "nearest_x": -69.796637, "nearest_y": 43.734745 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.797151964624845, 43.735616825492734 ], [ -69.794095863543518, 43.731009844572569 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_14050", "slope": 0.0499, "distance": 5.3130762419352533e-05, "feature_x": -69.796652948356311, "feature_y": 43.734694319354318, "nearest_x": -69.796637, "nearest_y": 43.734745 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.798099078809273, 43.735149392556664 ], [ -69.792799064390749, 43.733481566165921 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_14051", "slope": 0.0415, "distance": 3.7295490383480419e-05, "feature_x": -69.796491418843203, "feature_y": 43.73480329486673, "nearest_x": -69.7965, "nearest_y": 43.734767 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.802015945348685, 43.736109452800136 ], [ -69.792805003237632, 43.733931719540905 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_14052", "slope": 0.0557, "distance": 0.00010505545092712736, "feature_x": -69.795598919726061, "feature_y": 43.734952918753493, "nearest_x": -69.79562, "nearest_y": 43.73485 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.801426282640065, 43.736146504979629 ], [ -69.79281094222226, 43.734381872879666 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_14053", "slope": 0.0286, "distance": 1.4144110606356214e-05, "feature_x": -69.794731585974716, "feature_y": 43.735188094296149, "nearest_x": -69.794729, "nearest_y": 43.735202 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.802840924617826, 43.736696147742521 ], [ -69.792816881344621, 43.734832026182183 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_14054", "slope": 0.0356, "distance": 5.4009496068542754e-05, "feature_x": -69.79464953117936, "feature_y": 43.735612172992219, "nearest_x": -69.794659, "nearest_y": 43.735559 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.803614157949895, 43.737208555656672 ], [ -69.792761074851953, 43.735275884709303 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_14055", "slope": 0.0496, "distance": 9.7923391424093825e-05, "feature_x": -69.79467662681617, "feature_y": 43.736158273697228, "nearest_x": -69.794656, "nearest_y": 43.736254 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.803296844898284, 43.738015732395034 ], [ -69.792584172665897, 43.735707397962514 ] ] } }, { "type": "Feature", "properties": { "id": "region_29_14056", "slope": 0.0548, "distance": 6.7745685815581936e-06, "feature_x": -69.794568572988368, "feature_y": 43.736604622568784, "nearest_x": -69.79457, "nearest_y": 43.736598 }, "geometry": { "type": "LineString", "coordinates": [ [ -69.803120010885777, 43.738447261229723 ], [ -69.792407267979826, 43.736138910928865 ] ] } }, @@ -37220,914 +36305,914 @@ { "type": "Feature", "properties": { "id": "region_29_33203", "slope": 0.0553, "distance": 9.8437786652520407e-07, "feature_x": -75.99440016951182, "feature_y": 36.919900969672895, "nearest_x": -75.9944, "nearest_y": 36.9199 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -75.995096339248789, 36.919779269867668 ], [ -75.991170181363913, 36.920465614913311 ] ] ] } }, { "type": "Feature", "properties": { "id": "region_29_33204", "slope": 0.059, "distance": 7.5722533595205477e-06, "feature_x": -75.994798696026251, "feature_y": 36.920292540866441, "nearest_x": -75.9948, "nearest_y": 36.9203 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -75.99545517437025, 36.920177778137067 ], [ -75.99154036038162, 36.920862149133363 ] ] ] } }, { "type": "Feature", "properties": { "id": "region_29_33204", "slope": 0.0594, "distance": 7.5722533595205477e-06, "feature_x": -75.994798696026251, "feature_y": 36.920292540866441, "nearest_x": -75.9948, "nearest_y": 36.9203 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -75.99545517437025, 36.920177778137067 ], [ -75.99154036038162, 36.920862149133363 ] ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33205", "slope": 0.075, "distance": 1.2417625795652526e-05, "feature_x": -75.049500366914089, "feature_y": 38.451587587796148, "nearest_x": -75.0495, "nearest_y": 38.4516 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043103636852706, 38.451398495639147 ], [ -75.05014020783311, 38.451606501975476 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33206", "slope": 0.0331, "distance": 2.3484684988729025e-05, "feature_x": -75.04899933385424, "feature_y": 38.452023475235436, "nearest_x": -75.049, "nearest_y": 38.452 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043084496775052, 38.451855632674302 ], [ -75.050133622596391, 38.452055662415745 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33207", "slope": 0.0645, "distance": 1.4751236472672698e-05, "feature_x": -75.049400405754994, "feature_y": 38.452485254345035, "nearest_x": -75.0494, "nearest_y": 38.4525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04306630814439, 38.452310959495726 ], [ -75.050127031035132, 38.45250524883383 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33208", "slope": 0.0324, "distance": 2.2332486497920964e-05, "feature_x": -75.048899397363243, "feature_y": 38.452922324354013, "nearest_x": -75.0489, "nearest_y": 38.4529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043048782894033, 38.45276438942016 ], [ -75.050120432790251, 38.452955285703702 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33209", "slope": 0.0787, "distance": 1.3348879025260023e-05, "feature_x": -75.049400357845855, "feature_y": 38.453386655918258, "nearest_x": -75.0494, "nearest_y": 38.4534 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043031634424651, 38.45321586700517 ], [ -75.0501094070558, 38.453405670363679 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33210", "slope": 0.0317, "distance": 2.1482429290917818e-05, "feature_x": -75.048799420481799, "feature_y": 38.453821474611217, "nearest_x": -75.0488, "nearest_y": 38.4538 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043014578155308, 38.453665363684735 ], [ -75.050098083871276, 38.453856520604432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33211", "slope": 0.0694, "distance": 1.1040075355488933e-05, "feature_x": -75.049400303497976, "feature_y": 38.454288964097103, "nearest_x": -75.0494, "nearest_y": 38.4543 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042997331715583, 38.454112876198842 ], [ -75.050086748714577, 38.454307842002486 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33212", "slope": 0.0336, "distance": 2.0619598567307529e-05, "feature_x": -75.048699415570837, "feature_y": 38.454720611314556, "nearest_x": -75.0487, "nearest_y": 38.4547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042979614805446, 38.454558427658824 ], [ -75.050075401772773, 38.454759627091789 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33213", "slope": 0.0494, "distance": 1.9556184930319275e-05, "feature_x": -75.049000577361056, "feature_y": 38.455180452339697, "nearest_x": -75.049, "nearest_y": 38.4552 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04296114870354, 38.455002071356297 ], [ -75.050064043370156, 38.455211862945447 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33214", "slope": 0.0329, "distance": 2.2550121911784513e-05, "feature_x": -75.048699300677356, "feature_y": 38.45562253927563, "nearest_x": -75.0487, "nearest_y": 38.4556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042941655355122, 38.455443897700839 ], [ -75.050052673993108, 38.455664530181089 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33215", "slope": 0.0729, "distance": 6.7108796270629027e-06, "feature_x": -75.049300219991693, "feature_y": 38.456093292727154, "nearest_x": -75.0493, "nearest_y": 38.4561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04292083009716, 38.455884055258515 ], [ -75.050041294384371, 38.456117599209833 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33216", "slope": 0.0313, "distance": 2.1287744098919723e-05, "feature_x": -75.048599261307501, "feature_y": 38.456521274923787, "nearest_x": -75.0486, "nearest_y": 38.4565 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042897086976808, 38.456323288157044 ], [ -75.050029907588893, 38.456570948787686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33217", "slope": 0.0504, "distance": 5.6500435356844062e-06, "feature_x": -75.049200205850823, "feature_y": 38.456994353707643, "nearest_x": -75.0492, "nearest_y": 38.457 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042868762096006, 38.456763523835299 ], [ -75.050018523433167, 38.457024187683963 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33218", "slope": 0.0268, "distance": 2.0047816342923649e-05, "feature_x": -75.048499246998986, "feature_y": 38.457420033669898, "nearest_x": -75.0485, "nearest_y": 38.4574 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042836320179973, 38.457207182520783 ], [ -75.050007157107288, 38.457476711145972 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33219", "slope": 0.0505, "distance": 1.3426127978795907e-05, "feature_x": -75.04890050687618, "feature_y": 38.457886583443475, "nearest_x": -75.0489, "nearest_y": 38.4579 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042801204135088, 38.457656152389234 ], [ -75.049995822547842, 38.457927964361204 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33219", "slope": 0.0509, "distance": 1.3426127978795907e-05, "feature_x": -75.04890050687618, "feature_y": 38.457886583443475, "nearest_x": -75.0489, "nearest_y": 38.4579 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042801204135088, 38.457656152389234 ], [ -75.049995822547842, 38.457927964361204 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33220", "slope": 0.0291, "distance": 2.2837149852200078e-05, "feature_x": -75.048499159358059, "feature_y": 38.458322821672475, "nearest_x": -75.0485, "nearest_y": 38.4583 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04276491713992, 38.458111599444543 ], [ -75.049984530096182, 38.458377535670365 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33221", "slope": 0.0913, "distance": 1.8170414112006618e-06, "feature_x": -75.049299937064475, "feature_y": 38.458801815951155, "nearest_x": -75.0493, "nearest_y": 38.4588 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042729035173423, 38.458574087812025 ], [ -75.049973286606402, 38.458825152266428 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33222", "slope": 0.0253, "distance": 2.1876224771412829e-05, "feature_x": -75.048399316792157, "feature_y": 38.459221865553673, "nearest_x": -75.0484, "nearest_y": 38.4592 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04269520963841, 38.459043635867459 ], [ -75.04996209505083, 38.459270695891384 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33223", "slope": 0.0805, "distance": 5.8141669362085434e-06, "feature_x": -75.049200155173807, "feature_y": 38.459694187904141, "nearest_x": -75.0492, "nearest_y": 38.4597 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042665157885722, 38.459519713764536 ], [ -75.049950953760955, 38.459714233044444 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33224", "slope": 0.0244, "distance": 2.3378063832402812e-05, "feature_x": -75.048399504082795, "feature_y": 38.460123372803309, "nearest_x": -75.0484, "nearest_y": 38.4601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042640640108587, 38.460001182936111 ], [ -75.049950472439008, 38.460156280789732 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33225", "slope": 0.0772, "distance": 1.4298003495253321e-05, "feature_x": -75.049200216355317, "feature_y": 38.460585703633527, "nearest_x": -75.0492, "nearest_y": 38.4606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042623421635838, 38.460486173130164 ], [ -75.049952387581129, 38.460597086683158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33225", "slope": 0.0604, "distance": 1.4298003495253321e-05, "feature_x": -75.049200216355317, "feature_y": 38.460585703633527, "nearest_x": -75.0492, "nearest_y": 38.4606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042623421635838, 38.460486173130164 ], [ -75.049952387581129, 38.460597086683158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33226", "slope": 0.024, "distance": 2.3582839906435162e-05, "feature_x": -75.048399789387872, "feature_y": 38.461023581899425, "nearest_x": -75.0484, "nearest_y": 38.461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042615143431988, 38.460971918691513 ], [ -75.049954300893631, 38.461037465385424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33227", "slope": 0.0852, "distance": 2.3950354913487911e-05, "feature_x": -75.049200074352441, "feature_y": 38.461476049760499, "nearest_x": -75.0492, "nearest_y": 38.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042614648502507, 38.461455605602907 ], [ -75.049956216635522, 38.461478397170119 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33227", "slope": 0.0908, "distance": 2.3950354913487911e-05, "feature_x": -75.049200074352441, "feature_y": 38.461476049760499, "nearest_x": -75.0492, "nearest_y": 38.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042614648502507, 38.461455605602907 ], [ -75.049956216635522, 38.461478397170119 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33228", "slope": 0.0648, "distance": 1.4888802527019284e-05, "feature_x": -75.049250031532253, "feature_y": 38.461921888769133, "nearest_x": -75.04925, "nearest_y": 38.461907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042618760038991, 38.461935932842977 ], [ -75.049958137009995, 38.461920389104158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33229", "slope": 0.0637, "distance": 9.2095480193736308e-06, "feature_x": -75.049403062254243, "feature_y": 38.462367209337607, "nearest_x": -75.049403, "nearest_y": 38.462358 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04262605399478, 38.462413021263643 ], [ -75.049960062029811, 38.46236344407253 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33230", "slope": 0.0872, "distance": 1.5750698926817362e-05, "feature_x": -75.04920017165459, "feature_y": 38.462815749763536, "nearest_x": -75.0492, "nearest_y": 38.4628 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042636206958932, 38.462887289546671 ], [ -75.049961991194237, 38.462807446793121 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33231", "slope": 0.0274, "distance": 2.4873780293285748e-05, "feature_x": -75.048399636970458, "feature_y": 38.463275128869029, "nearest_x": -75.0484, "nearest_y": 38.4633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042648913066344, 38.463359068865351 ], [ -75.049963924062936, 38.463252295873566 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33231", "slope": 0.0287, "distance": 2.4873780293285748e-05, "feature_x": -75.048399636970458, "feature_y": 38.463275128869029, "nearest_x": -75.0484, "nearest_y": 38.4633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042648913066344, 38.463359068865351 ], [ -75.049963924062936, 38.463252295873566 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33232", "slope": 0.0556, "distance": 1.9129911495410403e-06, "feature_x": -75.04918303424661, "feature_y": 38.46371191268458, "nearest_x": -75.049183, "nearest_y": 38.46371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042663879338434, 38.463828638110456 ], [ -75.049965860222684, 38.463697896190617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33233", "slope": 0.0547, "distance": 7.0041774215484015e-07, "feature_x": -75.049175014616694, "feature_y": 38.464160700265211, "nearest_x": -75.049175, "nearest_y": 38.46416 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04268082309116, 38.464296254021441 ], [ -75.049967799259434, 38.464144152410753 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33234", "slope": 0.0518, "distance": 1.7676069262192472e-06, "feature_x": -75.04919395838408, "feature_y": 38.464609232883035, "nearest_x": -75.049194, "nearest_y": 38.464611 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0426994707571, 38.464762179226362 ], [ -75.049969740732394, 38.464590963070201 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33235", "slope": 0.0273, "distance": 2.352557909747438e-05, "feature_x": -75.048499388732452, "feature_y": 38.465076482363557, "nearest_x": -75.0485, "nearest_y": 38.4651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04271955778708, 38.465226711027412 ], [ -75.049971684148375, 38.465038214639947 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33236", "slope": 0.0541, "distance": 4.893093624813556e-06, "feature_x": -75.049218861749324, "feature_y": 38.465507108859846, "nearest_x": -75.049219, "nearest_y": 38.465512 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042740829542495, 38.465690213868243 ], [ -75.049973628933174, 38.465485774965984 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33237", "slope": 0.0554, "distance": 7.2904431257011283e-06, "feature_x": -75.04924577805653, "feature_y": 38.46595571293598, "nearest_x": -75.049246, "nearest_y": 38.465963 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042763043341637, 38.466153158796565 ], [ -75.049975574397465, 38.465933485392675 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33238", "slope": 0.0575, "distance": 1.0309937628492269e-05, "feature_x": -75.049287663246105, "feature_y": 38.466403695563542, "nearest_x": -75.049288, "nearest_y": 38.466414 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042785972164239, 38.466616173931406 ], [ -75.04997751969303, 38.466381150725582 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33239", "slope": 0.0308, "distance": 2.6563468349325847e-05, "feature_x": -75.048699068505968, "feature_y": 38.466873452868903, "nearest_x": -75.0487, "nearest_y": 38.4669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042809411090985, 38.4670801110084 ], [ -75.049979463755193, 38.466828525960359 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33239", "slope": 0.0419, "distance": 2.6563468349325847e-05, "feature_x": -75.048699068505968, "feature_y": 38.466873452868903, "nearest_x": -75.0487, "nearest_y": 38.4669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042809411090985, 38.4670801110084 ], [ -75.049979463755193, 38.466828525960359 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33240", "slope": 0.0608, "distance": 1.5927995299048286e-05, "feature_x": -75.049354397254874, "feature_y": 38.467299083413288, "nearest_x": -75.049355, "nearest_y": 38.467315 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04283346029365, 38.46754602474099 ], [ -75.049989455456824, 38.467275034397559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33241", "slope": 0.0517, "distance": 1.8750904394177273e-05, "feature_x": -75.049383229985168, "feature_y": 38.46774626491279, "nearest_x": -75.049384, "nearest_y": 38.467765 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042860264540238, 38.468014359750015 ], [ -75.050052178058451, 38.467718771048787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33242", "slope": 0.0421, "distance": 7.2020661180818227e-06, "feature_x": -75.049100320975811, "feature_y": 38.468207194910072, "nearest_x": -75.0491, "nearest_y": 38.4682 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042891860640339, 38.468484163713214 ], [ -75.050114820706256, 38.468161936543112 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33243", "slope": 0.0477, "distance": 1.0810694425562698e-05, "feature_x": -75.049445480290814, "feature_y": 38.468640201804952, "nearest_x": -75.049446, "nearest_y": 38.468651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.042927959015643, 38.468953885313312 ], [ -75.050177445870531, 38.468604972839621 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33244", "slope": 0.0359, "distance": 1.2006926012183905e-05, "feature_x": -75.049000616817537, "feature_y": 38.469111991072026, "nearest_x": -75.049, "nearest_y": 38.4691 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04296780843535, 38.469422317120483 ], [ -75.05024010334769, 38.469048232216672 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33245", "slope": 0.0554, "distance": 1.6011029966538165e-05, "feature_x": -75.049493130290017, "feature_y": 38.469536012608557, "nearest_x": -75.049494, "nearest_y": 38.469552 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043010667969256, 38.469888656891754 ], [ -75.050302828557349, 38.469491965231036 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33246", "slope": 0.0319, "distance": 1.4044907492660801e-05, "feature_x": -75.049000798172429, "feature_y": 38.470014022209071, "nearest_x": -75.049, "nearest_y": 38.47 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043055813233877, 38.470352422744227 ], [ -75.050365644195693, 38.469936332420204 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33247", "slope": 0.0556, "distance": 2.1130245636822402e-05, "feature_x": -75.049775756188353, "feature_y": 38.470419906394021, "nearest_x": -75.049777, "nearest_y": 38.470441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043102542024144, 38.470813401066849 ], [ -75.050428561448825, 38.470381412890582 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33248", "slope": 0.0321, "distance": 5.3849283385119653e-06, "feature_x": -75.049200325382287, "feature_y": 38.470905375088797, "nearest_x": -75.0492, "nearest_y": 38.4709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043150178992732, 38.471271622146396 ], [ -75.050491580603719, 38.470827208645375 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33249", "slope": 0.0488, "distance": 2.0485695920649789e-05, "feature_x": -75.049615738944212, "feature_y": 38.471331553154876, "nearest_x": -75.049617, "nearest_y": 38.471352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043198079661394, 38.471727361229441 ], [ -75.050554690887068, 38.471273643449138 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33250", "slope": 0.0377, "distance": 2.8887698731591063e-06, "feature_x": -75.049300180136271, "feature_y": 38.471802883147987, "nearest_x": -75.0493, "nearest_y": 38.4718 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043245634399142, 38.472181165244209 ], [ -75.050600023933669, 38.471721670178788 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33250", "slope": 0.0419, "distance": 2.8887698731591063e-06, "feature_x": -75.049300180136271, "feature_y": 38.471802883147987, "nearest_x": -75.0493, "nearest_y": 38.4718 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043245634399142, 38.472181165244209 ], [ -75.050600023933669, 38.471721670178788 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33251", "slope": 0.0538, "distance": 2.0662547563905557e-05, "feature_x": -75.049655698789834, "feature_y": 38.472232378464561, "nearest_x": -75.049657, "nearest_y": 38.472253 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043292273448714, 38.472633907911586 ], [ -75.050625035844604, 38.472171213706474 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33252", "slope": 0.0429, "distance": 3.7231917647093001e-07, "feature_x": -75.049400023667005, "feature_y": 38.472700371566205, "nearest_x": -75.0494, "nearest_y": 38.4727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043338372597901, 38.473086469944796 ], [ -75.050650047723025, 38.472620750971792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33252", "slope": 0.0462, "distance": 3.7231917647093001e-07, "feature_x": -75.049400023667005, "feature_y": 38.472700371566205, "nearest_x": -75.0494, "nearest_y": 38.4727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043338372597901, 38.473086469944796 ], [ -75.050650047723025, 38.472620750971792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33253", "slope": 0.0426, "distance": 1.9755035632918582e-05, "feature_x": -75.049679732689, "feature_y": 38.473134285656094, "nearest_x": -75.049681, "nearest_y": 38.473154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043385603490037, 38.473538895579217 ], [ -75.050675060699177, 38.473070302287319 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33254", "slope": 0.0453, "distance": 2.197998057259519e-06, "feature_x": -75.049499858038629, "feature_y": 38.473597806591137, "nearest_x": -75.0495, "nearest_y": 38.4736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043434472833354, 38.473990369229178 ], [ -75.050700089118621, 38.473520125477229 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33255", "slope": 0.0426, "distance": 1.9237587131240296e-05, "feature_x": -75.049701754569867, "feature_y": 38.474036802769405, "nearest_x": -75.049703, "nearest_y": 38.474056 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043483964533749, 38.474440185068005 ], [ -75.050725143517582, 38.473970409889667 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33256", "slope": 0.0493, "distance": 2.0769030890984858e-06, "feature_x": -75.049500134128223, "feature_y": 38.474502072567503, "nearest_x": -75.0495, "nearest_y": 38.4745 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043533108049843, 38.474888234471749 ], [ -75.050750224798932, 38.474421171732224 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33257", "slope": 0.0502, "distance": 1.7937125593447617e-05, "feature_x": -75.049751848702073, "feature_y": 38.47493809986068, "nearest_x": -75.049753, "nearest_y": 38.474956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043580996524113, 38.47533499561618 ], [ -75.050775325233502, 38.474872272082038 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33258", "slope": 0.0445, "distance": 1.0709753938423713e-07, "feature_x": -75.049600006820839, "feature_y": 38.475400106880116, "nearest_x": -75.0496, "nearest_y": 38.4754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043627450625237, 38.475781261305784 ], [ -75.050800433002181, 38.475323498517348 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33259", "slope": 0.045, "distance": 1.7644344446261185e-05, "feature_x": -75.049819885265691, "feature_y": 38.475838390904102, "nearest_x": -75.049821, "nearest_y": 38.475856 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043673305892113, 38.476227496790955 ], [ -75.050825541280688, 38.475774728393326 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33260", "slope": 0.0471, "distance": 1.7942531581639284e-06, "feature_x": -75.049699887588687, "feature_y": 38.476298209271633, "nearest_x": -75.0497, "nearest_y": 38.4763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043719068225897, 38.476673649651723 ], [ -75.050850650596729, 38.476225971192711 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33261", "slope": 0.044, "distance": 1.3647356414539178e-05, "feature_x": -75.049684152868565, "feature_y": 38.476751378960927, "nearest_x": -75.049685, "nearest_y": 38.476765 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043764598068506, 38.477119533027299 ], [ -75.050875763308539, 38.476677269294939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33262", "slope": 0.0527, "distance": 3.5990976675438037e-06, "feature_x": -75.049799778933021, "feature_y": 38.477196407698038, "nearest_x": -75.0498, "nearest_y": 38.4772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043809762783738, 38.477565027813014 ], [ -75.050878997309681, 38.47712999358626 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33263", "slope": 0.0567, "distance": 1.4243951860373205e-05, "feature_x": -75.049780135551174, "feature_y": 38.47764978230353, "nearest_x": -75.049781, "nearest_y": 38.477664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043854435812278, 38.478010070214097 ], [ -75.050877168594383, 38.477583081701006 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33264", "slope": 0.0526, "distance": 5.2857396012496029e-06, "feature_x": -75.049899683556532, "feature_y": 38.478094723741222, "nearest_x": -75.0499, "nearest_y": 38.4781 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04389849578574, 38.478454644793089 ], [ -75.050875339701875, 38.478036208793931 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33265", "slope": 0.0554, "distance": 1.6270288883116042e-05, "feature_x": -75.050054040650039, "feature_y": 38.478537758018966, "nearest_x": -75.050055, "nearest_y": 38.478554 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.043941826076107, 38.478898782504935 ], [ -75.050873510711796, 38.478489355143999 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33266", "slope": 0.0523, "distance": 1.0629546828439607e-06, "feature_x": -75.04989993835936, "feature_y": 38.478998938834089, "nearest_x": -75.0499, "nearest_y": 38.479 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04398431471553, 38.479342563517207 ], [ -75.050871681737959, 38.478942492543617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33267", "slope": 0.0523, "distance": 3.3753751372709081e-05, "feature_x": -75.050201922968569, "feature_y": 38.479433698930599, "nearest_x": -75.0502, "nearest_y": 38.4794 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044025854674558, 38.479786125103971 ], [ -75.050869852926823, 38.479395584714879 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33268", "slope": 0.0392, "distance": 2.8194471578488396e-06, "feature_x": -75.049900157722305, "feature_y": 38.47990281503214, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044066344544859, 38.480229675419828 ], [ -75.050868024459348, 38.479848586813432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33268", "slope": 0.0404, "distance": 2.8194471578488396e-06, "feature_x": -75.049900157722305, "feature_y": 38.47990281503214, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044066344544859, 38.480229675419828 ], [ -75.050868024459348, 38.479848586813432 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33269", "slope": 0.0532, "distance": 1.4749534190912637e-05, "feature_x": -75.050215189472723, "feature_y": 38.480337272752998, "nearest_x": -75.050216, "nearest_y": 38.480352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044105689755, 38.480673514561822 ], [ -75.050866196556981, 38.480301443992921 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33270", "slope": 0.035, "distance": 9.2757781115559053e-07, "feature_x": -75.050000050127665, "feature_y": 38.480800926222336, "nearest_x": -75.05, "nearest_y": 38.4808 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044144322385392, 38.481117841488995 ], [ -75.050864369249851, 38.480754148787128 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33271", "slope": 0.0505, "distance": 1.4381360963024688e-05, "feature_x": -75.05032023543599, "feature_y": 38.481235638976884, "nearest_x": -75.050321, "nearest_y": 38.48125 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044183090231186, 38.481562373378985 ], [ -75.05180852393282, 38.481156404245439 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33272", "slope": 0.0398, "distance": 5.9912990096278494e-06, "feature_x": -75.050199687301244, "feature_y": 38.481694016866761, "nearest_x": -75.0502, "nearest_y": 38.4817 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044222120127259, 38.482006424724766 ], [ -75.0519388740408, 38.481603121091247 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33273", "slope": 0.0488, "distance": 1.3434168704343012e-05, "feature_x": -75.050442314606741, "feature_y": 38.482133583326608, "nearest_x": -75.050443, "nearest_y": 38.482147 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044260938002324, 38.482449360104596 ], [ -75.051972701350934, 38.482055403234035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33274", "slope": 0.0324, "distance": 2.1030487707960349e-06, "feature_x": -75.050199895750424, "feature_y": 38.482597899536678, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044299093264783, 38.482890766427154 ], [ -75.05200656991596, 38.482508231216777 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33274", "slope": 0.0395, "distance": 2.1030487707960349e-06, "feature_x": -75.050199895750424, "feature_y": 38.482597899536678, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044299093264783, 38.482890766427154 ], [ -75.05200656991596, 38.482508231216777 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33275", "slope": 0.0462, "distance": 4.4941886198622781e-05, "feature_x": -75.050302148363429, "feature_y": 38.483044890507564, "nearest_x": -75.0503, "nearest_y": 38.483 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044336154902865, 38.483330410161983 ], [ -75.05116728509779, 38.483003486918534 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33276", "slope": 0.0522, "distance": 7.6174730557820398e-06, "feature_x": -75.050399651808974, "feature_y": 38.483492390488927, "nearest_x": -75.0504, "nearest_y": 38.4835 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044371708656598, 38.483768213166854 ], [ -75.051239471919558, 38.483453962549909 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33276", "slope": 0.0464, "distance": 7.6174730557820398e-06, "feature_x": -75.050399651808974, "feature_y": 38.483492390488927, "nearest_x": -75.0504, "nearest_y": 38.4835 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044371708656598, 38.483768213166854 ], [ -75.051239471919558, 38.483453962549909 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33277", "slope": 0.0573, "distance": 9.0413291299707771e-06, "feature_x": -75.050572608532761, "feature_y": 38.483936967149631, "nearest_x": -75.050573, "nearest_y": 38.483946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044405354636552, 38.484204244669982 ], [ -75.051311739202617, 38.483904934576309 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33278", "slope": 0.0389, "distance": 4.4773425400430984e-07, "feature_x": -75.050300018180607, "feature_y": 38.484400447364983, "nearest_x": -75.0503, "nearest_y": 38.4844 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04443670496218, 38.484638728555808 ], [ -75.051384085123189, 38.484356391597807 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33279", "slope": 0.0564, "distance": 6.676210057252177e-06, "feature_x": -75.050633748279637, "feature_y": 38.48483932853707, "nearest_x": -75.050634, "nearest_y": 38.484846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044465381132653, 38.485072066638772 ], [ -75.051456501940635, 38.484808285293262 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33280", "slope": 0.0339, "distance": 2.8654040783619481e-07, "feature_x": -75.050399990056974, "feature_y": 38.485299713632159, "nearest_x": -75.0504, "nearest_y": 38.4853 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044491010995245, 38.485504880217732 ], [ -75.051528973369884, 38.485260514026088 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33281", "slope": 0.0384, "distance": 2.1107530786102398e-06, "feature_x": -75.050877932985713, "feature_y": 38.485735890311005, "nearest_x": -75.050878, "nearest_y": 38.485738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044513262761129, 38.485938064103308 ], [ -75.051601472055779, 38.485712907087603 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33282", "slope": 0.0399, "distance": 3.0865239525682945e-07, "feature_x": -75.050950008960456, "feature_y": 38.486186308522299, "nearest_x": -75.05095, "nearest_y": 38.486186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044532279423237, 38.48637269952733 ], [ -75.051673968828695, 38.486165282455893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33283", "slope": 0.0438, "distance": 3.2367685659882213e-06, "feature_x": -75.050723913574728, "feature_y": 38.486644764385467, "nearest_x": -75.050724, "nearest_y": 38.486648 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044548686228794, 38.486809708555462 ], [ -75.051746433576824, 38.486617452239109 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33284", "slope": 0.0392, "distance": 4.8318658494915285e-07, "feature_x": -75.050599987984072, "feature_y": 38.487099516962843, "nearest_x": -75.0506, "nearest_y": 38.4871 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044563104126794, 38.487249689162674 ], [ -75.051818831177172, 38.487069197286687 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33285", "slope": 0.0471, "distance": 8.8241414525547104e-07, "feature_x": -75.050797979169431, "feature_y": 38.487546117831755, "nearest_x": -75.050798, "nearest_y": 38.487547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044576102669936, 38.48769303455569 ], [ -75.051849387885568, 38.487521290993087 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33286", "slope": 0.0437, "distance": 4.0378479330259056e-07, "feature_x": -75.050699990726017, "feature_y": 38.487999596321721, "nearest_x": -75.0507, "nearest_y": 38.488 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044588251362896, 38.488140005674452 ], [ -75.051873655012059, 38.487972632893971 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33287", "slope": 0.0363, "distance": 6.2740607338000855e-07, "feature_x": -75.050869014421579, "feature_y": 38.488446627240307, "nearest_x": -75.050869, "nearest_y": 38.488446 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044600124971424, 38.488590762155695 ], [ -75.051897868514047, 38.48842297172704 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33288", "slope": 0.0362, "distance": 3.233161287546604e-07, "feature_x": -75.050889992343429, "feature_y": 38.488896676774544, "nearest_x": -75.05089, "nearest_y": 38.488897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04461230681801, 38.489045382689135 ], [ -75.051922024222193, 38.488872229986981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33289", "slope": 0.0392, "distance": 9.0049187477601956e-07, "feature_x": -75.050918977432218, "feature_y": 38.489346099790964, "nearest_x": -75.050919, "nearest_y": 38.489347 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044625390468326, 38.489503876779942 ], [ -75.051946119026709, 38.489320349879357 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33290", "slope": 0.0407, "distance": 9.5274320326342451e-07, "feature_x": -75.050799974158352, "feature_y": 38.48979904760732, "nearest_x": -75.0508, "nearest_y": 38.4898 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044639980030297, 38.48996618909694 ], [ -75.051970151061838, 38.489767296747381 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33291", "slope": 0.0469, "distance": 3.5307349034946481e-07, "feature_x": -75.051170989460147, "feature_y": 38.490237647083859, "nearest_x": -75.051171, "nearest_y": 38.490238 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044656689097579, 38.490432196864276 ], [ -75.051994119985068, 38.490213064265447 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33292", "slope": 0.036, "distance": 1.4871223410624392e-06, "feature_x": -75.050700049399481, "feature_y": 38.490701486301631, "nearest_x": -75.0507, "nearest_y": 38.4907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044676138171553, 38.490901700083285 ], [ -75.052018027347032, 38.490657681315298 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33292", "slope": 0.0386, "distance": 1.4871223410624392e-06, "feature_x": -75.050700049399481, "feature_y": 38.490701486301631, "nearest_x": -75.0507, "nearest_y": 38.4907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044676138171553, 38.490901700083285 ], [ -75.052018027347032, 38.490657681315298 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33293", "slope": 0.0618, "distance": 6.5871964091723172e-06, "feature_x": -75.051258755412391, "feature_y": 38.491130417346021, "nearest_x": -75.051259, "nearest_y": 38.491137 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044699601822089, 38.491374131762953 ], [ -75.052041882355709, 38.4911013191821 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33294", "slope": 0.0363, "distance": 1.0276891940376992e-06, "feature_x": -75.050700042423387, "feature_y": 38.491601026813193, "nearest_x": -75.0507, "nearest_y": 38.4916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044729643129244, 38.491847697293153 ], [ -75.052065718630303, 38.491544603115408 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33295", "slope": 0.0519, "distance": 1.3089932368077568e-05, "feature_x": -75.051372409080244, "feature_y": 38.492020923412397, "nearest_x": -75.051373, "nearest_y": 38.492034 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044766838040971, 38.492319423492418 ], [ -75.052089588951233, 38.491988514670197 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33296", "slope": 0.0342, "distance": 2.1124359609167568e-06, "feature_x": -75.050700101924093, "feature_y": 38.492502109975632, "nearest_x": -75.0507, "nearest_y": 38.4925 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044808993879812, 38.492786684750349 ], [ -75.052113535213962, 38.492433832928768 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33297", "slope": 0.0542, "distance": 1.808184285528017e-05, "feature_x": -75.051400910236296, "feature_y": 38.492918058917766, "nearest_x": -75.0514, "nearest_y": 38.4929 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044853814051478, 38.493248056796304 ], [ -75.052137577332857, 38.49288092816969 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33298", "slope": 0.0282, "distance": 1.7309216820946259e-07, "feature_x": -75.050799991112186, "feature_y": 38.493399827136166, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044899098112722, 38.493703222116096 ], [ -75.052161716038825, 38.493329813918365 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33298", "slope": 0.0322, "distance": 1.7309216820946259e-07, "feature_x": -75.050799991112186, "feature_y": 38.493399827136166, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044899098112722, 38.493703222116096 ], [ -75.052161716038825, 38.493329813918365 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33299", "slope": 0.0286, "distance": 1.6583821342339404e-05, "feature_x": -75.05119014772697, "feature_y": 38.493831438093075, "nearest_x": -75.051191, "nearest_y": 38.493848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.044942762933843, 38.494152927494575 ], [ -75.052197079818015, 38.493779621532063 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33300", "slope": 0.0305, "distance": 1.8739699880210345e-06, "feature_x": -75.050899904820298, "feature_y": 38.494298128448683, "nearest_x": -75.0509, "nearest_y": 38.4943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04498286616986, 38.494599045622607 ], [ -75.052235246287765, 38.494230218265166 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33300", "slope": 0.0334, "distance": 1.8739699880210345e-06, "feature_x": -75.050899904820298, "feature_y": 38.494298128448683, "nearest_x": -75.0509, "nearest_y": 38.4943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04498286616986, 38.494599045622607 ], [ -75.052235246287765, 38.494230218265166 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33301", "slope": 0.031, "distance": 1.6189949624947681e-05, "feature_x": -75.051299190698487, "feature_y": 38.494729830290666, "nearest_x": -75.0513, "nearest_y": 38.494746 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04501895874958, 38.495044158834197 ], [ -75.052273434748372, 38.494681068920748 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33302", "slope": 0.0423, "distance": 3.5265420675179143e-06, "feature_x": -75.050999825904427, "feature_y": 38.495196477757858, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045052473116542, 38.495490440465055 ], [ -75.05231160001577, 38.495131640059007 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33302", "slope": 0.0336, "distance": 3.5265420675179143e-06, "feature_x": -75.050999825904427, "feature_y": 38.495196477757858, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045052473116542, 38.495490440465055 ], [ -75.05231160001577, 38.495131640059007 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33303", "slope": 0.0524, "distance": 1.5458594621463918e-05, "feature_x": -75.05137524023317, "feature_y": 38.495629560087373, "nearest_x": -75.051376, "nearest_y": 38.495645 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045084824719581, 38.495939098695736 ], [ -75.052349714686173, 38.495581608172998 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33304", "slope": 0.0415, "distance": 5.1390880799913724e-07, "feature_x": -75.050999974593097, "feature_y": 38.496099486719615, "nearest_x": -75.051, "nearest_y": 38.4961 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04511692995824, 38.496390692031696 ], [ -75.052387763441132, 38.496030792444849 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33305", "slope": 0.0402, "distance": 1.6385947936351318e-05, "feature_x": -75.051422176222133, "feature_y": 38.496529634772237, "nearest_x": -75.051423, "nearest_y": 38.496546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045149679710292, 38.496845373965414 ], [ -75.052425739961009, 38.496479118298517 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33306", "slope": 0.0381, "distance": 2.8896758474969502e-06, "feature_x": -75.051099850828592, "feature_y": 38.496997114176999, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045183941792175, 38.497302914107642 ], [ -75.052463646979135, 38.496926618034195 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33306", "slope": 0.0339, "distance": 2.8896758474969502e-06, "feature_x": -75.051099850828592, "feature_y": 38.496997114176999, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045183941792175, 38.497302914107642 ], [ -75.052463646979135, 38.496926618034195 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33307", "slope": 0.0367, "distance": 1.7998707321301237e-05, "feature_x": -75.051443039165974, "feature_y": 38.497430026957318, "nearest_x": -75.051444, "nearest_y": 38.497448 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045220557158615, 38.497762679172574 ], [ -75.05250149723517, 38.497373442073496 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33308", "slope": 0.0313, "distance": 2.7339921778698145e-07, "feature_x": -75.051099984866241, "feature_y": 38.497899727019963, "nearest_x": -75.0511, "nearest_y": 38.4979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045260611474816, 38.49822345653822 ], [ -75.052539319630455, 38.497819931617514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33308", "slope": 0.0392, "distance": 2.7339921778698145e-07, "feature_x": -75.051099984866241, "feature_y": 38.497899727019963, "nearest_x": -75.0511, "nearest_y": 38.4979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045260611474816, 38.49822345653822 ], [ -75.052539319630455, 38.497819931617514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33309", "slope": 0.0588, "distance": 1.1145071398850683e-05, "feature_x": -75.051800637757395, "feature_y": 38.498311126809156, "nearest_x": -75.0518, "nearest_y": 38.4983 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045304607246251, 38.498683461004767 ], [ -75.052577159240641, 38.498266618782083 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33310", "slope": 0.0368, "distance": 2.8096626871874982e-06, "feature_x": -75.051199835149049, "feature_y": 38.498797195177623, "nearest_x": -75.0512, "nearest_y": 38.4988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04535167132444, 38.499140915827404 ], [ -75.05261505952862, 38.498714016618003 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33310", "slope": 0.0375, "distance": 2.8096626871874982e-06, "feature_x": -75.051199835149049, "feature_y": 38.498797195177623, "nearest_x": -75.0512, "nearest_y": 38.4988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04535167132444, 38.499140915827404 ], [ -75.05261505952862, 38.498714016618003 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33311", "slope": 0.0829, "distance": 7.3113255861307193e-06, "feature_x": -75.051900434862873, "feature_y": 38.499207298381748, "nearest_x": -75.0519, "nearest_y": 38.4992 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045400427434856, 38.499594591347353 ], [ -75.05265304844653, 38.49916245505657 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33312", "slope": 0.0327, "distance": 9.8924894242667429e-07, "feature_x": -75.051200058882046, "feature_y": 38.499700987494997, "nearest_x": -75.0512, "nearest_y": 38.4997 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045449561530887, 38.500043876431299 ], [ -75.052691138177039, 38.499612077864718 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33313", "slope": 0.0307, "distance": 2.1244836437282032e-05, "feature_x": -75.051745751134476, "feature_y": 38.500120791902248, "nearest_x": -75.051747, "nearest_y": 38.500142 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045497826252259, 38.500488708824726 ], [ -75.052729639927577, 38.500062854372004 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33314", "slope": 0.0395, "distance": 1.0199387760160403e-06, "feature_x": -75.051299941517755, "feature_y": 38.500598981739259, "nearest_x": -75.0513, "nearest_y": 38.5006 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04554404137555, 38.500929563028329 ], [ -75.052768774877805, 38.500514621549961 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33315", "slope": 0.049, "distance": 1.7441935663736934e-05, "feature_x": -75.05190096560294, "feature_y": 38.50101741518678, "nearest_x": -75.0519, "nearest_y": 38.501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045587089782785, 38.501367494524771 ], [ -75.052807974120597, 38.50096712516676 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33316", "slope": 0.0308, "distance": 3.0522668924845864e-06, "feature_x": -75.051399837793184, "feature_y": 38.501496952046239, "nearest_x": -75.0514, "nearest_y": 38.5015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045625946546963, 38.501804228530993 ], [ -75.052847199605438, 38.501419925959169 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33316", "slope": 0.0386, "distance": 3.0522668924845864e-06, "feature_x": -75.051399837793184, "feature_y": 38.501496952046239, "nearest_x": -75.0514, "nearest_y": 38.5015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045625946546963, 38.501804228530993 ], [ -75.052847199605438, 38.501419925959169 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33317", "slope": 0.0711, "distance": 1.2792168716765121e-05, "feature_x": -75.052100652018297, "feature_y": 38.501912775541186, "nearest_x": -75.0521, "nearest_y": 38.5019 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045661721827457, 38.502241395696807 ], [ -75.052886420905082, 38.501872672684627 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33318", "slope": 0.0327, "distance": 4.8321041704736883e-06, "feature_x": -75.051499763738008, "feature_y": 38.502395173675211, "nearest_x": -75.0515, "nearest_y": 38.5024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045696844035774, 38.502679242704744 ], [ -75.052925638694632, 38.502325373137559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33319", "slope": 0.06, "distance": 1.5076586750325343e-05, "feature_x": -75.052245294908801, "feature_y": 38.502811939909883, "nearest_x": -75.052246, "nearest_y": 38.502827 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045731812437197, 38.503116891550633 ], [ -75.052964872296414, 38.502778250358105 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33320", "slope": 0.0298, "distance": 1.5916206956949596e-06, "feature_x": -75.051499929272566, "feature_y": 38.503298409951555, "nearest_x": -75.0515, "nearest_y": 38.5033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045765973294152, 38.503553463837243 ], [ -75.05300413872547, 38.50323150074135 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33321", "slope": 0.0437, "distance": 1.1689112920545484e-05, "feature_x": -75.052109511218802, "feature_y": 38.503724321110766, "nearest_x": -75.05211, "nearest_y": 38.503736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04579871100502, 38.503988438731909 ], [ -75.053043447514241, 38.50368523430334 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33322", "slope": 0.0282, "distance": 2.8362838516426107e-06, "feature_x": -75.051599889769335, "feature_y": 38.504197165858983, "nearest_x": -75.0516, "nearest_y": 38.5042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045829439853918, 38.50442160088982 ], [ -75.053082802012284, 38.504139489688171 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33323", "slope": 0.0823, "distance": 3.8727419949577527e-06, "feature_x": -75.052563862132786, "feature_y": 38.504614129712778, "nearest_x": -75.052564, "nearest_y": 38.504618 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045857597275273, 38.504853020019688 ], [ -75.053122199945349, 38.504594240624854 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33324", "slope": 0.0411, "distance": 4.9221372833627339e-06, "feature_x": -75.052236842073299, "feature_y": 38.505079080396904, "nearest_x": -75.052237, "nearest_y": 38.505084 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045882637121395, 38.505283059989686 ], [ -75.053161633178874, 38.505049393203215 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33325", "slope": 0.0643, "distance": 1.1204198383363751e-06, "feature_x": -75.052486031869876, "feature_y": 38.505525119966485, "nearest_x": -75.052486, "nearest_y": 38.505524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045904022141343, 38.505712418261226 ], [ -75.053201086541961, 38.505504772302743 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33326", "slope": 0.0394, "distance": 4.5535754333129857e-07, "feature_x": -75.052297988674169, "feature_y": 38.505983544783327, "nearest_x": -75.052298, "nearest_y": 38.505984 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04592121562932, 38.506142199457805 ], [ -75.053240368178535, 38.505960098298331 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33327", "slope": 0.0446, "distance": 1.4370768278887291e-06, "feature_x": -75.052335031057893, "feature_y": 38.506435436741178, "nearest_x": -75.052335, "nearest_y": 38.506434 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0459342562405, 38.506573801677547 ], [ -75.053259864243245, 38.506415444710761 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33328", "slope": 0.0246, "distance": 1.6980167488928067e-06, "feature_x": -75.051600031974473, "feature_y": 38.506901697715676, "nearest_x": -75.0516, "nearest_y": 38.5069 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045944684304914, 38.507008209542946 ], [ -75.053279329687371, 38.50687007011674 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33329", "slope": 0.0315, "distance": 3.4841036280673923e-06, "feature_x": -75.052363057619814, "feature_y": 38.507339483627142, "nearest_x": -75.052363, "nearest_y": 38.507336 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045953861729757, 38.507445492862907 ], [ -75.053298765894027, 38.507324006846474 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33330", "slope": 0.0287, "distance": 2.557075410415634e-06, "feature_x": -75.051600037530889, "feature_y": 38.507802556799973, "nearest_x": -75.0516, "nearest_y": 38.5078 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045962006527859, 38.507885316649777 ], [ -75.053318176355418, 38.507777336486178 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33331", "slope": 0.0403, "distance": 7.0743997465206264e-06, "feature_x": -75.052432093403922, "feature_y": 38.508242073783109, "nearest_x": -75.052432, "nearest_y": 38.508235 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045969300743451, 38.508327410042803 ], [ -75.053337563584122, 38.508230117738329 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33332", "slope": 0.0386, "distance": 4.8241039214486448e-06, "feature_x": -75.051500058274939, "feature_y": 38.508704823751927, "nearest_x": -75.0515, "nearest_y": 38.5087 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045975934544714, 38.508771559754585 ], [ -75.053356929317872, 38.508682391207522 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33333", "slope": 0.0384, "distance": 4.4631362241604917e-05, "feature_x": -75.051499496737534, "feature_y": 38.509155371475238, "nearest_x": -75.0515, "nearest_y": 38.5092 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045982103930598, 38.509217589457499 ], [ -75.052688069848614, 38.509141968293093 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33334", "slope": 0.0354, "distance": 5.9658875706430745e-06, "feature_x": -75.051500064262427, "feature_y": 38.509605965541454, "nearest_x": -75.0515, "nearest_y": 38.5096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045988009186843, 38.509665342883821 ], [ -75.052707806773512, 38.509592955413723 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33335", "slope": 0.102, "distance": 8.9983727893638392e-06, "feature_x": -75.052509094838157, "feature_y": 38.510045997873, "nearest_x": -75.052509, "nearest_y": 38.510037 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045993853767442, 38.510114668927997 ], [ -75.052727533139034, 38.510043695519421 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33336", "slope": 0.0534, "distance": 1.0264310899836717e-06, "feature_x": -75.052100010832291, "feature_y": 38.51050102637393, "nearest_x": -75.0521, "nearest_y": 38.5105 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.045999843378993, 38.510565407232704 ], [ -75.052747249244248, 38.510494195452466 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33337", "slope": 0.0326, "distance": 4.1867359659559056e-05, "feature_x": -75.051499548549387, "feature_y": 38.510958135074382, "nearest_x": -75.0515, "nearest_y": 38.511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046006185103082, 38.511017372784565 ], [ -75.052766955647655, 38.510944467984068 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33338", "slope": 0.0656, "distance": 1.1008721665271069e-06, "feature_x": -75.052200012318949, "feature_y": 38.511401100803241, "nearest_x": -75.0522, "nearest_y": 38.5114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046013086422519, 38.511470337940636 ], [ -75.052786653340661, 38.511394535774713 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33339", "slope": 0.1023, "distance": 7.2541977426817552e-06, "feature_x": -75.05256608506329, "feature_y": 38.511847253698996, "nearest_x": -75.052566, "nearest_y": 38.51184 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046020754039134, 38.511924010044773 ], [ -75.052806343959219, 38.511844436210495 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33340", "slope": 0.0781, "distance": 1.9477493825579865e-06, "feature_x": -75.052200024031919, "feature_y": 38.512301947601124, "nearest_x": -75.0522, "nearest_y": 38.5123 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046029205287226, 38.512378090820448 ], [ -75.052826029860967, 38.512294223164368 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33341", "slope": 0.0303, "distance": 3.854731053556724e-05, "feature_x": -75.051499498359817, "feature_y": 38.51276145595368, "nearest_x": -75.0515, "nearest_y": 38.5128 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046037976397074, 38.512832536164382 ], [ -75.052845712739796, 38.512743935342677 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33342", "slope": 0.0762, "distance": 2.7175751472990456e-06, "feature_x": -75.052200037498224, "feature_y": 38.513202717316425, "nearest_x": -75.0522, "nearest_y": 38.5132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046046785801011, 38.513287630519166 ], [ -75.052865390970609, 38.513193535619159 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33343", "slope": 0.0288, "distance": 3.6615971338805566e-05, "feature_x": -75.051499459693602, "feature_y": 38.513663388015267, "nearest_x": -75.0515, "nearest_y": 38.5137 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046055852422583, 38.513743722798175 ], [ -75.052885060868832, 38.513642939815377 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33344", "slope": 0.0555, "distance": 4.9008952249893408e-06, "feature_x": -75.052100078103024, "feature_y": 38.514104900272841, "nearest_x": -75.0521, "nearest_y": 38.5141 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046065421646787, 38.514201083678834 ], [ -75.052904719263637, 38.514092075495157 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33345", "slope": 0.0312, "distance": 3.4355035969901976e-05, "feature_x": -75.051499402917386, "feature_y": 38.514565650153003, "nearest_x": -75.0515, "nearest_y": 38.5146 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046075740644369, 38.514659926393371 ], [ -75.052924363452561, 38.51454088092602 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33346", "slope": 0.0466, "distance": 5.4408286662344215e-06, "feature_x": -75.052100104028597, "feature_y": 38.515005439834063, "nearest_x": -75.0521, "nearest_y": 38.515 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04608705943383, 38.515120430218658 ], [ -75.052943991056651, 38.514989301770825 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33347", "slope": 0.1111, "distance": 2.6788944805067817e-06, "feature_x": -75.052678943237567, "feature_y": 38.515443321706947, "nearest_x": -75.052679, "nearest_y": 38.515446 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046099632046051, 38.515582760402332 ], [ -75.052947226279088, 38.515437635847711 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33348", "slope": 0.0307, "distance": 1.5105505231696666e-05, "feature_x": -75.051700356770496, "feature_y": 38.515915101291441, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046113717948487, 38.51604708655443 ], [ -75.052947733990422, 38.515885631799023 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33348", "slope": 0.0307, "distance": 1.5105505231696666e-05, "feature_x": -75.051700356770496, "feature_y": 38.515915101291441, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046113717948487, 38.51604708655443 ], [ -75.052947733990422, 38.515885631799023 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33349", "slope": 0.1008, "distance": 7.0111147222300765e-06, "feature_x": -75.052732815047307, "feature_y": 38.51633899132522, "nearest_x": -75.052733, "nearest_y": 38.516346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046130505508145, 38.516513220403994 ], [ -75.052948241347096, 38.516333306416698 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33350", "slope": 0.073, "distance": 2.9702158001036795e-06, "feature_x": -75.052399913070971, "feature_y": 38.516797031056548, "nearest_x": -75.0524, "nearest_y": 38.5168 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046151777041601, 38.516979973039547 ], [ -75.052948748691136, 38.516780961451751 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33351", "slope": 0.096, "distance": 1.2278875854915821e-05, "feature_x": -75.05280160772304, "feature_y": 38.51723372739184, "nearest_x": -75.052802, "nearest_y": 38.517246 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046177606876128, 38.517445454422294 ], [ -75.052949256488461, 38.517229008003156 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33352", "slope": 0.0742, "distance": 6.8967492579864722e-06, "feature_x": -75.052499764542077, "feature_y": 38.517693107271228, "nearest_x": -75.0525, "nearest_y": 38.5177 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046206697891378, 38.517908080526041 ], [ -75.052949765066657, 38.517677735103284 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33353", "slope": 0.1241, "distance": 0.00010587249573526335, "feature_x": -75.052868222057114, "feature_y": 38.518130194931594, "nearest_x": -75.052872, "nearest_y": 38.518236 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046237772124371, 38.518366945981995 ], [ -75.052950274564466, 38.518127265112724 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33354", "slope": 0.0494, "distance": 2.2844382853359917e-06, "feature_x": -75.05239991657912, "feature_y": 38.518597717085363, "nearest_x": -75.0524, "nearest_y": 38.5186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046269586722815, 38.518821727895364 ], [ -75.052950784970108, 38.518577587585426 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33355", "slope": 0.1268, "distance": 1.6121542553131247e-05, "feature_x": -75.052915408715918, "feature_y": 38.519029889304257, "nearest_x": -75.052916, "nearest_y": 38.519046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046300942609918, 38.519272649053114 ], [ -75.053466603880523, 38.519009659704835 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33356", "slope": 0.0497, "distance": 8.9132109070035379e-05, "feature_x": -75.052703234776857, "feature_y": 38.519489073391568, "nearest_x": -75.0527, "nearest_y": 38.5194 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046330687278711, 38.519720497937193 ], [ -75.053496248581027, 38.519460274412921 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33357", "slope": 0.0243, "distance": 2.0520756230371228e-05, "feature_x": -75.052454269328081, "feature_y": 38.519949492256224, "nearest_x": -75.052455, "nearest_y": 38.51997 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046357777425584, 38.520166704616983 ], [ -75.053525921365107, 38.51991131028656 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33358", "slope": 0.0387, "distance": 7.6443588398753284e-06, "feature_x": -75.052699732917446, "feature_y": 38.520392360308321, "nearest_x": -75.0527, "nearest_y": 38.5204 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046381930548577, 38.520613229801498 ], [ -75.053555600652643, 38.520362439291191 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33359", "slope": 0.123, "distance": 1.3874882804602762e-05, "feature_x": -75.052983519977843, "feature_y": 38.520834133423222, "nearest_x": -75.052984, "nearest_y": 38.520848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046403810414574, 38.521061904584641 ], [ -75.053585262847577, 38.520813302766335 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33360", "slope": 0.1023, "distance": 7.6096011759184905e-05, "feature_x": -75.052995649920092, "feature_y": 38.521285049858179, "nearest_x": -75.052993, "nearest_y": 38.521209 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046424329897121, 38.521514024289047 ], [ -75.053614879815925, 38.521263473095445 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33361", "slope": 0.0545, "distance": 1.500397468642528e-05, "feature_x": -75.052990462812403, "feature_y": 38.521736005644868, "nearest_x": -75.052991, "nearest_y": 38.521751 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046444378894449, 38.521970525577949 ], [ -75.053644426979631, 38.521712576731545 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33362", "slope": 0.057, "distance": 1.0521606343767496e-05, "feature_x": -75.052899603545669, "feature_y": 38.522189485865511, "nearest_x": -75.0529, "nearest_y": 38.5222 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046464853810392, 38.522432119662483 ], [ -75.053673883058096, 38.522160290265724 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33363", "slope": 0.053, "distance": 1.8254008159243207e-05, "feature_x": -75.053052259348732, "feature_y": 38.522632761023893, "nearest_x": -75.053053, "nearest_y": 38.522651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046486672199606, 38.522899377441618 ], [ -75.053703229141462, 38.522606326337971 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33364", "slope": 0.117, "distance": 6.8481916549089619e-05, "feature_x": -75.05308305397962, "feature_y": 38.523079413785908, "nearest_x": -75.05308, "nearest_y": 38.523011 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046510786234194, 38.523372798686637 ], [ -75.053732448118765, 38.523050424943328 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33365", "slope": 0.0532, "distance": 2.6300667453782486e-05, "feature_x": -75.053112688937645, "feature_y": 38.523524732030452, "nearest_x": -75.053114, "nearest_y": 38.523551 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046538196656698, 38.523852871943717 ], [ -75.053764318038191, 38.523492208527891 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33366", "slope": 0.0517, "distance": 2.3394310713343245e-05, "feature_x": -75.052998679364052, "feature_y": 38.523976642994747, "nearest_x": -75.053, "nearest_y": 38.524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046569969378865, 38.524340130751945 ], [ -75.053806909520731, 38.523930944593729 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33367", "slope": 0.0642, "distance": 2.1737637061158768e-05, "feature_x": -75.053001402874145, "feature_y": 38.524421692321432, "nearest_x": -75.053, "nearest_y": 38.5244 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046607257535342, 38.524835211049485 ], [ -75.053849227917198, 38.524366862236278 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33368", "slope": 0.0658, "distance": 3.5302188405996582e-05, "feature_x": -75.053409609748414, "feature_y": 38.524836205592159, "nearest_x": -75.053407, "nearest_y": 38.524801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04665599429606, 38.525336843020568 ], [ -75.053891325170241, 38.52480049660462 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33369", "slope": 0.0701, "distance": 2.3951922050770403e-05, "feature_x": -75.05347400042676, "feature_y": 38.525272868239625, "nearest_x": -75.053472, "nearest_y": 38.525249 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046724838873899, 38.525838523838054 ], [ -75.053933445325242, 38.525234361592993 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33370", "slope": 0.0719, "distance": 1.4506129535203134e-05, "feature_x": -75.053533328275719, "feature_y": 38.525712445188738, "nearest_x": -75.053532, "nearest_y": 38.525698 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046812684607701, 38.526330427265201 ], [ -75.053975907935978, 38.525671748744919 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33371", "slope": 0.083, "distance": 1.5499419883674229e-05, "feature_x": -75.053298502004125, "feature_y": 38.526184573139496, "nearest_x": -75.0533, "nearest_y": 38.5262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.046910829359888, 38.526804835910696 ], [ -75.054018903481577, 38.526114619927789 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33372", "slope": 0.0283, "distance": 2.2023733817969476e-05, "feature_x": -75.052897840739561, "feature_y": 38.526678082371348, "nearest_x": -75.0529, "nearest_y": 38.5267 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047011106834134, 38.527258026113387 ], [ -75.054062468055477, 38.526563346707306 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33373", "slope": 0.0919, "distance": 1.2767872487076825e-05, "feature_x": -75.053684221200641, "feature_y": 38.527057709336603, "nearest_x": -75.053683, "nearest_y": 38.527045 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04710619209088, 38.527689771698213 ], [ -75.054106524249363, 38.527017131549876 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33374", "slope": 0.0761, "distance": 1.8827647707393465e-05, "feature_x": -75.053715693845774, "feature_y": 38.527513751298748, "nearest_x": -75.053714, "nearest_y": 38.527495 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047189662453007, 38.528103261969157 ], [ -75.054150922728454, 38.527474436123114 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33375", "slope": 0.0971, "distance": 1.7562270364388384e-05, "feature_x": -75.053598556911908, "feature_y": 38.527982497119176, "nearest_x": -75.0536, "nearest_y": 38.528 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047255823580159, 38.528505446630149 ], [ -75.054195471455841, 38.527933282348108 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33375", "slope": 0.1076, "distance": 1.7562270364388384e-05, "feature_x": -75.053598556911908, "feature_y": 38.527982497119176, "nearest_x": -75.0536, "nearest_y": 38.528 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047255823580159, 38.528505446630149 ], [ -75.054195471455841, 38.527933282348108 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33376", "slope": 0.0971, "distance": 2.8682529670623738e-05, "feature_x": -75.053865120701218, "feature_y": 38.52841960402305, "nearest_x": -75.053863, "nearest_y": 38.528391 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047303133101863, 38.528906109539825 ], [ -75.05423998994678, 38.528391811231117 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33377", "slope": 0.0467, "distance": 8.3482521086244654e-06, "feature_x": -75.053400555151413, "feature_y": 38.528908329773117, "nearest_x": -75.0534, "nearest_y": 38.5289 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047341370497023, 38.529312154090455 ], [ -75.054284419981684, 38.528849423149197 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33378", "slope": 0.1064, "distance": 3.917652865777485e-05, "feature_x": -75.054002347893004, "feature_y": 38.529326106109444, "nearest_x": -75.054, "nearest_y": 38.529287 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047379033400887, 38.529723763507327 ], [ -75.054328799247003, 38.529306506285806 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33379", "slope": 0.0484, "distance": 5.1365511885560573e-06, "feature_x": -75.053600276389304, "feature_y": 38.529805129109775, "nearest_x": -75.0536, "nearest_y": 38.5298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047415427688094, 38.530138408386755 ], [ -75.054373168528912, 38.529763480729045 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33379", "slope": 0.0537, "distance": 5.1365511885560573e-06, "feature_x": -75.053600276389304, "feature_y": 38.529805129109775, "nearest_x": -75.0536, "nearest_y": 38.5298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047415427688094, 38.530138408386755 ], [ -75.054373168528912, 38.529763480729045 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33380", "slope": 0.0441, "distance": 3.9526578027785332e-05, "feature_x": -75.053751109393858, "feature_y": 38.530252518662905, "nearest_x": -75.053753, "nearest_y": 38.530292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047449493572572, 38.530554278289699 ], [ -75.054417552957247, 38.530220605298673 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33381", "slope": 0.0636, "distance": 1.4076498689486548e-05, "feature_x": -75.05360058885806, "feature_y": 38.530714064176536, "nearest_x": -75.0536, "nearest_y": 38.5307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047480291103398, 38.530970317119845 ], [ -75.05442683943366, 38.530679469594638 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33382", "slope": 0.0536, "distance": 3.0727112958321644e-05, "feature_x": -75.053873901145337, "feature_y": 38.531158292541797, "nearest_x": -75.053875, "nearest_y": 38.531189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047506956074628, 38.531386131241717 ], [ -75.054425151394796, 38.531138566261959 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33383", "slope": 0.0572, "distance": 1.8718947965955001e-05, "feature_x": -75.053700555552936, "feature_y": 38.531618710702119, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047528666462853, 38.531801964707142 ], [ -75.054423464869842, 38.531597246280825 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33383", "slope": 0.0608, "distance": 1.8718947965955001e-05, "feature_x": -75.053700555552936, "feature_y": 38.531618710702119, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047528666462853, 38.531801964707142 ], [ -75.054423464869842, 38.531597246280825 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33384", "slope": 0.0609, "distance": 2.3383614982965709e-05, "feature_x": -75.053902444361256, "feature_y": 38.532067622987462, "nearest_x": -75.053903, "nearest_y": 38.532091 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047544612640749, 38.532218739716498 ], [ -75.054421780706591, 38.532055279092056 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33385", "slope": 0.0664, "distance": 2.0319118645206862e-05, "feature_x": -75.053908627610227, "feature_y": 38.532521684294046, "nearest_x": -75.053909, "nearest_y": 38.532542 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553969449496, 38.532638166080467 ], [ -75.05442010021325, 38.532512308928609 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33386", "slope": 0.0678, "distance": 2.3500236927298617e-05, "feature_x": -75.05379967604614, "feature_y": 38.532976501996053, "nearest_x": -75.0538, "nearest_y": 38.533 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047556926848173, 38.533062567293115 ], [ -75.054418424728894, 38.532967971653491 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33387", "slope": 0.0854, "distance": 1.6591976998632157e-05, "feature_x": -75.053923827674296, "feature_y": 38.533427408917923, "nearest_x": -75.053924, "nearest_y": 38.533444 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047556784570403, 38.533493541142619 ], [ -75.054416754173545, 38.533422289064724 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33388", "slope": 0.0677, "distance": 1.8692822056010774e-05, "feature_x": -75.053699849504724, "feature_y": 38.533881307783773, "nearest_x": -75.0537, "nearest_y": 38.5339 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047556380338179, 38.533930770249484 ], [ -75.054415087488024, 38.533875549240307 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33389", "slope": 0.0746, "distance": 1.8358265782064566e-05, "feature_x": -75.05385187909819, "feature_y": 38.534331642132337, "nearest_x": -75.053852, "nearest_y": 38.53435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047555864722639, 38.534373106620009 ], [ -75.054413423967546, 38.534327943892634 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33390", "slope": 0.2207, "distance": 4.2441970729474846e-06, "feature_x": -75.054209975109345, "feature_y": 38.534780755875914, "nearest_x": -75.05421, "nearest_y": 38.534785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047555259754816, 38.53481978400329 ], [ -75.054411763246591, 38.53477957244241 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33391", "slope": 0.0713, "distance": 1.9277269746257766e-05, "feature_x": -75.053849887618981, "feature_y": 38.535233723057829, "nearest_x": -75.05385, "nearest_y": 38.535253 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047554611789366, 38.535270423355378 ], [ -75.054410105243605, 38.535230457092354 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33392", "slope": 0.0633, "distance": 1.4855224841071392e-05, "feature_x": -75.053699903671031, "feature_y": 38.535685145087484, "nearest_x": -75.0537, "nearest_y": 38.5357 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553984845891, 38.535724999249474 ], [ -75.054407219667937, 38.535680558387412 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33393", "slope": 0.0494, "distance": 0.00013531290842117727, "feature_x": -75.053701068222054, "feature_y": 38.53613530869184, "nearest_x": -75.0537, "nearest_y": 38.536 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553460780009, 38.536183842231608 ], [ -75.054348896020514, 38.536130194283267 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33394", "slope": 0.0503, "distance": 1.3968141191933368e-05, "feature_x": -75.053599857605349, "feature_y": 38.53658603258463, "nearest_x": -75.0536, "nearest_y": 38.5366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553146412113, 38.536647677443952 ], [ -75.0542906806524, 38.536578989799189 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33395", "slope": 0.0542, "distance": 6.1820325885054796e-05, "feature_x": -75.053399159187819, "feature_y": 38.537038185392284, "nearest_x": -75.0534, "nearest_y": 38.5371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553190489666, 38.537117703193317 ], [ -75.054225798103971, 38.537026941317563 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33396", "slope": 0.0581, "distance": 0.00012281282818416196, "feature_x": -75.053763735762786, "feature_y": 38.537481208045882, "nearest_x": -75.053766, "nearest_y": 38.537604 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047553817262184, 38.537595716595526 ], [ -75.054241390796875, 38.537472400267617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33397", "slope": 0.085, "distance": 2.9812811774832364e-05, "feature_x": -75.053700745744592, "feature_y": 38.537929803483202, "nearest_x": -75.0537, "nearest_y": 38.5379 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047557418593499, 38.538083522190995 ], [ -75.054280089597569, 38.53791530710587 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33398", "slope": 0.0551, "distance": 1.643803477360871e-05, "feature_x": -75.053499454571622, "feature_y": 38.538383571016617, "nearest_x": -75.0535, "nearest_y": 38.5384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047571287523041, 38.538580381156024 ], [ -75.054318628212727, 38.538356375143564 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33399", "slope": 0.0741, "distance": 2.4449103970761707e-05, "feature_x": -75.053701030906524, "feature_y": 38.538824427360005, "nearest_x": -75.0537, "nearest_y": 38.5388 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04759954698747, 38.539081927945531 ], [ -75.054357105782373, 38.538796739068609 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33400", "slope": 0.0597, "distance": 4.0334778011863874e-05, "feature_x": -75.053870062699744, "feature_y": 38.539264282000779, "nearest_x": -75.053868, "nearest_y": 38.539224 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047639971960464, 38.539583303061725 ], [ -75.054395607221196, 38.53923737071203 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33401", "slope": 0.1125, "distance": 3.6913193625819117e-05, "feature_x": -75.053898199430918, "feature_y": 38.53971084761006, "nearest_x": -75.053896, "nearest_y": 38.539674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047689925592863, 38.540081418983227 ], [ -75.054434183619364, 38.539678854756346 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33402", "slope": 0.1335, "distance": 0.0001230814420706332, "feature_x": -75.053962277920618, "feature_y": 38.540155802758164, "nearest_x": -75.053954, "nearest_y": 38.540033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047746785803653, 38.540574778285432 ], [ -75.05447285198791, 38.540121385847158 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33403", "slope": 0.0512, "distance": 2.5083535630932363e-05, "feature_x": -75.053701860223626, "feature_y": 38.540625014462371, "nearest_x": -75.0537, "nearest_y": 38.5406 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047808046568349, 38.541063313364148 ], [ -75.054511597789528, 38.54056479757962 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33404", "slope": 0.0594, "distance": 3.8716930727456572e-05, "feature_x": -75.053896881163155, "feature_y": 38.541061408892453, "nearest_x": -75.0539, "nearest_y": 38.5411 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04787140515073, 38.541548372802055 ], [ -75.05455037777061, 38.541008594930169 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33405", "slope": 0.0751, "distance": 3.4103771494074847e-06, "feature_x": -75.054000296520471, "feature_y": 38.54150339746198, "nearest_x": -75.054, "nearest_y": 38.5415 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.047935085767918, 38.542032751181416 ], [ -75.054589124506336, 38.541452006290733 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33406", "slope": 0.112, "distance": 1.8688638925577459e-05, "feature_x": -75.054184751070935, "feature_y": 38.541936606422965, "nearest_x": -75.054183, "nearest_y": 38.541918 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048003539229256, 38.542518327071022 ], [ -75.054627827193002, 38.54189490804157 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33407", "slope": 0.0925, "distance": 1.3780237214872791e-05, "feature_x": -75.054256384406912, "feature_y": 38.542379710519874, "nearest_x": -75.054255, "nearest_y": 38.542366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048082876843054, 38.54300307466864 ], [ -75.054689651220826, 38.542335961808817 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33408", "slope": 0.0573, "distance": 1.1736246133620229e-05, "feature_x": -75.054299249550112, "feature_y": 38.54282666953717, "nearest_x": -75.054298, "nearest_y": 38.542815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048172174663549, 38.543482744154112 ], [ -75.054819904371726, 38.542770918886333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33409", "slope": 0.0558, "distance": 6.6173924475720401e-06, "feature_x": -75.054399735081603, "feature_y": 38.543268576438081, "nearest_x": -75.054399, "nearest_y": 38.543262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048267728660662, 38.543953981668125 ], [ -75.054950500148806, 38.543207014653618 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33410", "slope": 0.0582, "distance": 2.2250973581624567e-06, "feature_x": -75.054502253541884, "feature_y": 38.543711210605068, "nearest_x": -75.054502, "nearest_y": 38.543709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048366056631096, 38.54441499209139 ], [ -75.055081592817999, 38.543644764194894 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33411", "slope": 0.0388, "distance": 8.9471656756348237e-05, "feature_x": -75.054310283427185, "feature_y": 38.544188878729109, "nearest_x": -75.0543, "nearest_y": 38.5441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048463962325116, 38.544865308488795 ], [ -75.055213253080893, 38.544084403532622 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33412", "slope": 0.0581, "distance": 3.2047509778111219e-06, "feature_x": -75.05471963418951, "feature_y": 38.544597816195434, "nearest_x": -75.05472, "nearest_y": 38.544601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048558570501442, 38.545305705672654 ], [ -75.055345473847098, 38.544525908919276 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33413", "slope": 0.0537, "distance": 5.3000007666561842e-06, "feature_x": -75.054823406887039, "feature_y": 38.545042733290863, "nearest_x": -75.054824, "nearest_y": 38.545048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048647331519291, 38.545738254968519 ], [ -75.055478170219672, 38.544968996805402 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33414", "slope": 0.049, "distance": 1.8658628319326027e-06, "feature_x": -75.054800203012718, "feature_y": 38.545501854785684, "nearest_x": -75.0548, "nearest_y": 38.5455 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048728124774215, 38.546166464756816 ], [ -75.05561116985271, 38.545413091659299 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33415", "slope": 0.0575, "distance": 4.6977894790788652e-05, "feature_x": -75.0549049535705, "feature_y": 38.545946716000884, "nearest_x": -75.0549, "nearest_y": 38.5459 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048802767025677, 38.546593766490815 ], [ -75.055740221986014, 38.545858147610929 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33416", "slope": 0.0452, "distance": 5.6624732615166027e-06, "feature_x": -75.055092422001223, "feature_y": 38.546383367103687, "nearest_x": -75.055093, "nearest_y": 38.546389 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048875209465436, 38.54702132332865 ], [ -75.05586528460276, 38.546304062671858 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33417", "slope": 0.047, "distance": 4.4619802821189455e-06, "feature_x": -75.055152559986496, "feature_y": 38.546833559768459, "nearest_x": -75.055153, "nearest_y": 38.546838 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.048946269509216, 38.54744858436608 ], [ -75.055990501547527, 38.546750522296513 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33418", "slope": 0.0414, "distance": 4.1710493107255251e-06, "feature_x": -75.055243603951794, "feature_y": 38.547280847795989, "nearest_x": -75.055244, "nearest_y": 38.547285 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049015206402032, 38.547874928837892 ], [ -75.056115906151533, 38.547197645303612 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33419", "slope": 0.0421, "distance": 4.2512154612577853e-06, "feature_x": -75.05533061292553, "feature_y": 38.547728766442837, "nearest_x": -75.055331, "nearest_y": 38.547733 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049081354471326, 38.548300136629209 ], [ -75.056241512756316, 38.547645482800483 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33420", "slope": 0.0419, "distance": 2.7873109382128107e-06, "feature_x": -75.055413757675566, "feature_y": 38.548177223242696, "nearest_x": -75.055414, "nearest_y": 38.54818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049144108891809, 38.548724368321402 ], [ -75.056367313715512, 38.548094007497681 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33421", "slope": 0.0376, "distance": 1.7943472664706105e-06, "feature_x": -75.055503851580909, "feature_y": 38.5486252118015, "nearest_x": -75.055504, "nearest_y": 38.548627 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049202915598656, 38.549148184586059 ], [ -75.056493272911993, 38.548543090600766 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33422", "slope": 0.0373, "distance": 6.8216350503033402e-07, "feature_x": -75.055580946419965, "feature_y": 38.549074319943955, "nearest_x": -75.055581, "nearest_y": 38.549075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049257456579369, 38.549572532993594 ], [ -75.056571341412806, 38.548996289027137 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33423", "slope": 0.041, "distance": 9.8046368538520079e-07, "feature_x": -75.055638073109833, "feature_y": 38.549524977734109, "nearest_x": -75.055638, "nearest_y": 38.549524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049308722453134, 38.549998253354929 ], [ -75.056607361785993, 38.549452499414478 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33424", "slope": 0.0371, "distance": 3.6605863203152518e-06, "feature_x": -75.055681259154923, "feature_y": 38.549976651401231, "nearest_x": -75.055681, "nearest_y": 38.549973 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049357881460878, 38.550425447452206 ], [ -75.056643355592172, 38.549908367470934 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33425", "slope": 0.0518, "distance": 2.1703586043831224e-07, "feature_x": -75.056013985420208, "feature_y": 38.550408783454408, "nearest_x": -75.056014, "nearest_y": 38.550409 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049404987464158, 38.550853760537464 ], [ -75.056679330195067, 38.550363986470188 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33426", "slope": 0.0365, "distance": 3.0621365996424082e-06, "feature_x": -75.055499805043723, "feature_y": 38.550896944075816, "nearest_x": -75.0555, "nearest_y": 38.5509 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049449909216676, 38.551282904297707 ], [ -75.056715289101945, 38.550819400840325 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33427", "slope": 0.0315, "distance": 1.0458887414081621e-05, "feature_x": -75.05577663010861, "feature_y": 38.551333439889319, "nearest_x": -75.055776, "nearest_y": 38.551323 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049492534315931, 38.551712721962303 ], [ -75.056751232810697, 38.551274616894673 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33428", "slope": 0.0396, "distance": 2.7086425008711088e-06, "feature_x": -75.055599845831438, "feature_y": 38.551797295748486, "nearest_x": -75.0556, "nearest_y": 38.5518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049532764298704, 38.5521431782241 ], [ -75.056787159168465, 38.551729607375727 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33429", "slope": 0.0375, "distance": 1.3837612956913865e-05, "feature_x": -75.05593974312724, "feature_y": 38.552231817644312, "nearest_x": -75.055939, "nearest_y": 38.552218 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049570511470023, 38.552574361527654 ], [ -75.056823063395797, 38.552184311764279 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33430", "slope": 0.0366, "distance": 2.5723157657253048e-06, "feature_x": -75.055699869685427, "feature_y": 38.552697430987251, "nearest_x": -75.0557, "nearest_y": 38.5527 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049605589362784, 38.553006566681695 ], [ -75.056858617466531, 38.552638652873839 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33431", "slope": 0.057, "distance": 1.6404857342358749e-05, "feature_x": -75.056354786250822, "feature_y": 38.553118386004826, "nearest_x": -75.056354, "nearest_y": 38.553102 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049637313373694, 38.55344071098029 ], [ -75.056890443794146, 38.553092683511096 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33432", "slope": 0.0343, "distance": 2.6437894366519691e-06, "feature_x": -75.055799879066896, "feature_y": 38.553597358977896, "nearest_x": -75.0558, "nearest_y": 38.5536 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049665589529042, 38.55387824972739 ], [ -75.056922218138766, 38.553545966773285 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33433", "slope": 0.0361, "distance": 1.993241316564135e-05, "feature_x": -75.056102883790615, "feature_y": 38.554035912810164, "nearest_x": -75.056102, "nearest_y": 38.554016 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04969146090211, 38.554320471109641 ], [ -75.056953915179022, 38.553998141468469 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33434", "slope": 0.0383, "distance": 3.4036611551755788e-06, "feature_x": -75.055899850631363, "feature_y": 38.55449659961792, "nearest_x": -75.0559, "nearest_y": 38.5545 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049716113694316, 38.554768232707346 ], [ -75.056985514027019, 38.554448909668423 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33435", "slope": 0.0378, "distance": 1.9611335827544344e-05, "feature_x": -75.056218872294679, "feature_y": 38.554933591926776, "nearest_x": -75.056218, "nearest_y": 38.554914 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049740726884679, 38.555222019491396 ], [ -75.057016999634953, 38.55489805676811 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33436", "slope": 0.0386, "distance": 1.8402414099272018e-05, "feature_x": -75.056270849621555, "feature_y": 38.555381382790536, "nearest_x": -75.05627, "nearest_y": 38.555363 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049766487148162, 38.555682003448617 ], [ -75.057048362512901, 38.555345447456673 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33437", "slope": 0.0443, "distance": 1.6994857829542294e-05, "feature_x": -75.056325831918883, "feature_y": 38.555827974483897, "nearest_x": -75.056325, "nearest_y": 38.555811 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04979459398821, 38.55614807023656 ], [ -75.057079599196015, 38.555791032374842 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33438", "slope": 0.0296, "distance": 4.1227091601344425e-06, "feature_x": -75.055800217564126, "feature_y": 38.556304116964498, "nearest_x": -75.0558, "nearest_y": 38.5563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049826255184314, 38.556619815555365 ], [ -75.057110713275719, 38.556234862820737 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33438", "slope": 0.035, "distance": 4.1227091601344425e-06, "feature_x": -75.055800217564126, "feature_y": 38.556304116964498, "nearest_x": -75.0558, "nearest_y": 38.5563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049826255184314, 38.556619815555365 ], [ -75.057110713275719, 38.556234862820737 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33439", "slope": 0.0317, "distance": 9.1403357142005699e-06, "feature_x": -75.056360525748218, "feature_y": 38.556722125202782, "nearest_x": -75.05636, "nearest_y": 38.556713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049862704864552, 38.557096496908699 ], [ -75.057141717232426, 38.556677116884792 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33440", "slope": 0.0293, "distance": 1.3245466131269696e-06, "feature_x": -75.055899916796207, "feature_y": 38.55719867806927, "nearest_x": -75.0559, "nearest_y": 38.5572 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049907750341049, 38.557575831682072 ], [ -75.057159856604272, 38.557119376058203 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33440", "slope": 0.0363, "distance": 1.3245466131269696e-06, "feature_x": -75.055899916796207, "feature_y": 38.55719867806927, "nearest_x": -75.0559, "nearest_y": 38.5572 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049907750341049, 38.557575831682072 ], [ -75.057159856604272, 38.557119376058203 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33441", "slope": 0.0388, "distance": 3.3524266035667895e-07, "feature_x": -75.056476022732369, "feature_y": 38.557610334471043, "nearest_x": -75.056476, "nearest_y": 38.55761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04996461773996, 38.558052882949909 ], [ -75.057175045412066, 38.557562825304593 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33442", "slope": 0.0416, "distance": 2.9867984178047639e-06, "feature_x": -75.056532786526489, "feature_y": 38.558056020840077, "nearest_x": -75.056533, "nearest_y": 38.558059 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050030852543799, 38.558521920871023 ], [ -75.057190324494513, 38.558008904557376 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33443", "slope": 0.0416, "distance": 3.2945652860128671e-06, "feature_x": -75.056573759265163, "feature_y": 38.558504714241771, "nearest_x": -75.056574, "nearest_y": 38.558508 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050101578545707, 38.558978905952664 ], [ -75.057205721223283, 38.558458412827285 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33444", "slope": 0.0421, "distance": 2.217103546401895e-06, "feature_x": -75.056621839814667, "feature_y": 38.558954788690706, "nearest_x": -75.056622, "nearest_y": 38.558957 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050172228581403, 38.559421992961106 ], [ -75.057221236247358, 38.558911368930524 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33445", "slope": 0.0511, "distance": 4.3604439332325298e-06, "feature_x": -75.056700300895912, "feature_y": 38.559404350049761, "nearest_x": -75.0567, "nearest_y": 38.5594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050238615811452, 38.559851309205406 ], [ -75.057236851198866, 38.559367236500087 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33446", "slope": 0.1024, "distance": 1.7000158204042306e-06, "feature_x": -75.056998891742168, "feature_y": 38.559841303434638, "nearest_x": -75.056999, "nearest_y": 38.559843 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050296921748682, 38.560268956161089 ], [ -75.057243330613844, 38.559825705789464 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33447", "slope": 0.0731, "distance": 5.9529850839479779e-06, "feature_x": -75.056934339324911, "feature_y": 38.560302943306318, "nearest_x": -75.056934, "nearest_y": 38.560297 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050343598187368, 38.560679232615719 ], [ -75.057248956487626, 38.560284980671703 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33448", "slope": 0.0432, "distance": 8.3801099603123004e-06, "feature_x": -75.056299580186007, "feature_y": 38.560791630412247, "nearest_x": -75.0563, "nearest_y": 38.5608 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050376002851067, 38.561088753844707 ], [ -75.057254575978916, 38.560743728340249 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33448", "slope": 0.0353, "distance": 8.3801099603123004e-06, "feature_x": -75.056299580186007, "feature_y": 38.560791630412247, "nearest_x": -75.0563, "nearest_y": 38.5608 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050376002851067, 38.561088753844707 ], [ -75.057254575978916, 38.560743728340249 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33449", "slope": 0.041, "distance": 1.525800095519554e-05, "feature_x": -75.056623673173718, "feature_y": 38.561229243143714, "nearest_x": -75.056623, "nearest_y": 38.561214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050397456434567, 38.561504207777965 ], [ -75.057260179100396, 38.561201133518452 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33450", "slope": 0.0353, "distance": 7.5777414539137654e-07, "feature_x": -75.056199969910111, "feature_y": 38.561699242823501, "nearest_x": -75.0562, "nearest_y": 38.5617 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050413860233078, 38.561929180472497 ], [ -75.057265762084157, 38.561656888675287 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33451", "slope": 0.0437, "distance": 1.7446671185425196e-05, "feature_x": -75.056607646574832, "feature_y": 38.562135434686013, "nearest_x": -75.056607, "nearest_y": 38.562118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050427787064251, 38.562364618142333 ], [ -75.057271322823325, 38.562110821890812 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33452", "slope": 0.0314, "distance": 1.8594209466730686e-06, "feature_x": -75.056200067353387, "feature_y": 38.562601858200686, "nearest_x": -75.0562, "nearest_y": 38.5626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050441086513857, 38.562810601431138 ], [ -75.057276860030768, 38.562562828172929 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33452", "slope": 0.0423, "distance": 1.8594209466730686e-06, "feature_x": -75.056200067353387, "feature_y": 38.562601858200686, "nearest_x": -75.0562, "nearest_y": 38.5626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050441086513857, 38.562810601431138 ], [ -75.057276860030768, 38.562562828172929 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33453", "slope": 0.0398, "distance": 1.6980932256550369e-05, "feature_x": -75.056553630894157, "feature_y": 38.563039969208376, "nearest_x": -75.056553, "nearest_y": 38.563023 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05045566496922, 38.563266684031333 ], [ -75.057282373312972, 38.563012875467528 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33454", "slope": 0.0417, "distance": 4.272575929333663e-06, "feature_x": -75.056200169674668, "feature_y": 38.563504269205495, "nearest_x": -75.0562, "nearest_y": 38.5635 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050473480695601, 38.563731869881785 ], [ -75.057287863603449, 38.563461040059529 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33455", "slope": 0.0759, "distance": 1.5405423711525764e-05, "feature_x": -75.056862672273667, "feature_y": 38.563926390748122, "nearest_x": -75.056862, "nearest_y": 38.563911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050496700312721, 38.564204458799459 ], [ -75.057293334053838, 38.563907579279466 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33456", "slope": 0.0345, "distance": 3.1503454580882148e-06, "feature_x": -75.056399847526748, "feature_y": 38.564396853346473, "nearest_x": -75.0564, "nearest_y": 38.5644 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050528898226986, 38.56468133421275 ], [ -75.057298794478044, 38.564353294256726 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33457", "slope": 0.0569, "distance": 2.621712326128698e-05, "feature_x": -75.056801393672004, "feature_y": 38.564826180054055, "nearest_x": -75.0568, "nearest_y": 38.5648 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050571596579232, 38.565157817790201 ], [ -75.057304259888511, 38.564799410415951 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33458", "slope": 0.0412, "distance": 4.6039263056741655e-06, "feature_x": -75.056300262924339, "feature_y": 38.565304596412538, "nearest_x": -75.0563, "nearest_y": 38.5653 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050622212495909, 38.565629392684166 ], [ -75.057315219275111, 38.565246538802313 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33459", "slope": 0.0953, "distance": 4.6951546740809764e-06, "feature_x": -75.05700328038327, "feature_y": 38.565714686775294, "nearest_x": -75.057003, "nearest_y": 38.56571 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050677388641532, 38.566093129124987 ], [ -75.05735860519377, 38.56569342970014 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33460", "slope": 0.0417, "distance": 9.2139624586634565e-06, "feature_x": -75.056599440383366, "feature_y": 38.566190803047604, "nearest_x": -75.0566, "nearest_y": 38.5662 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050733914220018, 38.566547708890376 ], [ -75.057402150789997, 38.566141959682795 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33461", "slope": 0.0464, "distance": 8.9480665422793073e-06, "feature_x": -75.056733538393516, "feature_y": 38.566634931854637, "nearest_x": -75.056733, "nearest_y": 38.566626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050788774893334, 38.56699326976409 ], [ -75.057445843144009, 38.566591995614168 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33462", "slope": 0.0488, "distance": 9.9330140278131378e-06, "feature_x": -75.056774578870943, "feature_y": 38.567084916132117, "nearest_x": -75.056774, "nearest_y": 38.567075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050839164185746, 38.567431405975121 ], [ -75.057489646857093, 38.567043172832378 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33463", "slope": 0.0495, "distance": 1.0476700763472621e-05, "feature_x": -75.05680558251008, "feature_y": 38.567535460494298, "nearest_x": -75.056805, "nearest_y": 38.567525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050882526019805, 38.567865295781516 ], [ -75.057533506929403, 38.567494924807981 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33464", "slope": 0.1065, "distance": 8.1452071732351787e-06, "feature_x": -75.057191429852651, "feature_y": 38.567967133856811, "nearest_x": -75.057191, "nearest_y": 38.567959 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050919607114608, 38.568298582973298 ], [ -75.057577373480214, 38.567946737764686 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33465", "slope": 0.0935, "distance": 9.889071551752082e-06, "feature_x": -75.057213496074439, "feature_y": 38.568418876621202, "nearest_x": -75.057213, "nearest_y": 38.568409 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050953814503544, 38.568733282520448 ], [ -75.05762122571511, 38.568398397527673 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33466", "slope": 0.049, "distance": 1.1933527425384279e-05, "feature_x": -75.056912570755628, "feature_y": 38.568885919870588, "nearest_x": -75.056912, "nearest_y": 38.568874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050986652519953, 38.569169668855181 ], [ -75.057665062124016, 38.568849888549671 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33467", "slope": 0.0471, "distance": 1.223849315088529e-05, "feature_x": -75.056944559739165, "feature_y": 38.569336225686349, "nearest_x": -75.056944, "nearest_y": 38.569324 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051018220133784, 38.569607556410965 ], [ -75.057708884755343, 38.569301231933999 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33468", "slope": 0.0321, "distance": 1.011050074872163e-05, "feature_x": -75.056899556503268, "feature_y": 38.569789899230919, "nearest_x": -75.0569, "nearest_y": 38.5698 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051048623136282, 38.570046797470944 ], [ -75.057752694833383, 38.569752440295439 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33469", "slope": 0.0552, "distance": 1.245877102268791e-05, "feature_x": -75.057040525712395, "feature_y": 38.570235447674555, "nearest_x": -75.05704, "nearest_y": 38.570223 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051077972075348, 38.570487268877784 ], [ -75.057796493006393, 38.570203520315047 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33470", "slope": 0.0412, "distance": 1.1276515068144111e-05, "feature_x": -75.056999540897252, "feature_y": 38.570688732834576, "nearest_x": -75.057, "nearest_y": 38.5707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051106380790443, 38.570928861199683 ], [ -75.057826256576377, 38.570655046683029 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33471", "slope": 0.0639, "distance": 1.3910445898058867e-05, "feature_x": -75.057133548077033, "feature_y": 38.571134899644477, "nearest_x": -75.057133, "nearest_y": 38.571121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051133965322578, 38.57137146926236 ], [ -75.057837275933508, 38.571107150943121 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33472", "slope": 0.046, "distance": 1.2296474910084649e-05, "feature_x": -75.057099529764287, "feature_y": 38.571587712519637, "nearest_x": -75.0571, "nearest_y": 38.5716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051160843040662, 38.571814983086739 ], [ -75.05784829062209, 38.57155905781655 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33473", "slope": 0.0526, "distance": 1.3600905549630529e-05, "feature_x": -75.057139506193408, "feature_y": 38.572037591482626, "nearest_x": -75.057139, "nearest_y": 38.572024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051187131866754, 38.572259278306746 ], [ -75.05785930104544, 38.572010783854942 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33474", "slope": 0.0398, "distance": 9.6614424336363221e-06, "feature_x": -75.057099649237173, "feature_y": 38.572490344926962, "nearest_x": -75.0571, "nearest_y": 38.5725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051212949506279, 38.572704205088243 ], [ -75.057870307650006, 38.57246234738335 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33475", "slope": 0.0593, "distance": 1.3310614126944431e-05, "feature_x": -75.057134472577786, "feature_y": 38.572940302222321, "nearest_x": -75.057134, "nearest_y": 38.572927 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051238011397203, 38.573149781245753 ], [ -75.057881310958976, 38.572913769871825 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33476", "slope": 0.0602, "distance": 1.0765849580601682e-05, "feature_x": -75.057199623947113, "feature_y": 38.573389240720218, "nearest_x": -75.0572, "nearest_y": 38.5734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051261120386698, 38.573596800283724 ], [ -75.057892310459692, 38.57336503029267 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33477", "slope": 0.0869, "distance": 1.5864760396181482e-05, "feature_x": -75.057389552735074, "feature_y": 38.573833855128711, "nearest_x": -75.057389, "nearest_y": 38.573818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051281959276963, 38.574046775577031 ], [ -75.057903301676049, 38.573815945021302 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33478", "slope": 0.0457, "distance": 1.2481959773938078e-05, "feature_x": -75.057119443025471, "feature_y": 38.574294474095083, "nearest_x": -75.057119, "nearest_y": 38.574282 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051301677131121, 38.574501095773968 ], [ -75.057914278049694, 38.574266245020532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33479", "slope": 0.0336, "distance": 4.2602704098734161e-05, "feature_x": -75.05720157917257, "feature_y": 38.574742573426107, "nearest_x": -75.0572, "nearest_y": 38.5747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051321498454826, 38.574960682774744 ], [ -75.057925234720472, 38.574715730930613 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33480", "slope": 0.046, "distance": 2.5257795466575396e-06, "feature_x": -75.057099899791453, "feature_y": 38.575197476209091, "nearest_x": -75.0571, "nearest_y": 38.5752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051342654275601, 38.575426070915711 ], [ -75.057936168492645, 38.575164271684834 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33481", "slope": 0.0555, "distance": 1.2135237282022706e-05, "feature_x": -75.057202526296351, "feature_y": 38.575644123819366, "nearest_x": -75.057202, "nearest_y": 38.575632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051366391505994, 38.575897471081959 ], [ -75.057966261191723, 38.575610970002323 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33482", "slope": 0.0414, "distance": 4.5137943254710286e-06, "feature_x": -75.057000217369321, "feature_y": 38.576104508557393, "nearest_x": -75.057, "nearest_y": 38.5761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051393973743245, 38.576374800202338 ], [ -75.058007553185149, 38.576055942267232 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33483", "slope": 0.069, "distance": 9.0014384706493955e-06, "feature_x": -75.057469485636659, "feature_y": 38.576530988328628, "nearest_x": -75.057469, "nearest_y": 38.576522 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051427203869309, 38.576857450977258 ], [ -75.05804873222931, 38.576499691811165 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33484", "slope": 0.0416, "distance": 2.6552679817759339e-06, "feature_x": -75.057100160112697, "feature_y": 38.577002650436185, "nearest_x": -75.0571, "nearest_y": 38.577 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051470943976469, 38.577342711035321 ], [ -75.058089858102235, 38.576942862841761 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33485", "slope": 0.0437, "distance": 4.1768768850370289e-05, "feature_x": -75.05730276755969, "feature_y": 38.57744167698003, "nearest_x": -75.0573, "nearest_y": 38.5774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051527551321243, 38.577825180190615 ], [ -75.058131044012185, 38.577386675285602 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33486", "slope": 0.1042, "distance": 9.5898830937401491e-07, "feature_x": -75.057722932052982, "feature_y": 38.57786404342184, "nearest_x": -75.057723, "nearest_y": 38.577865 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051593366676215, 38.578299434603082 ], [ -75.058172381767477, 38.577832118410839 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33487", "slope": 0.1021, "distance": 2.2077771487041749e-06, "feature_x": -75.057790837834105, "feature_y": 38.578310798186621, "nearest_x": -75.057791, "nearest_y": 38.578313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051663855907435, 38.578762056891236 ], [ -75.058213912768863, 38.578279638269834 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33488", "slope": 0.0778, "distance": 5.9176442718267654e-07, "feature_x": -75.057806956341381, "feature_y": 38.578762409848274, "nearest_x": -75.057807, "nearest_y": 38.578763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051734754092976, 38.579211623008526 ], [ -75.058255635383588, 38.578729217190613 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33489", "slope": 0.0757, "distance": 7.4750165192006232e-07, "feature_x": -75.057856946279543, "feature_y": 38.579212254431205, "nearest_x": -75.057857, "nearest_y": 38.579213 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051802138030624, 38.579648521403278 ], [ -75.058297517580982, 38.579180509956444 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33490", "slope": 0.0833, "distance": 8.6814552459666596e-07, "feature_x": -75.057916059106077, "feature_y": 38.579661866131126, "nearest_x": -75.057916, "nearest_y": 38.579661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051862425878184, 38.580074975056725 ], [ -75.058339508577944, 38.579632969310026 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33491", "slope": 0.0482, "distance": 8.3987498265916164e-05, "feature_x": -75.0577136962183, "feature_y": 38.580128180135027, "nearest_x": -75.057719, "nearest_y": 38.580212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051912307771588, 38.580495268508152 ], [ -75.05838154583202, 38.580085921315359 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33492", "slope": 0.0772, "distance": 3.7105483573773721e-06, "feature_x": -75.058012215279504, "feature_y": 38.580562704298025, "nearest_x": -75.058012, "nearest_y": 38.580559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05195147409195, 38.580914931185461 ], [ -75.05842065129832, 38.580538967572899 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33493", "slope": 0.0477, "distance": 6.1017289858840889e-06, "feature_x": -75.057797326012022, "feature_y": 38.581027093013439, "nearest_x": -75.057797, "nearest_y": 38.581021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051984028171375, 38.581338138617099 ], [ -75.058456864657572, 38.580991803819288 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33494", "slope": 0.0428, "distance": 2.630319091817936e-05, "feature_x": -75.057898692984949, "feature_y": 38.581473729302175, "nearest_x": -75.0579, "nearest_y": 38.5815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052013275398252, 38.5817665395438 ], [ -75.058493040043658, 38.581444159453767 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33495", "slope": 0.0843, "distance": 1.6089946259038151e-05, "feature_x": -75.058100754530898, "feature_y": 38.581916072244823, "nearest_x": -75.0581, "nearest_y": 38.5819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052040190395573, 38.582200592730324 ], [ -75.05852917147466, 38.58189595969521 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33496", "slope": 0.0471, "distance": 6.972232161036951e-06, "feature_x": -75.057904314361707, "feature_y": 38.582376965141634, "nearest_x": -75.057904, "nearest_y": 38.58237 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052065740948152, 38.582640480804301 ], [ -75.058565253355681, 38.582347134605193 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33497", "slope": 0.0557, "distance": 2.4248169777727425e-05, "feature_x": -75.058001073526739, "feature_y": 38.582824224394273, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052090900539369, 38.583086139247605 ], [ -75.058601281002595, 38.582797625637632 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33497", "slope": 0.0455, "distance": 2.4248169777727425e-05, "feature_x": -75.058001073526739, "feature_y": 38.582824224394273, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052090900539369, 38.583086139247605 ], [ -75.058601281002595, 38.582797625637632 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33498", "slope": 0.0532, "distance": 2.4250876846611873e-05, "feature_x": -75.057998923031207, "feature_y": 38.583275773048769, "nearest_x": -75.058, "nearest_y": 38.5833 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052116652456732, 38.5835372595973 ], [ -75.058637251568101, 38.583247397216027 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33499", "slope": 0.0588, "distance": 7.4552551839783851e-06, "feature_x": -75.058013338564479, "feature_y": 38.583726447563627, "nearest_x": -75.058013, "nearest_y": 38.583719 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052143986240367, 38.583993266930335 ], [ -75.058673165262576, 38.583696451998186 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33500", "slope": 0.0435, "distance": 6.8872853359567474e-06, "feature_x": -75.058030324678271, "feature_y": 38.584176879628139, "nearest_x": -75.05803, "nearest_y": 38.58417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052173886424626, 38.584453269307879 ], [ -75.05870902679203, 38.584144848852482 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33501", "slope": 0.049, "distance": 2.4580524897503265e-05, "feature_x": -75.058101213907634, "feature_y": 38.584624550532226, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052207316629932, 38.584915975859893 ], [ -75.058744847202163, 38.58459272591179 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33501", "slope": 0.0486, "distance": 2.4580524897503265e-05, "feature_x": -75.058101213907634, "feature_y": 38.584624550532226, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052207316629932, 38.584915975859893 ], [ -75.058744847202163, 38.58459272591179 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33502", "slope": 0.0398, "distance": 6.2188772733971042e-06, "feature_x": -75.058167322473849, "feature_y": 38.585072210510859, "nearest_x": -75.058167, "nearest_y": 38.585066 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052244991812174, 38.585379720928415 ], [ -75.058780648968948, 38.585040364216319 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33503", "slope": 0.0633, "distance": 5.7526125985922445e-06, "feature_x": -75.058160311960449, "feature_y": 38.585523744147665, "nearest_x": -75.05816, "nearest_y": 38.585518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052286718359753, 38.585842734713339 ], [ -75.058817619304804, 38.585488046267315 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33504", "slope": 0.0488, "distance": 4.8762082368373402e-06, "feature_x": -75.058219274252608, "feature_y": 38.585971868489729, "nearest_x": -75.058219, "nearest_y": 38.585967 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052331532700904, 38.58630353777577 ], [ -75.058857795834228, 38.585935899180406 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33505", "slope": 0.0437, "distance": 5.3807009499065751e-06, "feature_x": -75.058238310535003, "feature_y": 38.58642237173256, "nearest_x": -75.058238, "nearest_y": 38.586417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052378393022295, 38.586761128258246 ], [ -75.058898016169948, 38.586384234747115 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33506", "slope": 0.0397, "distance": 2.9401671407196091e-05, "feature_x": -75.058298279102743, "feature_y": 38.586870648734369, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052426294666617, 38.587214929695008 ], [ -75.058938286719993, 38.586833124377883 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33506", "slope": 0.0512, "distance": 2.9401671407196091e-05, "feature_x": -75.058298279102743, "feature_y": 38.586870648734369, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052426294666617, 38.587214929695008 ], [ -75.058938286719993, 38.586833124377883 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0348, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052474274723224, 38.587664726379003 ], [ -75.058978608387449, 38.587282578117581 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0542, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052474274723224, 38.587664726379003 ], [ -75.058978608387449, 38.587282578117581 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0602, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052474274723224, 38.587664726379003 ], [ -75.058978608387449, 38.587282578117581 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33508", "slope": 0.041, "distance": 5.9271669324914888e-06, "feature_x": -75.058325344307704, "feature_y": 38.587772917158105, "nearest_x": -75.058325, "nearest_y": 38.587767 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052521414578905, 38.588110636331137 ], [ -75.05901897758973, 38.587732556011545 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33509", "slope": 0.0552, "distance": 2.0534051638377399e-05, "feature_x": -75.058401168760696, "feature_y": 38.588220500762795, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052566840152181, 38.588553119309552 ], [ -75.059059386908686, 38.588182975354385 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33509", "slope": 0.0491, "distance": 2.0534051638377399e-05, "feature_x": -75.058401168760696, "feature_y": 38.588220500762795, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052566840152181, 38.588553119309552 ], [ -75.059059386908686, 38.588182975354385 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33510", "slope": 0.0457, "distance": 5.7276548017085711e-06, "feature_x": -75.058413316612601, "feature_y": 38.588671718897274, "nearest_x": -75.058413, "nearest_y": 38.588666 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05260972003947, 38.588993020669278 ], [ -75.05909982521203, 38.588633712046402 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33511", "slope": 0.0557, "distance": 5.5098282497425485e-06, "feature_x": -75.058431294170859, "feature_y": 38.589122501969726, "nearest_x": -75.058431, "nearest_y": 38.589117 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052649284025222, 38.589431645604165 ], [ -75.059140277165355, 38.589084595156322 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33512", "slope": 0.0448, "distance": 5.7805404717958568e-06, "feature_x": -75.058457297705274, "feature_y": 38.589572772869282, "nearest_x": -75.058457, "nearest_y": 38.589567 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052685852382922, 38.589870404703277 ], [ -75.059180728509119, 38.589535465743445 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33513", "slope": 0.0284, "distance": 6.1157859881037661e-06, "feature_x": -75.058481304333242, "feature_y": 38.590023108209195, "nearest_x": -75.058481, "nearest_y": 38.590017 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052720658052053, 38.590310124595177 ], [ -75.059221172199315, 38.58998624529648 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33514", "slope": 0.0524, "distance": 6.0759772518686438e-06, "feature_x": -75.058533292941192, "feature_y": 38.590472068911353, "nearest_x": -75.058533, "nearest_y": 38.590466 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052754326979539, 38.590751014687292 ], [ -75.059261606443201, 38.590436913837543 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33515", "slope": 0.0519, "distance": 5.612469806988767e-06, "feature_x": -75.058574263002043, "feature_y": 38.590921606304242, "nearest_x": -75.058574, "nearest_y": 38.590916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052787015043975, 38.591193096759291 ], [ -75.059299325796488, 38.590887592273837 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33516", "slope": 0.0422, "distance": 6.5367217024926426e-06, "feature_x": -75.05860729877304, "feature_y": 38.591371529890147, "nearest_x": -75.058607, "nearest_y": 38.591365 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052818877755072, 38.591636377251383 ], [ -75.059336833124732, 38.591338150278091 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33517", "slope": 0.0378, "distance": 6.0911800853873531e-06, "feature_x": -75.05862627260116, "feature_y": 38.591822085077112, "nearest_x": -75.058626, "nearest_y": 38.591816 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052850070615122, 38.592080849145354 ], [ -75.059374329699509, 38.591788573385777 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33518", "slope": 0.0478, "distance": 5.8740492531530604e-06, "feature_x": -75.058662258449147, "feature_y": 38.592271868360818, "nearest_x": -75.058662, "nearest_y": 38.592266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052880749294033, 38.592526492458795 ], [ -75.059411815141871, 38.592238857049814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33519", "slope": 0.0493, "distance": 6.3959045010098283e-06, "feature_x": -75.058681277825784, "feature_y": 38.592722389867546, "nearest_x": -75.058681, "nearest_y": 38.592716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052911069641937, 38.592973273399863 ], [ -75.05944928913064, 38.592688997417419 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33520", "slope": 0.0357, "distance": 6.0807571554411051e-06, "feature_x": -75.058719261871104, "feature_y": 38.593172075115724, "nearest_x": -75.058719, "nearest_y": 38.593166 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052941187543638, 38.593421142095352 ], [ -75.059486751463766, 38.593138992066962 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33521", "slope": 0.0345, "distance": 7.0127500230429214e-06, "feature_x": -75.058751300641362, "feature_y": 38.593622006302709, "nearest_x": -75.058751, "nearest_y": 38.593615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052971258599101, 38.593870028655665 ], [ -75.059524202140892, 38.593588840999217 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33522", "slope": 0.0403, "distance": 6.2580981359087571e-06, "feature_x": -75.058752268089165, "feature_y": 38.594073252353198, "nearest_x": -75.058752, "nearest_y": 38.594067 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053001437594176, 38.594319837172918 ], [ -75.059561641471888, 38.594038547941402 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33523", "slope": 0.0461, "distance": 5.9895677019157848e-06, "feature_x": -75.05878925746434, "feature_y": 38.594522984031535, "nearest_x": -75.058789, "nearest_y": 38.594517 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053031378527578, 38.594770718100143 ], [ -75.05959907184463, 38.594488141581138 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33524", "slope": 0.0271, "distance": 6.4263162432819573e-06, "feature_x": -75.058837279457677, "feature_y": 38.594972420237056, "nearest_x": -75.058837, "nearest_y": 38.594966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053059510193535, 38.595223912814696 ], [ -75.059635960203849, 38.594937655560521 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33525", "slope": 0.0387, "distance": 7.4193959989707342e-06, "feature_x": -75.058921331710422, "feature_y": 38.595420411977145, "nearest_x": -75.058921, "nearest_y": 38.595413 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053085454018358, 38.595681586752313 ], [ -75.059671778548733, 38.595386827005939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33526", "slope": 0.0357, "distance": 7.3166412616992859e-06, "feature_x": -75.058938344073496, "feature_y": 38.595871308546556, "nearest_x": -75.058938, "nearest_y": 38.595864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053110880206333, 38.5961456552767 ], [ -75.059707525448857, 38.595835096842798 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33527", "slope": 0.0451, "distance": 7.4893578982950133e-06, "feature_x": -75.059005379766447, "feature_y": 38.596319479723199, "nearest_x": -75.059005, "nearest_y": 38.596312 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053137601799875, 38.596617403210978 ], [ -75.059743165431527, 38.596282020282878 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33528", "slope": 0.0412, "distance": 6.9580433124762846e-06, "feature_x": -75.05901638918067, "feature_y": 38.596769947150868, "nearest_x": -75.059016, "nearest_y": 38.596763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053167468272477, 38.597097604782427 ], [ -75.059778670317797, 38.596727244020514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33529", "slope": 0.0392, "distance": 6.039451691529281e-06, "feature_x": -75.059027379339682, "feature_y": 38.597220027526703, "nearest_x": -75.059027, "nearest_y": 38.597214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05320238396915, 38.597586620988821 ], [ -75.059817185683954, 38.597170321419874 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33530", "slope": 0.0412, "distance": 3.4850117696240616e-06, "feature_x": -75.059112248788452, "feature_y": 38.597664476120158, "nearest_x": -75.059112, "nearest_y": 38.597661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053244312354963, 38.598084448609384 ], [ -75.059873628101244, 38.597609983647573 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33531", "slope": 0.0446, "distance": 5.7327171970852113e-07, "feature_x": -75.059185953323606, "feature_y": 38.598108428631662, "nearest_x": -75.059186, "nearest_y": 38.598109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053298389655311, 38.598589397165874 ], [ -75.059929816370897, 38.598047660758958 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33532", "slope": 0.0448, "distance": 1.2939967023817452e-06, "feature_x": -75.059177881026983, "feature_y": 38.598559711484228, "nearest_x": -75.059178, "nearest_y": 38.598561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053371569696381, 38.599095827819411 ], [ -75.059985974473562, 38.598485097487078 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33533", "slope": 0.0786, "distance": 1.4315856461025942e-07, "feature_x": -75.059300014529711, "feature_y": 38.599000142419314, "nearest_x": -75.0593, "nearest_y": 38.599 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053462955678214, 38.599595643071886 ], [ -75.06004237363058, 38.598924406446756 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33534", "slope": 0.0433, "distance": 2.93929259491154e-06, "feature_x": -75.059292679858189, "feature_y": 38.599455078194019, "nearest_x": -75.059293, "nearest_y": 38.599458 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053565221101408, 38.600082634924441 ], [ -75.060128883499587, 38.59936345549616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33535", "slope": 0.0362, "distance": 1.2979298133183416e-06, "feature_x": -75.059399852453851, "feature_y": 38.599898710483835, "nearest_x": -75.0594, "nearest_y": 38.5999 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05367142636004, 38.600554155704586 ], [ -75.060220963212018, 38.599804759176209 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33536", "slope": 0.0471, "distance": 7.5649555348283045e-06, "feature_x": -75.059490123966384, "feature_y": 38.600344485938692, "nearest_x": -75.059491, "nearest_y": 38.600352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053775314993644, 38.601010752098254 ], [ -75.060313549707743, 38.600248486105798 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33537", "slope": 0.0437, "distance": 1.2100249362411588e-05, "feature_x": -75.059598597829819, "feature_y": 38.600787981266564, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053871429549744, 38.601456143568257 ], [ -75.060406454394212, 38.600693732368136 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33537", "slope": 0.0736, "distance": 1.2100249362411588e-05, "feature_x": -75.059598597829819, "feature_y": 38.600787981266564, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053871429549744, 38.601456143568257 ], [ -75.060406454394212, 38.600693732368136 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33538", "slope": 0.0469, "distance": 1.0097294461219537e-05, "feature_x": -75.059657840990837, "feature_y": 38.601236969444024, "nearest_x": -75.059659, "nearest_y": 38.601247 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053959635901606, 38.60189538478371 ], [ -75.060499514101366, 38.60113971592677 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33539", "slope": 0.0433, "distance": 1.062228548876073e-05, "feature_x": -75.059731801573037, "feature_y": 38.601684445535454, "nearest_x": -75.059733, "nearest_y": 38.601695 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054047650017594, 38.602329863447338 ], [ -75.060592780428763, 38.601586684036697 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33540", "slope": 0.0589, "distance": 1.0780220417017942e-05, "feature_x": -75.060001179898165, "feature_y": 38.60211071545578, "nearest_x": -75.06, "nearest_y": 38.6021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054138266053926, 38.602756291475053 ], [ -75.060686384764736, 38.602035266311908 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33540", "slope": 0.0705, "distance": 1.0780220417017942e-05, "feature_x": -75.060001179898165, "feature_y": 38.60211071545578, "nearest_x": -75.06, "nearest_y": 38.6021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054138266053926, 38.602756291475053 ], [ -75.060686384764736, 38.602035266311908 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33541", "slope": 0.0528, "distance": 1.6882197857405673e-05, "feature_x": -75.059991243525289, "feature_y": 38.602568209425229, "nearest_x": -75.059993, "nearest_y": 38.602585 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054226600561407, 38.60317125308385 ], [ -75.060731460353708, 38.602490774783192 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33542", "slope": 0.0736, "distance": 3.1047373405868736e-06, "feature_x": -75.06020029921973, "feature_y": 38.603003090285021, "nearest_x": -75.0602, "nearest_y": 38.603 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05430823363983, 38.603573595043713 ], [ -75.060776514707626, 38.602947297681659 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33543", "slope": 0.0809, "distance": 2.6831077233414269e-05, "feature_x": -75.060361676210931, "feature_y": 38.603444269741679, "nearest_x": -75.060364, "nearest_y": 38.603471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054379252606239, 38.603964350410109 ], [ -75.060821615478446, 38.603404285023529 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.0726, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054436104067349, 38.604346902239733 ], [ -75.060866710518724, 38.603861208412738 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.0688, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054436104067349, 38.604346902239733 ], [ -75.060866710518724, 38.603861208412738 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.075, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054436104067349, 38.604346902239733 ], [ -75.060866710518724, 38.603861208412738 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33545", "slope": 0.1088, "distance": 2.3857545075894003e-05, "feature_x": -75.060510484389809, "feature_y": 38.604343190645061, "nearest_x": -75.060512, "nearest_y": 38.604367 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054475756556315, 38.60472733776156 ], [ -75.060911758304528, 38.604317647120723 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33546", "slope": 0.0641, "distance": 3.536562634028315e-06, "feature_x": -75.060400184720521, "feature_y": 38.604803531735207, "nearest_x": -75.0604, "nearest_y": 38.6048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054503278593131, 38.605111957902828 ], [ -75.060956839355512, 38.60477441700079 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33547", "slope": 0.0735, "distance": 1.6922877864786484e-05, "feature_x": -75.060554297505647, "feature_y": 38.605251091709228, "nearest_x": -75.060555, "nearest_y": 38.605268 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054527004857036, 38.605501509629683 ], [ -75.061002049483946, 38.605232488809747 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33548", "slope": 0.0433, "distance": 1.4540419587156032e-05, "feature_x": -75.060300446372523, "feature_y": 38.605714533566434, "nearest_x": -75.0603, "nearest_y": 38.6057 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05454778591583, 38.605891216255266 ], [ -75.061038192066007, 38.605691875025435 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33549", "slope": 0.0688, "distance": 8.1906549648560961e-06, "feature_x": -75.060585844682663, "feature_y": 38.606160810817791, "nearest_x": -75.060586, "nearest_y": 38.606169 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05456360034924, 38.606275029662967 ], [ -75.061064422870473, 38.606151734027655 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33550", "slope": 0.0672, "distance": 8.6956841243908337e-06, "feature_x": -75.060534953965615, "feature_y": 38.606614304437727, "nearest_x": -75.060535, "nearest_y": 38.606623 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054572796993583, 38.606645868147901 ], [ -75.061090640873431, 38.606611362626467 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33551", "slope": 0.045, "distance": 8.0612435705798477e-06, "feature_x": -75.060099960461997, "feature_y": 38.607108061146612, "nearest_x": -75.0601, "nearest_y": 38.6071 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054613008395535, 38.607081148952915 ], [ -75.061113272717392, 38.607113031201997 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33552", "slope": 0.0862, "distance": 2.3152799356073e-05, "feature_x": -75.062494366856683, "feature_y": 38.609177542933978, "nearest_x": -75.0625, "nearest_y": 38.6092 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056784877447299, 38.610609714530206 ], [ -75.063260085706915, 38.608985469578663 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33553", "slope": 0.0911, "distance": 2.0909962318948339e-05, "feature_x": -75.062795174244044, "feature_y": 38.609579654518839, "nearest_x": -75.0628, "nearest_y": 38.6096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056965281848946, 38.61096244992811 ], [ -75.063363242189922, 38.609444914167817 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33554", "slope": 0.0354, "distance": 1.7363672161186797e-05, "feature_x": -75.062196266883831, "feature_y": 38.610183042377685, "nearest_x": -75.0622, "nearest_y": 38.6102 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057110660855287, 38.611302607243637 ], [ -75.063466201393112, 38.609903474111746 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33555", "slope": 0.0364, "distance": 1.7689341393488823e-05, "feature_x": -75.062303510250189, "feature_y": 38.610617337558722, "nearest_x": -75.0623, "nearest_y": 38.6106 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057232843059964, 38.611643970591501 ], [ -75.06356895860425, 38.610361128457861 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33556", "slope": 0.0912, "distance": 1.165750844717935e-05, "feature_x": -75.063297879535725, "feature_y": 38.610888536966613, "nearest_x": -75.0633, "nearest_y": 38.6109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057346527824038, 38.61198943480418 ], [ -75.06367184663641, 38.610819359476793 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33556", "slope": 0.0965, "distance": 1.165750844717935e-05, "feature_x": -75.063297879535725, "feature_y": 38.610888536966613, "nearest_x": -75.0633, "nearest_y": 38.6109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057346527824038, 38.61198943480418 ], [ -75.06367184663641, 38.610819359476793 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.1047, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057450680951206, 38.612336955822961 ], [ -75.06377647981067, 38.611277367313143 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.0704, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057450680951206, 38.612336955822961 ], [ -75.06377647981067, 38.611277367313143 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.1084, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057450680951206, 38.612336955822961 ], [ -75.06377647981067, 38.611277367313143 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33558", "slope": 0.0362, "distance": 1.1764653566498819e-05, "feature_x": -75.062701745915277, "feature_y": 38.61191163438238, "nearest_x": -75.0627, "nearest_y": 38.6119 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057542832163833, 38.612685807518915 ], [ -75.063890068031739, 38.611733308652504 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33559", "slope": 0.0723, "distance": 5.4714034715565526e-06, "feature_x": -75.063307278279879, "feature_y": 38.612280576405617, "nearest_x": -75.063308, "nearest_y": 38.612286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057620909506369, 38.613037264036556 ], [ -75.064003334336334, 38.61218795191548 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33560", "slope": 0.0459, "distance": 6.6432576535149732e-06, "feature_x": -75.063091773715783, "feature_y": 38.612760598047906, "nearest_x": -75.063091, "nearest_y": 38.612754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057683708783898, 38.61339477125302 ], [ -75.064116076112128, 38.612640483895824 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33561", "slope": 0.047, "distance": 3.9851185201365143e-08, "feature_x": -75.063182995903304, "feature_y": 38.613199960359943, "nearest_x": -75.063183, "nearest_y": 38.6132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057735673729113, 38.613762926249393 ], [ -75.064228542814107, 38.613091905938376 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33562", "slope": 0.0464, "distance": 1.1484200529262275e-05, "feature_x": -75.063601046257148, "feature_y": 38.613611436442092, "nearest_x": -75.0636, "nearest_y": 38.6136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057782619183413, 38.614143732318027 ], [ -75.064341111608115, 38.613543731935486 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33562", "slope": 0.0851, "distance": 1.1484200529262275e-05, "feature_x": -75.063601046257148, "feature_y": 38.613611436442092, "nearest_x": -75.0636, "nearest_y": 38.6136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057782619183413, 38.614143732318027 ], [ -75.064341111608115, 38.613543731935486 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33563", "slope": 0.0319, "distance": 6.3536771058985919e-06, "feature_x": -75.063100515939126, "feature_y": 38.614106332694497, "nearest_x": -75.0631, "nearest_y": 38.6141 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057825842006153, 38.614536072460986 ], [ -75.064453811088143, 38.613996076639104 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33564", "slope": 0.0376, "distance": 7.6367284381157904e-06, "feature_x": -75.063366443391928, "feature_y": 38.614536383582951, "nearest_x": -75.063367, "nearest_y": 38.614544 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057865760353323, 38.614938373730382 ], [ -75.064528272131142, 38.614451477089908 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33565", "slope": 0.032, "distance": 1.0014974555522448e-06, "feature_x": -75.063199933948425, "feature_y": 38.614999000683063, "nearest_x": -75.0632, "nearest_y": 38.615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057902939716641, 38.61534911462936 ], [ -75.064592367066581, 38.61490696542068 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33566", "slope": 0.0422, "distance": 7.1503463191628209e-06, "feature_x": -75.063900430446793, "feature_y": 38.615407137378234, "nearest_x": -75.0639, "nearest_y": 38.6154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057938050725724, 38.615766721409017 ], [ -75.064656335600077, 38.615361549637328 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33567", "slope": 0.0496, "distance": 4.0944307849679748e-06, "feature_x": -75.06383977319669, "feature_y": 38.615863911855712, "nearest_x": -75.06384, "nearest_y": 38.615868 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057971836905381, 38.616189455002093 ], [ -75.064720155213479, 38.615815069755605 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33568", "slope": 0.0787, "distance": 3.6671928733015322e-07, "feature_x": -75.064023981184619, "feature_y": 38.616306633763713, "nearest_x": -75.064024, "nearest_y": 38.616307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05800433117949, 38.616615893183749 ], [ -75.064783835817735, 38.616267596244434 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33569", "slope": 0.0326, "distance": 1.3090960942673397e-05, "feature_x": -75.063502373830588, "feature_y": 38.61678392402316, "nearest_x": -75.063503, "nearest_y": 38.616797 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058034595358365, 38.617045759577891 ], [ -75.064847431464628, 38.616719513236667 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33570", "slope": 0.0569, "distance": 1.4824910526903195e-06, "feature_x": -75.064299933295459, "feature_y": 38.617198519010387, "nearest_x": -75.0643, "nearest_y": 38.6172 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058062404224245, 38.617479460580498 ], [ -75.064910967059248, 38.617170997730241 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33571", "slope": 0.0604, "distance": 1.9596211468589572e-06, "feature_x": -75.064015916030741, "feature_y": 38.617663042178712, "nearest_x": -75.064016, "nearest_y": 38.617665 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05808847529137, 38.617917264985259 ], [ -75.064974426103831, 38.617621932510716 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33572", "slope": 0.0448, "distance": 6.9389705976228521e-06, "feature_x": -75.064200287390307, "feature_y": 38.618106933016641, "nearest_x": -75.0642, "nearest_y": 38.6181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058113524123144, 38.618359244070106 ], [ -75.065037794346608, 38.61807221632845 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33573", "slope": 0.0562, "distance": 1.3017676939081135e-06, "feature_x": -75.064095947038638, "feature_y": 38.618562699310097, "nearest_x": -75.064096, "nearest_y": 38.618564 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058138266896279, 38.618805283589964 ], [ -75.065110283950162, 38.618521397631703 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33574", "slope": 0.0573, "distance": 5.6828189066339625e-06, "feature_x": -75.064300230758207, "feature_y": 38.619005678131856, "nearest_x": -75.0643, "nearest_y": 38.619 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058163421329809, 38.619255076900807 ], [ -75.065191112213355, 38.618969472878817 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33575", "slope": 0.0612, "distance": 2.5404458380918817e-07, "feature_x": -75.064202989558908, "feature_y": 38.61946074617007, "nearest_x": -75.064203, "nearest_y": 38.619461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058189703237133, 38.619708098208946 ], [ -75.065271803176046, 38.619416781320695 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33576", "slope": 0.0598, "distance": 3.4476052548325985e-07, "feature_x": -75.064284014491477, "feature_y": 38.61990834445583, "nearest_x": -75.064284, "nearest_y": 38.619908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058217818654441, 38.620163553187652 ], [ -75.065352370377909, 38.619863398041595 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33577", "slope": 0.0624, "distance": 5.8010902300264505e-07, "feature_x": -75.064345025080669, "feature_y": 38.620356579566597, "nearest_x": -75.064345, "nearest_y": 38.620356 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058248219894708, 38.620620417975005 ], [ -75.065432846502759, 38.620309504243721 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33578", "slope": 0.0682, "distance": 7.7682198696001583e-08, "feature_x": -75.064400996538311, "feature_y": 38.620804922394967, "nearest_x": -75.064401, "nearest_y": 38.620805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058280259850491, 38.621077947631079 ], [ -75.065513269030092, 38.620755307703931 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33579", "slope": 0.0611, "distance": 3.9208242432296388e-07, "feature_x": -75.064447981969835, "feature_y": 38.62125360833236, "nearest_x": -75.064448, "nearest_y": 38.621254 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058313175371296, 38.621536020231474 ], [ -75.065593648758906, 38.621200868294274 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33580", "slope": 0.0567, "distance": 1.6345463797427346e-06, "feature_x": -75.064449922306693, "feature_y": 38.621704367301128, "nearest_x": -75.06445, "nearest_y": 38.621706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058347040597809, 38.621994777867251 ], [ -75.0656739737463, 38.621646119822557 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33581", "slope": 0.0588, "distance": 1.2737454577974913e-06, "feature_x": -75.064521937298323, "feature_y": 38.622151727798759, "nearest_x": -75.064522, "nearest_y": 38.622153 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058382029084541, 38.622454339157983 ], [ -75.06574365472396, 38.622091514264959 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33582", "slope": 0.0649, "distance": 1.4272642044149045e-06, "feature_x": -75.064599927086576, "feature_y": 38.622598574599444, "nearest_x": -75.0646, "nearest_y": 38.6226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058418313159237, 38.622914782300484 ], [ -75.065807942606, 38.622536781058997 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33583", "slope": 0.0832, "distance": 6.8905655600262046e-07, "feature_x": -75.064768963394243, "feature_y": 38.623040311916462, "nearest_x": -75.064769, "nearest_y": 38.623041 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058456064519106, 38.62337615545826 ], [ -75.06587216978285, 38.622981621804641 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33584", "slope": 0.0393, "distance": 7.9483209626023312e-08, "feature_x": -75.064600004399381, "feature_y": 38.623500079361364, "nearest_x": -75.0646, "nearest_y": 38.6235 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058495454631156, 38.623838484026294 ], [ -75.065936331028752, 38.623426000324841 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33585", "slope": 0.0565, "distance": 4.6009232774723377e-06, "feature_x": -75.064781734214193, "feature_y": 38.623940406760084, "nearest_x": -75.064782, "nearest_y": 38.623945 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058536654960761, 38.624301775513985 ], [ -75.06600042219705, 38.623869887917984 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33586", "slope": 0.0412, "distance": 4.1637171682687374e-06, "feature_x": -75.064699748707639, "feature_y": 38.624395843872861, "nearest_x": -75.0647, "nearest_y": 38.6244 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058580231160178, 38.624765848926508 ], [ -75.066064449814064, 38.624313329801751 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33587", "slope": 0.0627, "distance": 6.5001058356757874e-06, "feature_x": -75.064909590652206, "feature_y": 38.624833512796421, "nearest_x": -75.06491, "nearest_y": 38.62484 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05862726388736, 38.625229932694126 ], [ -75.066128453668341, 38.624756601554736 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33588", "slope": 0.0747, "distance": 8.4909238823948905e-06, "feature_x": -75.065027444590484, "feature_y": 38.625276527260851, "nearest_x": -75.065028, "nearest_y": 38.625285 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05867787713035, 38.625692757496765 ], [ -75.066192498997694, 38.625200154992378 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33589", "slope": 0.0593, "distance": 9.7537816788873097e-06, "feature_x": -75.064986342010002, "feature_y": 38.625730268437628, "nearest_x": -75.064987, "nearest_y": 38.62574 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058731105367755, 38.626153210096057 ], [ -75.066260925822021, 38.625644088709812 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33590", "slope": 0.0424, "distance": 5.2866396490690735e-06, "feature_x": -75.064799635248548, "feature_y": 38.626194725958364, "nearest_x": -75.0648, "nearest_y": 38.6262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058785991714316, 38.626610628107493 ], [ -75.066335250186583, 38.626088523196373 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33591", "slope": 0.0662, "distance": 1.0659172694015925e-05, "feature_x": -75.065149254277358, "feature_y": 38.626622366944922, "nearest_x": -75.06515, "nearest_y": 38.626633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058841622613329, 38.627064736869826 ], [ -75.066409744056401, 38.626533965656037 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33592", "slope": 0.0374, "distance": 6.2800964172784369e-06, "feature_x": -75.06470044188417, "feature_y": 38.627106264531058, "nearest_x": -75.0647, "nearest_y": 38.6271 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058897131479213, 38.627515615359741 ], [ -75.066484409425854, 38.626980427975617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33593", "slope": 0.0527, "distance": 1.0859953286761833e-05, "feature_x": -75.065191236882413, "feature_y": 38.627524166891632, "nearest_x": -75.065192, "nearest_y": 38.627535 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058951701542185, 38.62796369901335 ], [ -75.066559228107877, 38.627427801368718 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33594", "slope": 0.0279, "distance": 2.7820122145497086e-06, "feature_x": -75.064899805768036, "feature_y": 38.627997224776422, "nearest_x": -75.0649, "nearest_y": 38.628 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059004568409733, 38.628409819821449 ], [ -75.066634159176928, 38.627875841093399 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33595", "slope": 0.055, "distance": 1.0426868640266778e-05, "feature_x": -75.065290278190886, "feature_y": 38.628422598145299, "nearest_x": -75.065291, "nearest_y": 38.628433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059055052381112, 38.628855275100996 ], [ -75.066684635518641, 38.628325840417169 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33596", "slope": 0.0268, "distance": 2.2058783633280765e-06, "feature_x": -75.064900151290274, "feature_y": 38.628902200684124, "nearest_x": -75.0649, "nearest_y": 38.6289 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059105682361988, 38.629300552631982 ], [ -75.066719378089402, 38.628777134427317 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33597", "slope": 0.0525, "distance": 8.3770555258239015e-06, "feature_x": -75.065407434286271, "feature_y": 38.629320642068002, "nearest_x": -75.065408, "nearest_y": 38.629329 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059160144177056, 38.629743495207791 ], [ -75.066754202437608, 38.62922948492124 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33598", "slope": 0.0285, "distance": 1.2956983038206617e-06, "feature_x": -75.065000084759575, "feature_y": 38.629801292923013, "nearest_x": -75.065, "nearest_y": 38.6298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059217590738697, 38.630180373283906 ], [ -75.06678919426632, 38.629684005075404 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33599", "slope": 0.0685, "distance": 3.455073434954209e-06, "feature_x": -75.065608786737187, "feature_y": 38.630216551514621, "nearest_x": -75.065609, "nearest_y": 38.63022 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059274769084482, 38.630608262732522 ], [ -75.066824405914176, 38.630141374637255 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33600", "slope": 0.032, "distance": 8.4818589346845915e-07, "feature_x": -75.065100047669219, "feature_y": 38.630700846845293, "nearest_x": -75.0651, "nearest_y": 38.6307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059328689237859, 38.631025718646924 ], [ -75.066859852265324, 38.630601786823902 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33601", "slope": 0.0506, "distance": 3.425238181874682e-06, "feature_x": -75.065620167239842, "feature_y": 38.631127421152939, "nearest_x": -75.06562, "nearest_y": 38.631124 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059376605662365, 38.631432631795008 ], [ -75.066895520630624, 38.631065076700587 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33602", "slope": 0.0378, "distance": 2.1567175991855919e-07, "feature_x": -75.065199991413948, "feature_y": 38.631599784499215, "nearest_x": -75.0652, "nearest_y": 38.6316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059415960695432, 38.63183023376358 ], [ -75.066931376973116, 38.631530802063288 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33603", "slope": 0.0641, "distance": 3.3826670786001661e-06, "feature_x": -75.065681100220473, "feature_y": 38.632036381182104, "nearest_x": -75.065681, "nearest_y": 38.632033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059444278744564, 38.632221244692616 ], [ -75.066965976235167, 38.631998296607847 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33604", "slope": 0.0376, "distance": 1.1547463892690602e-06, "feature_x": -75.065299977996077, "feature_y": 38.632498845463275, "nearest_x": -75.0653, "nearest_y": 38.6325 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05945901080031, 38.632610166446952 ], [ -75.066844245566259, 38.632469413799093 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33605", "slope": 0.034, "distance": 7.6726619497306593e-06, "feature_x": -75.065190069574427, "feature_y": 38.632950672346496, "nearest_x": -75.06519, "nearest_y": 38.632943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059460075258784, 38.633002633118458 ], [ -75.066723485849778, 38.632936767010989 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33606", "slope": 0.0416, "distance": 5.450318184173004e-07, "feature_x": -75.065300000236107, "feature_y": 38.633400545031769, "nearest_x": -75.0653, "nearest_y": 38.6334 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05945136157797, 38.633403078779345 ], [ -75.066603794292064, 38.633399980202029 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33606", "slope": 0.0346, "distance": 5.450318184173004e-07, "feature_x": -75.065300000236107, "feature_y": 38.633400545031769, "nearest_x": -75.0653, "nearest_y": 38.6334 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05945136157797, 38.633403078779345 ], [ -75.066603794292064, 38.633399980202029 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33607", "slope": 0.0373, "distance": 5.0949130564896002e-05, "feature_x": -75.065199668792204, "feature_y": 38.633850948054004, "nearest_x": -75.0652, "nearest_y": 38.6338 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059436377131362, 38.633813481516306 ], [ -75.066584972882282, 38.633859953766532 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33608", "slope": 0.0465, "distance": 3.9902487754381531e-06, "feature_x": -75.065399953586891, "feature_y": 38.634303989978839, "nearest_x": -75.0654, "nearest_y": 38.6343 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059416855344182, 38.634234392068429 ], [ -75.066646266937596, 38.634318487618927 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33609", "slope": 0.0615, "distance": 4.8169101787425631e-06, "feature_x": -75.065145927916149, "feature_y": 38.634751816370787, "nearest_x": -75.065146, "nearest_y": 38.634747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059394612709696, 38.634665739739695 ], [ -75.066707316263702, 38.634775184773311 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33610", "slope": 0.0503, "distance": 4.261636699505075e-06, "feature_x": -75.065114929206317, "feature_y": 38.635202261048654, "nearest_x": -75.065115, "nearest_y": 38.635198 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059371573631552, 38.635106840085591 ], [ -75.06675121586008, 38.635229446558299 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33611", "slope": 0.044, "distance": 4.0482011212135783e-06, "feature_x": -75.065104931981907, "feature_y": 38.63565304762966, "nearest_x": -75.065105, "nearest_y": 38.635649 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059349771076981, 38.635556335458034 ], [ -75.066757793332357, 38.635680823014788 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33612", "slope": 0.0307, "distance": 3.8224440792905377e-06, "feature_x": -75.065099939204458, "feature_y": 38.636103821960575, "nearest_x": -75.0651, "nearest_y": 38.6361 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059331326715451, 38.636012061227213 ], [ -75.066764343175151, 38.636130297465606 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33613", "slope": 0.0449, "distance": 1.026053352059722e-05, "feature_x": -75.065290851901452, "feature_y": 38.636557259464652, "nearest_x": -75.065291, "nearest_y": 38.636547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059317908809817, 38.63647103818181 ], [ -75.066770876377419, 38.636578624076201 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33614", "slope": 0.058, "distance": 4.1290710116958426e-06, "feature_x": -75.065102947041126, "feature_y": 38.637005128731374, "nearest_x": -75.065103, "nearest_y": 38.637001 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05930777413198, 38.636930794562957 ], [ -75.066777404655042, 38.637026606850533 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33615", "slope": 0.0741, "distance": 1.812762815033039e-05, "feature_x": -75.065586797191997, "feature_y": 38.637461126493626, "nearest_x": -75.065587, "nearest_y": 38.637443 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059298255081458, 38.637390767234301 ], [ -75.066783932012882, 38.63747452061866 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33616", "slope": 0.0496, "distance": 4.5726962834417163e-06, "feature_x": -75.065132956916784, "feature_y": 38.637906572493314, "nearest_x": -75.065133, "nearest_y": 38.637902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059289162189742, 38.637851510750806 ], [ -75.066790455893283, 38.637922189876562 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33617", "slope": 0.051, "distance": 4.0459377501340553e-06, "feature_x": -75.065131969958273, "feature_y": 38.638357045826218, "nearest_x": -75.065132, "nearest_y": 38.638353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059280792521321, 38.63831359871223 ], [ -75.066796973300654, 38.638369409079736 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33618", "slope": 0.0349, "distance": 4.4352677622094825e-06, "feature_x": -75.065127977322874, "feature_y": 38.638807435209792, "nearest_x": -75.065128, "nearest_y": 38.638803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059273452832841, 38.638777501162856 ], [ -75.066803481666781, 38.638816002024356 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33619", "slope": 0.0293, "distance": 3.7247845756858895e-06, "feature_x": -75.065114991024771, "feature_y": 38.639257724773763, "nearest_x": -75.065115, "nearest_y": 38.639254 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059267459786923, 38.639243634529961 ], [ -75.066809978664168, 38.639261809025406 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33620", "slope": 0.0344, "distance": 2.9776920314610175e-06, "feature_x": -75.065100002259072, "feature_y": 38.639707977691174, "nearest_x": -75.0651, "nearest_y": 38.639705 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059263141456256, 38.639712405907943 ], [ -75.066816462039128, 38.639706675474756 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33621", "slope": 0.0485, "distance": 2.176229892704831e-06, "feature_x": -75.065093009731441, "feature_y": 38.640158176208132, "nearest_x": -75.065093, "nearest_y": 38.640156 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059260840380233, 38.640184256170656 ], [ -75.066826373260483, 38.640150425051893 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33622", "slope": 0.0528, "distance": 1.3272073246241132e-06, "feature_x": -75.06508601163884, "feature_y": 38.640608327156293, "nearest_x": -75.065086, "nearest_y": 38.640607 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059261681874091, 38.640659405156605 ], [ -75.066844442235379, 38.640592906134103 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33623", "slope": 0.0501, "distance": 4.636717764745635e-07, "feature_x": -75.065085006257206, "feature_y": 38.641058463629555, "nearest_x": -75.065085, "nearest_y": 38.641058 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059268304991122, 38.641136966582202 ], [ -75.066862474173803, 38.641034474692646 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33624", "slope": 0.061, "distance": 3.7624706306643209e-07, "feature_x": -75.065488006874972, "feature_y": 38.641501376184245, "nearest_x": -75.065488, "nearest_y": 38.641501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05928185129261, 38.641614796947927 ], [ -75.066880501616467, 38.641475927609051 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33625", "slope": 0.0399, "distance": 2.9901587417748707e-07, "feature_x": -75.065083006797138, "feature_y": 38.641959298938609, "nearest_x": -75.065083, "nearest_y": 38.641959 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059301104340733, 38.642090765470904 ], [ -75.06689855530793, 38.641918017739428 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33626", "slope": 0.0557, "distance": 1.5043465877455142e-06, "feature_x": -75.065254959927927, "feature_y": 38.642405496187216, "nearest_x": -75.065255, "nearest_y": 38.642407 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059324722255568, 38.642563519078628 ], [ -75.066916654523396, 38.642361217053882 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33627", "slope": 0.0431, "distance": 1.0826963510860821e-06, "feature_x": -75.065255967656839, "feature_y": 38.642855917786846, "nearest_x": -75.065256, "nearest_y": 38.642857 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059351368332869, 38.643032383410009 ], [ -75.06693480817512, 38.642805743740823 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33628", "slope": 0.0491, "distance": 1.0582797389416309e-06, "feature_x": -75.065120034315967, "feature_y": 38.643311057723224, "nearest_x": -75.06512, "nearest_y": 38.64331 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059379734897533, 38.643497291684881 ], [ -75.0669530159402, 38.643251589844525 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33629", "slope": 0.0461, "distance": 5.5068025406331225e-07, "feature_x": -75.065140018938294, "feature_y": 38.643761550354505, "nearest_x": -75.06514, "nearest_y": 38.643761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059408559483884, 38.643958776134184 ], [ -75.066971268823011, 38.6436985350459 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33630", "slope": 0.0505, "distance": 3.8793138306646116e-07, "feature_x": -75.065177013955179, "feature_y": 38.644211387680294, "nearest_x": -75.065177, "nearest_y": 38.644211 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059436635371341, 38.644418021789924 ], [ -75.06698954898792, 38.644146142582393 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33631", "slope": 0.0518, "distance": 6.3396924163977214e-07, "feature_x": -75.065200023729048, "feature_y": 38.644661633525004, "nearest_x": -75.0652, "nearest_y": 38.644661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059464022807475, 38.644876478753901 ], [ -75.06700783635894, 38.644593920858362 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33632", "slope": 0.0466, "distance": 2.8809597555114401e-07, "feature_x": -75.065238011183752, "feature_y": 38.645111287878819, "nearest_x": -75.065238, "nearest_y": 38.645111 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05949333565728, 38.645334461738628 ], [ -75.067026128965381, 38.645041821614747 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33633", "slope": 0.0499, "distance": 1.0132145370179045e-05, "feature_x": -75.06570359556541, "feature_y": 38.645543875929548, "nearest_x": -75.065704, "nearest_y": 38.645554 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059525903067737, 38.645790661299941 ], [ -75.067044426268126, 38.645490312661103 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33634", "slope": 0.0425, "distance": 6.8717837066404136e-06, "feature_x": -75.065573722054182, "feature_y": 38.646000133839685, "nearest_x": -75.065574, "nearest_y": 38.646007 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059560385756413, 38.646243556890184 ], [ -75.067062764859415, 38.645939856595234 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33635", "slope": 0.0474, "distance": 6.8548023451500008e-07, "feature_x": -75.065352972400447, "feature_y": 38.646460315075615, "nearest_x": -75.065353, "nearest_y": 38.646461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059595403805915, 38.646692320678333 ], [ -75.067081155742841, 38.646390676614281 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33636", "slope": 0.0448, "distance": 1.2056418235566674e-06, "feature_x": -75.065396952589978, "feature_y": 38.646909795290703, "nearest_x": -75.065397, "nearest_y": 38.646911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059629631542947, 38.647136761917579 ], [ -75.067099599604006, 38.646842789475286 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33637", "slope": 0.0286, "distance": 3.9130231225877271e-05, "feature_x": -75.065398524943291, "feature_y": 38.64736089758059, "nearest_x": -75.0654, "nearest_y": 38.6474 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059661797668028, 38.647577303576618 ], [ -75.067118089731196, 38.647296030608047 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33638", "slope": 0.0576, "distance": 1.1801491241285593e-06, "feature_x": -75.065700041969123, "feature_y": 38.64780117940262, "nearest_x": -75.0657, "nearest_y": 38.6478 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059690678691112, 38.648015022984268 ], [ -75.067136612212508, 38.647750058957421 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33639", "slope": 0.0492, "distance": 3.2782637760561137e-06, "feature_x": -75.06554989105878, "feature_y": 38.648257723546855, "nearest_x": -75.06555, "nearest_y": 38.648261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059715169581324, 38.648451726534056 ], [ -75.067155145619623, 38.648204349245923 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33640", "slope": 0.0394, "distance": 3.0991534675993518e-06, "feature_x": -75.065578903686813, "feature_y": 38.648707902343467, "nearest_x": -75.065579, "nearest_y": 38.648711 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059735392878366, 38.6488895903884 ], [ -75.067173666130515, 38.648658317551032 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33641", "slope": 0.0411, "distance": 2.8095378588845043e-06, "feature_x": -75.065604917396541, "feature_y": 38.649158191676719, "nearest_x": -75.065605, "nearest_y": 38.649161 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059752729157537, 38.649330326788615 ], [ -75.067192155023022, 38.649111504981882 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33642", "slope": 0.0375, "distance": 1.2175122217571686e-05, "feature_x": -75.065500345369642, "feature_y": 38.64961217022271, "nearest_x": -75.0655, "nearest_y": 38.6496 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059768536851976, 38.649774828924656 ], [ -75.067210601060864, 38.649563636157083 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33643", "slope": 0.057, "distance": 3.6833456682546448e-06, "feature_x": -75.06566989677215, "feature_y": 38.650058318101124, "nearest_x": -75.06567, "nearest_y": 38.650062 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059784016955248, 38.650223338043595 ], [ -75.067231944235246, 38.650014523631896 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33644", "slope": 0.0438, "distance": 3.276200216952068e-06, "feature_x": -75.065685907184942, "feature_y": 38.650508725114776, "nearest_x": -75.065686, "nearest_y": 38.650512 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059800356607155, 38.650675530271734 ], [ -75.067275352345803, 38.650463677901939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33645", "slope": 0.0368, "distance": 3.0776220400083461e-06, "feature_x": -75.065705910346338, "feature_y": 38.65095892368408, "nearest_x": -75.065706, "nearest_y": 38.650962 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059818712876492, 38.651130495406186 ], [ -75.067318673103983, 38.650911922630506 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33646", "slope": 0.0369, "distance": 9.8472282096698443e-06, "feature_x": -75.065700297631949, "feature_y": 38.65140984272923, "nearest_x": -75.0657, "nearest_y": 38.6514 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059839332149323, 38.651587071063858 ], [ -75.06736193926281, 38.651359596745039 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33647", "slope": 0.0413, "distance": 6.0745438512728784e-06, "feature_x": -75.065913808856465, "feature_y": 38.651853928464185, "nearest_x": -75.065914, "nearest_y": 38.65186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059861513014994, 38.65204446629722 ], [ -75.067405177599753, 38.651806977327617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33648", "slope": 0.0339, "distance": 3.6873703579880864e-06, "feature_x": -75.065767879063472, "feature_y": 38.652309314613383, "nearest_x": -75.065768, "nearest_y": 38.652313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059884865997489, 38.65250236660733 ], [ -75.067448398140058, 38.652254168117025 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33649", "slope": 0.0304, "distance": 5.1237609015194865e-06, "feature_x": -75.065805824779403, "feature_y": 38.652758879236039, "nearest_x": -75.065806, "nearest_y": 38.652764 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059909375554525, 38.65296064197527 ], [ -75.067491603464418, 38.65270119582145 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33650", "slope": 0.0304, "distance": 5.2794957594317687e-06, "feature_x": -75.065834811761178, "feature_y": 38.653208723861106, "nearest_x": -75.065835, "nearest_y": 38.653214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0599350281325, 38.653419212695006 ], [ -75.067534794778155, 38.653148072917709 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33651", "slope": 0.0288, "distance": 4.4887359156157911e-06, "feature_x": -75.065837833180325, "feature_y": 38.653659514365003, "nearest_x": -75.065838, "nearest_y": 38.653664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059961812227812, 38.653878042152591 ], [ -75.067577972043921, 38.653594799024631 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33652", "slope": 0.0436, "distance": 1.1934336523106117e-05, "feature_x": -75.065800462195483, "feature_y": 38.654111925383162, "nearest_x": -75.0658, "nearest_y": 38.6541 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059989718697693, 38.65433713403354 ], [ -75.067621133999069, 38.654041361084495 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33653", "slope": 0.0249, "distance": 2.8868447240280555e-05, "feature_x": -75.065598834960454, "feature_y": 38.654571155071004, "nearest_x": -75.0656, "nearest_y": 38.6546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060018741357567, 38.654796533670833 ], [ -75.067664278056355, 38.654487732335454 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33654", "slope": 0.0344, "distance": 9.2524591444962325e-06, "feature_x": -75.066047610768081, "feature_y": 38.65500375573157, "nearest_x": -75.066048, "nearest_y": 38.655013 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060048877954756, 38.65525633366515 ], [ -75.067707400075136, 38.654933869946291 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33655", "slope": 0.042, "distance": 3.1831745383046004e-07, "feature_x": -75.066075013970803, "feature_y": 38.655453318010721, "nearest_x": -75.066075, "nearest_y": 38.655453 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060080131673658, 38.655716684342856 ], [ -75.06775049397865, 38.655379711056931 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33656", "slope": 0.0377, "distance": 6.9682672809825457e-07, "feature_x": -75.066113968061302, "feature_y": 38.655902303905606, "nearest_x": -75.066114, "nearest_y": 38.655903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060112902134819, 38.656177649024492 ], [ -75.067793558229255, 38.655825239770643 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33657", "slope": 0.0512, "distance": 1.3188137855154991e-06, "feature_x": -75.066235063104884, "feature_y": 38.656347317303144, "nearest_x": -75.066235, "nearest_y": 38.656346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060147903252869, 38.656638920228595 ], [ -75.067828183968473, 38.656270999493898 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33658", "slope": 0.0473, "distance": 1.2776946874917e-06, "feature_x": -75.066241936337335, "feature_y": 38.656797723892332, "nearest_x": -75.066242, "nearest_y": 38.656799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060185259858557, 38.657099880390575 ], [ -75.067862814903492, 38.656716861228894 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33659", "slope": 0.0441, "distance": 5.7185493459578741e-06, "feature_x": -75.066210704567894, "feature_y": 38.657250289087067, "nearest_x": -75.066211, "nearest_y": 38.657256 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060224591018368, 38.657559957637616 ], [ -75.067897470182885, 38.657163030758475 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33660", "slope": 0.0438, "distance": 2.077801655990802e-06, "feature_x": -75.066200110720715, "feature_y": 38.657702074849546, "nearest_x": -75.0662, "nearest_y": 38.6577 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060265524758009, 38.658018763638474 ], [ -75.067932160601032, 38.65760964704036 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33661", "slope": 0.0303, "distance": 5.1882574207697926e-05, "feature_x": -75.066297164245782, "feature_y": 38.658148194980896, "nearest_x": -75.0663, "nearest_y": 38.6582 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060307698503436, 38.658476052263111 ], [ -75.06796689281272, 38.658056795732023 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33661", "slope": 0.0324, "distance": 5.1882574207697926e-05, "feature_x": -75.066297164245782, "feature_y": 38.658148194980896, "nearest_x": -75.0663, "nearest_y": 38.6582 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060307698503436, 38.658476052263111 ], [ -75.06796689281272, 38.658056795732023 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33662", "slope": 0.0386, "distance": 4.7096028212655376e-07, "feature_x": -75.066299973745728, "feature_y": 38.658599529772076, "nearest_x": -75.0663, "nearest_y": 38.6586 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060350759461841, 38.658931692722895 ], [ -75.068001670081387, 38.658504518826213 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33663", "slope": 0.038, "distance": 7.8190286575445288e-06, "feature_x": -75.066405557855504, "feature_y": 38.659045193482378, "nearest_x": -75.066406, "nearest_y": 38.659053 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060394365139231, 38.659385654610091 ], [ -75.068036492757273, 38.658952820809915 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33664", "slope": 0.0581, "distance": 2.8170116072170011e-06, "feature_x": -75.066592839234886, "feature_y": 38.659486187579517, "nearest_x": -75.066593, "nearest_y": 38.659489 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060438184003416, 38.659838003331515 ], [ -75.068071358509656, 38.659401671656056 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33665", "slope": 0.085, "distance": 4.8861878310951196e-07, "feature_x": -75.066721971982773, "feature_y": 38.659930512185127, "nearest_x": -75.066722, "nearest_y": 38.659931 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06048189637616, 38.660288905487647 ], [ -75.068106262315268, 38.659851006676675 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33666", "slope": 0.0662, "distance": 4.9846842989067677e-06, "feature_x": -75.066657713852152, "feature_y": 38.660386023535693, "nearest_x": -75.066658, "nearest_y": 38.660391 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060525195703406, 38.660738644756755 ], [ -75.068141196181074, 38.660300722956457 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33667", "slope": 0.0431, "distance": 1.2074664488434716e-05, "feature_x": -75.066517307644432, "feature_y": 38.660845945201523, "nearest_x": -75.066518, "nearest_y": 38.660858 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060567790462756, 38.661187649908534 ], [ -75.068189301556174, 38.660749915864635 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33668", "slope": 0.0447, "distance": 1.2263286011019642e-06, "feature_x": -75.066499929794531, "feature_y": 38.661298775682624, "nearest_x": -75.0665, "nearest_y": 38.6613 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060609395361297, 38.661636553884165 ], [ -75.068248008186544, 38.661198536428934 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33669", "slope": 0.0486, "distance": 4.6646872642138504e-06, "feature_x": -75.066835732840531, "feature_y": 38.661731342969496, "nearest_x": -75.066836, "nearest_y": 38.661736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060649912030826, 38.66208620440581 ], [ -75.068306689615625, 38.661646958722038 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33670", "slope": 0.0302, "distance": 8.2049368659080907e-06, "feature_x": -75.066400472252184, "feature_y": 38.662208191334862, "nearest_x": -75.0664, "nearest_y": 38.6622 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060689703641629, 38.662537432293355 ], [ -75.068365310568026, 38.662094913194125 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33670", "slope": 0.0364, "distance": 8.2049368659080907e-06, "feature_x": -75.066400472252184, "feature_y": 38.662208191334862, "nearest_x": -75.0664, "nearest_y": 38.6622 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060689703641629, 38.662537432293355 ], [ -75.068365310568026, 38.662094913194125 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33671", "slope": 0.0332, "distance": 1.1395772812305667e-05, "feature_x": -75.066769336624347, "feature_y": 38.662638623551928, "nearest_x": -75.06677, "nearest_y": 38.66265 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060729407707939, 38.662990819754853 ], [ -75.068423838004804, 38.662542147399307 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33672", "slope": 0.048, "distance": 1.0523759883926382e-05, "feature_x": -75.066849375879684, "feature_y": 38.663085494763408, "nearest_x": -75.06685, "nearest_y": 38.663096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060769655602201, 38.66344669338406 ], [ -75.068482248861784, 38.662988485124487 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33673", "slope": 0.0474, "distance": 1.3247067958367417e-05, "feature_x": -75.066852193699106, "feature_y": 38.663536777493114, "nearest_x": -75.066853, "nearest_y": 38.66355 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060811064753594, 38.66390516207111 ], [ -75.068540529702432, 38.663433823732035 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33674", "slope": 0.0548, "distance": 2.219966418769207e-06, "feature_x": -75.066699860390386, "feature_y": 38.663997784427828, "nearest_x": -75.0667, "nearest_y": 38.664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060854239618564, 38.664366133914896 ], [ -75.068598676764438, 38.6638781345113 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33675", "slope": 0.0502, "distance": 1.6383649335226775e-05, "feature_x": -75.066927929661063, "feature_y": 38.664434651350511, "nearest_x": -75.066929, "nearest_y": 38.664451 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06089976847079, 38.664829312427585 ], [ -75.068656696881405, 38.664321469716569 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33676", "slope": 0.0456, "distance": 5.3051294136595152e-06, "feature_x": -75.066799638670787, "feature_y": 38.664894707189852, "nearest_x": -75.0668, "nearest_y": 38.6649 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060948215620868, 38.665294171744797 ], [ -75.068714609255537, 38.664763976106855 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33677", "slope": 0.0459, "distance": 1.6224329976783324e-05, "feature_x": -75.067132846354383, "feature_y": 38.665322816737508, "nearest_x": -75.067134, "nearest_y": 38.665339 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06099999462117, 38.665760005315413 ], [ -75.06877245074439, 38.665205935335059 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33678", "slope": 0.0311, "distance": 6.1669288627262173e-06, "feature_x": -75.066700457486135, "feature_y": 38.665806149936422, "nearest_x": -75.0667, "nearest_y": 38.6658 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06105508492675, 38.666226102200966 ], [ -75.068830269567897, 38.665647715856586 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33679", "slope": 0.0401, "distance": 1.9431240787701227e-05, "feature_x": -75.067222499312905, "feature_y": 38.666218626795391, "nearest_x": -75.067224, "nearest_y": 38.666238 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061113162021087, 38.66669186825365 ], [ -75.06888810343213, 38.666089605776477 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33680", "slope": 0.0548, "distance": 1.9799380990336943e-05, "feature_x": -75.067348412736976, "feature_y": 38.666660264344863, "nearest_x": -75.06735, "nearest_y": 38.66668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061173901267665, 38.667156856613218 ], [ -75.068941863987675, 38.666532109174199 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33681", "slope": 0.0559, "distance": 2.133389490832542e-05, "feature_x": -75.067437230559705, "feature_y": 38.667104739610707, "nearest_x": -75.067439, "nearest_y": 38.667126 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061236989571867, 38.667620767613855 ], [ -75.068992912436471, 38.666975264738042 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33682", "slope": 0.0454, "distance": 1.4167137356392966e-05, "feature_x": -75.06709878847812, "feature_y": 38.667585884760165, "nearest_x": -75.0671, "nearest_y": 38.6676 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061302124963746, 38.668083416842698 ], [ -75.06904401955822, 38.667418924082199 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33683", "slope": 0.062, "distance": 1.2613194935515234e-05, "feature_x": -75.067401108430019, "feature_y": 38.668012564396896, "nearest_x": -75.0674, "nearest_y": 38.668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061369016861846, 38.668544714994674 ], [ -75.069095188305354, 38.667863112816434 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33684", "slope": 0.0365, "distance": 1.8330667378455771e-06, "feature_x": -75.067000165022179, "feature_y": 38.668501825623551, "nearest_x": -75.067, "nearest_y": 38.6685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061437386877785, 38.669004657546061 ], [ -75.069146417543251, 38.668307821071622 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33684", "slope": 0.0269, "distance": 1.8330667378455771e-06, "feature_x": -75.067000165022179, "feature_y": 38.668501825623551, "nearest_x": -75.067, "nearest_y": 38.6685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061437386877785, 38.669004657546061 ], [ -75.069146417543251, 38.668307821071622 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33685", "slope": 0.057, "distance": 9.7640615617272142e-06, "feature_x": -75.067500897988992, "feature_y": 38.66890972268039, "nearest_x": -75.0675, "nearest_y": 38.6689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061506970271864, 38.669463323220086 ], [ -75.069197702274494, 38.668753005447122 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0375, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061577518276593, 38.669920881105149 ], [ -75.069249033554712, 38.669198588283592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0327, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061577518276593, 38.669920881105149 ], [ -75.069249033554712, 38.669198588283592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0352, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061577518276593, 38.669920881105149 ], [ -75.069249033554712, 38.669198588283592 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33687", "slope": 0.0442, "distance": 2.6318863596648296e-05, "feature_x": -75.067616489702203, "feature_y": 38.669805801126245, "nearest_x": -75.067619, "nearest_y": 38.669832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061648801634746, 38.670377607161598 ], [ -75.069300398077161, 38.66964445405835 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33688", "slope": 0.0307, "distance": 9.6167150281125847e-06, "feature_x": -75.067299067502205, "feature_y": 38.6702904286022, "nearest_x": -75.0673, "nearest_y": 38.6703 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061720615903425, 38.670833911793387 ], [ -75.069352170883619, 38.670090404068901 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33689", "slope": 0.0605, "distance": 5.0621027383262226e-06, "feature_x": -75.067700499115986, "feature_y": 38.670705037436583, "nearest_x": -75.0677, "nearest_y": 38.6707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061792789422768, 38.671290381256028 ], [ -75.069409154204308, 38.670535741593113 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33690", "slope": 0.0298, "distance": 1.0721781049936903e-05, "feature_x": -75.067398923794016, "feature_y": 38.671189332368137, "nearest_x": -75.0674, "nearest_y": 38.6712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061865785596083, 38.671747544028804 ], [ -75.069466100590446, 38.670980784858358 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33691", "slope": 0.051, "distance": 1.3014397463307155e-05, "feature_x": -75.06770133092391, "feature_y": 38.671612946164792, "nearest_x": -75.0677, "nearest_y": 38.6716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061941282672265, 38.672205105005425 ], [ -75.069523027154247, 38.671425667607281 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33691", "slope": 0.0477, "distance": 1.3014397463307155e-05, "feature_x": -75.06770133092391, "feature_y": 38.671612946164792, "nearest_x": -75.0677, "nearest_y": 38.6716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061941282672265, 38.672205105005425 ], [ -75.069523027154247, 38.671425667607281 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33692", "slope": 0.0336, "distance": 2.1872755097274933e-05, "feature_x": -75.067597723816831, "feature_y": 38.672078246002535, "nearest_x": -75.0676, "nearest_y": 38.6721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062019981848053, 38.672661861147454 ], [ -75.069579990948313, 38.671870835705377 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33693", "slope": 0.0309, "distance": 2.2180497048753689e-05, "feature_x": -75.067702341066578, "feature_y": 38.672522056605736, "nearest_x": -75.0677, "nearest_y": 38.6725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062100976526253, 38.673116579965416 ], [ -75.06963704569209, 38.672316708947022 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33694", "slope": 0.0449, "distance": 2.9441652510573407e-05, "feature_x": -75.068152862991923, "feature_y": 38.672928725948644, "nearest_x": -75.068156, "nearest_y": 38.672958 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062183356228189, 38.673568418444198 ], [ -75.069694225450036, 38.672763553508709 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33695", "slope": 0.0319, "distance": 2.135494485411738e-05, "feature_x": -75.067802284378601, "feature_y": 38.673421232411172, "nearest_x": -75.0678, "nearest_y": 38.6734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062266264754953, 38.674016848456255 ], [ -75.069751548552233, 38.673211512594975 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33696", "slope": 0.0436, "distance": 2.9461686151424593e-05, "feature_x": -75.068280854905595, "feature_y": 38.673824706667446, "nearest_x": -75.068284, "nearest_y": 38.673854 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062348896869551, 38.674461594533341 ], [ -75.069809021155507, 38.673660634275883 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33697", "slope": 0.0386, "distance": 9.5738353970286747e-06, "feature_x": -75.068001013572442, "feature_y": 38.674309520031258, "nearest_x": -75.068, "nearest_y": 38.6743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06243049632711, 38.674902598208824 ], [ -75.069866639836732, 38.674110891757415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33697", "slope": 0.0325, "distance": 9.5738353970286747e-06, "feature_x": -75.068001013572442, "feature_y": 38.674309520031258, "nearest_x": -75.068, "nearest_y": 38.6743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06243049632711, 38.674902598208824 ], [ -75.069866639836732, 38.674110891757415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33698", "slope": 0.0468, "distance": 1.1566745755251424e-05, "feature_x": -75.068501206847017, "feature_y": 38.674711503613679, "nearest_x": -75.0685, "nearest_y": 38.6747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062510354609998, 38.675340005432837 ], [ -75.06992439330476, 38.674562196763446 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33698", "slope": 0.0484, "distance": 1.1566745755251424e-05, "feature_x": -75.068501206847017, "feature_y": 38.674711503613679, "nearest_x": -75.0685, "nearest_y": 38.6747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062510354609998, 38.675340005432837 ], [ -75.06992439330476, 38.674562196763446 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33699", "slope": 0.0399, "distance": 2.4559125093876463e-06, "feature_x": -75.068199748980007, "feature_y": 38.675197556949605, "nearest_x": -75.0682, "nearest_y": 38.6752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062587810086441, 38.675774175795617 ], [ -75.069982263241229, 38.675014406110691 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33700", "slope": 0.0536, "distance": 1.1401693680016175e-05, "feature_x": -75.068601135419911, "feature_y": 38.675611345018311, "nearest_x": -75.0686, "nearest_y": 38.6756 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062662247509593, 38.676205714404063 ], [ -75.070075951667377, 38.675463744046489 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33700", "slope": 0.0622, "distance": 1.1401693680016175e-05, "feature_x": -75.068601135419911, "feature_y": 38.675611345018311, "nearest_x": -75.0686, "nearest_y": 38.6756 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062662247509593, 38.676205714404063 ], [ -75.070075951667377, 38.675463744046489 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33701", "slope": 0.0378, "distance": 4.7676606351417083e-06, "feature_x": -75.068299539418632, "feature_y": 38.676095254638817, "nearest_x": -75.0683, "nearest_y": 38.6761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062733098054125, 38.676635529449129 ], [ -75.070178857129136, 38.675912849408427 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33702", "slope": 0.0545, "distance": 2.6017390895154622e-05, "feature_x": -75.068857567671543, "feature_y": 38.676496096556072, "nearest_x": -75.06886, "nearest_y": 38.676522 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062799908699105, 38.67706490958178 ], [ -75.070281855884787, 38.676362356163665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33703", "slope": 0.0401, "distance": 7.6898315876354754e-06, "feature_x": -75.068399304178357, "feature_y": 38.676992341714154, "nearest_x": -75.0684, "nearest_y": 38.677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062862795095128, 38.677495381549157 ], [ -75.07006584426999, 38.676840922102961 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33704", "slope": 0.056, "distance": 1.1970502059490147e-06, "feature_x": -75.068900105142646, "feature_y": 38.677401192423673, "nearest_x": -75.0689, "nearest_y": 38.6774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062922503791555, 38.677928270849023 ], [ -75.070121694704824, 38.677293478063845 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33705", "slope": 0.0359, "distance": 1.0344114809336427e-05, "feature_x": -75.068499113393258, "feature_y": 38.677889693951307, "nearest_x": -75.0685, "nearest_y": 38.6779 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.062979904876158, 38.678364499340795 ], [ -75.070177456473672, 38.677745309781457 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33706", "slope": 0.0823, "distance": 7.9536083072879778e-06, "feature_x": -75.069099329992241, "feature_y": 38.678292074662487, "nearest_x": -75.0691, "nearest_y": 38.6783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063035818936896, 38.678804683685016 ], [ -75.070233105881258, 38.678196225286612 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33707", "slope": 0.0776, "distance": 2.0368365701208881e-05, "feature_x": -75.069362299168404, "feature_y": 38.678723702771293, "nearest_x": -75.069364, "nearest_y": 38.678744 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063091038979621, 38.679249210838677 ], [ -75.070288625096424, 38.678646080135088 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33708", "slope": 0.0621, "distance": 7.4354609507862704e-06, "feature_x": -75.069000621279756, "feature_y": 38.679207409459565, "nearest_x": -75.069, "nearest_y": 38.6792 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063146345309775, 38.679698287792647 ], [ -75.070344000953924, 38.679094767695062 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33709", "slope": 0.0853, "distance": 1.95419014489253e-05, "feature_x": -75.069510350181645, "feature_y": 38.679617527865766, "nearest_x": -75.069512, "nearest_y": 38.679637 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063202514617245, 38.680151972767995 ], [ -75.07039922457551, 38.679542216075582 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33710", "slope": 0.0521, "distance": 3.1840571658840458e-06, "feature_x": -75.069199725813149, "feature_y": 38.680096827770249, "nearest_x": -75.0692, "nearest_y": 38.6801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063260324121387, 38.680610190914201 ], [ -75.070411944128239, 38.679992051525488 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33711", "slope": 0.0832, "distance": 2.2870272676511388e-05, "feature_x": -75.069621973672184, "feature_y": 38.680512219671471, "nearest_x": -75.069624, "nearest_y": 38.680535 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063320551186834, 38.681072736069552 ], [ -75.070389872259796, 38.680443914498881 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33712", "slope": 0.0436, "distance": 2.7947236645724587e-06, "feature_x": -75.069200256686827, "feature_y": 38.681002782910745, "nearest_x": -75.0692, "nearest_y": 38.681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063383968322071, 38.681539258826682 ], [ -75.070367833730472, 38.680895089322561 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33713", "slope": 0.0538, "distance": 2.7113466924778768e-05, "feature_x": -75.069502596857291, "feature_y": 38.681426988820292, "nearest_x": -75.0695, "nearest_y": 38.6814 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063451332953477, 38.682009239861564 ], [ -75.070345814932523, 38.681345854596081 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33714", "slope": 0.0417, "distance": 2.7896397188485949e-07, "feature_x": -75.06929997202495, "feature_y": 38.681899722442267, "nearest_x": -75.0693, "nearest_y": 38.6819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063523370854, 38.682481946101433 ], [ -75.070323800211924, 38.681796530794493 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33715", "slope": 0.0909, "distance": 1.1110787967800611e-05, "feature_x": -75.069701168772482, "feature_y": 38.682311049143863, "nearest_x": -75.0697, "nearest_y": 38.6823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063600870985553, 38.682956335358625 ], [ -75.070336467042836, 38.682243847634943 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33715", "slope": 0.0868, "distance": 1.1110787967800611e-05, "feature_x": -75.069701168772482, "feature_y": 38.682311049143863, "nearest_x": -75.0697, "nearest_y": 38.6823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063600870985553, 38.682956335358625 ], [ -75.070336467042836, 38.682243847634943 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33716", "slope": 0.0331, "distance": 7.9881936921566321e-06, "feature_x": -75.069300880776268, "feature_y": 38.682807939488121, "nearest_x": -75.0693, "nearest_y": 38.6828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063684499592881, 38.683430999206969 ], [ -75.070408352597283, 38.682685080825415 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33717", "slope": 0.0522, "distance": 1.7043330915603885e-05, "feature_x": -75.069701963245308, "feature_y": 38.68321692987881, "nearest_x": -75.0697, "nearest_y": 38.6832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063773946778355, 38.683904362474188 ], [ -75.070480297319634, 38.683126671659089 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33718", "slope": 0.0501, "distance": 4.1223084251029203e-06, "feature_x": -75.069499506390571, "feature_y": 38.683695907350923, "nearest_x": -75.0695, "nearest_y": 38.6837 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063868121610426, 38.684375101836949 ], [ -75.070552350890679, 38.68356892505313 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33719", "slope": 0.0734, "distance": 2.2392977056386076e-05, "feature_x": -75.07009722912332, "feature_y": 38.684077779116492, "nearest_x": -75.0701, "nearest_y": 38.6841 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063965947945817, 38.684842331255261 ], [ -75.070624543234558, 38.684012024648567 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33720", "slope": 0.0331, "distance": 3.3898272612050055e-06, "feature_x": -75.069599569235336, "feature_y": 38.684596637653996, "nearest_x": -75.0696, "nearest_y": 38.6846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06406640417319, 38.685305515302929 ], [ -75.070696888195982, 38.684456055387571 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33721", "slope": 0.0506, "distance": 1.6415813903106581e-06, "feature_x": -75.070000212902571, "feature_y": 38.685001627716794, "nearest_x": -75.07, "nearest_y": 38.685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064168526506279, 38.685764402344049 ], [ -75.070769386410404, 38.684901021134777 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33722", "slope": 0.0353, "distance": 1.4701173643967369e-05, "feature_x": -75.069798065656741, "feature_y": 38.685485426639964, "nearest_x": -75.0698, "nearest_y": 38.6855 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064271412521052, 38.686218987344631 ], [ -75.070842027804034, 38.68534686002657 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33723", "slope": 0.0377, "distance": 2.5677167656981175e-06, "feature_x": -75.070100340875968, "feature_y": 38.685902544989773, "nearest_x": -75.0701, "nearest_y": 38.6859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064374225187038, 38.686669501017271 ], [ -75.070914793662268, 38.685793457170476 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33724", "slope": 0.0328, "distance": 2.6271673806362471e-05, "feature_x": -75.069996498080357, "feature_y": 38.686373962768897, "nearest_x": -75.07, "nearest_y": 38.6864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064476198016678, 38.687116424481907 ], [ -75.070961147050824, 38.686244220740598 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33725", "slope": 0.0483, "distance": 3.9948913314171608e-06, "feature_x": -75.070200532627425, "feature_y": 38.686803959225273, "nearest_x": -75.0702, "nearest_y": 38.6868 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064576642289651, 38.687560531037157 ], [ -75.071007119369455, 38.686695450567349 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33726", "slope": 0.0429, "distance": 4.7492354961641201e-05, "feature_x": -75.070306318163063, "feature_y": 38.68724707020921, "nearest_x": -75.0703, "nearest_y": 38.6872 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064674957934244, 38.688002959183272 ], [ -75.071050374935183, 38.687147196593017 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33727", "slope": 0.0481, "distance": 2.1488579086975591e-05, "feature_x": -75.070497149603682, "feature_y": 38.687678701308208, "nearest_x": -75.0705, "nearest_y": 38.6877 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064771258161386, 38.688444995314207 ], [ -75.071083981180067, 38.687600165848004 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33728", "slope": 0.0501, "distance": 3.5148290778208555e-05, "feature_x": -75.070504648363283, "feature_y": 38.688134839561755, "nearest_x": -75.0705, "nearest_y": 38.6881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064867643358582, 38.688886939925681 ], [ -75.071351207697404, 38.688021889939968 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33729", "slope": 0.0345, "distance": 5.7735756524480358e-06, "feature_x": -75.070400760298583, "feature_y": 38.688605723296419, "nearest_x": -75.0704, "nearest_y": 38.6886 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064965360015293, 38.689327776957214 ], [ -75.071444304689393, 38.688467095962956 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33730", "slope": 0.0596, "distance": 9.7865226287588523e-06, "feature_x": -75.0708012794464, "feature_y": 38.689009702527613, "nearest_x": -75.0708, "nearest_y": 38.689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065063358958696, 38.689766346772267 ], [ -75.07153747000045, 38.688912623046136 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33730", "slope": 0.0587, "distance": 9.7865226287588523e-06, "feature_x": -75.0708012794464, "feature_y": 38.689009702527613, "nearest_x": -75.0708, "nearest_y": 38.689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065063358958696, 38.689766346772267 ], [ -75.07153747000045, 38.688912623046136 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33731", "slope": 0.0363, "distance": 7.0323286786820644e-06, "feature_x": -75.070599090981119, "feature_y": 38.68949302667, "nearest_x": -75.0706, "nearest_y": 38.6895 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065160529153445, 38.690201978543691 ], [ -75.071630719525189, 38.689358547185819 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33732", "slope": 0.0572, "distance": 2.2357091327817328e-06, "feature_x": -75.070999715587121, "feature_y": 38.689897782455269, "nearest_x": -75.071, "nearest_y": 38.6899 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065255870141939, 38.690634463716414 ], [ -75.071724056035379, 38.689804881620802 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33733", "slope": 0.0361, "distance": 2.0466709713106887e-05, "feature_x": -75.070797449632607, "feature_y": 38.690379692813273, "nearest_x": -75.0708, "nearest_y": 38.6904 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065348482679752, 38.691064025305536 ], [ -75.07181747169291, 38.690251588854352 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33734", "slope": 0.0605, "distance": 2.0882407500863876e-06, "feature_x": -75.07109974616499, "feature_y": 38.690797927244056, "nearest_x": -75.0711, "nearest_y": 38.6908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06543756319833, 38.691491332715735 ], [ -75.071910949012349, 38.690698585259469 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33735", "slope": 0.0361, "distance": 2.2594706575190386e-05, "feature_x": -75.070897328499782, "feature_y": 38.691277563782585, "nearest_x": -75.0709, "nearest_y": 38.6913 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065522408254708, 38.691917560281993 ], [ -75.072004459937148, 38.691145736664787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33736", "slope": 0.039, "distance": 8.2960812026209805e-06, "feature_x": -75.071100953317398, "feature_y": 38.691708241125482, "nearest_x": -75.0711, "nearest_y": 38.6917 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065602940859449, 38.692344240533473 ], [ -75.072097976109376, 38.691592907464404 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33737", "slope": 0.0375, "distance": 2.5767957573914448e-05, "feature_x": -75.070997118431038, "feature_y": 38.692174393668793, "nearest_x": -75.071, "nearest_y": 38.6922 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065679980210916, 38.692772749610839 ], [ -75.072188462517332, 38.692040327601006 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33738", "slope": 0.0563, "distance": 4.9424315753990738e-06, "feature_x": -75.071299460506324, "feature_y": 38.692595087101012, "nearest_x": -75.0713, "nearest_y": 38.6926 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06575449230526, 38.693203989343829 ], [ -75.072272925564121, 38.692488189273014 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33739", "slope": 0.0379, "distance": 2.8805417481999691e-05, "feature_x": -75.071096917710747, "feature_y": 38.693071359965622, "nearest_x": -75.0711, "nearest_y": 38.6931 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065827239684069, 38.693638491686464 ], [ -75.072357325893549, 38.692935712691146 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33740", "slope": 0.0561, "distance": 6.6892153612137246e-06, "feature_x": -75.071399294711895, "feature_y": 38.693493348070142, "nearest_x": -75.0714, "nearest_y": 38.6935 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065898939472049, 38.694076537491455 ], [ -75.072441650627056, 38.693382829582433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33741", "slope": 0.0645, "distance": 4.1117172303875323e-05, "feature_x": -75.072110704053202, "feature_y": 38.693873107865066, "nearest_x": -75.072115, "nearest_y": 38.693914 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065970277452521, 38.694518193918682 ], [ -75.072525890384398, 38.69382949022588 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33742", "slope": 0.0482, "distance": 8.0712861322702393e-06, "feature_x": -75.071499159553525, "feature_y": 38.694391972590111, "nearest_x": -75.0715, "nearest_y": 38.6944 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066041914980929, 38.694963330226365 ], [ -75.07261003988674, 38.694275666649837 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33743", "slope": 0.0504, "distance": 1.5074909077393864e-05, "feature_x": -75.071801572847704, "feature_y": 38.694814992632651, "nearest_x": -75.0718, "nearest_y": 38.6948 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066114489363443, 38.695411613416184 ], [ -75.072694099240749, 38.694721359437814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33743", "slope": 0.0507, "distance": 1.5074909077393864e-05, "feature_x": -75.071801572847704, "feature_y": 38.694814992632651, "nearest_x": -75.0718, "nearest_y": 38.6948 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066114489363443, 38.695411613416184 ], [ -75.072694099240749, 38.694721359437814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33744", "slope": 0.0333, "distance": 1.56910574201757e-06, "feature_x": -75.071500164787849, "feature_y": 38.695301560428724, "nearest_x": -75.0715, "nearest_y": 38.6953 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066188607847309, 38.695862483207485 ], [ -75.07277807580887, 38.695166607643891 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33745", "slope": 0.039, "distance": 7.1899178527640537e-06, "feature_x": -75.072099237502229, "feature_y": 38.695692850628291, "nearest_x": -75.0721, "nearest_y": 38.6957 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066264834950644, 38.696315103761904 ], [ -75.072861986623721, 38.695611501590953 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33746", "slope": 0.034, "distance": 9.3581175740106885e-06, "feature_x": -75.071698996420338, "feature_y": 38.696190695850795, "nearest_x": -75.0717, "nearest_y": 38.6962 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066343582219559, 38.696768350475075 ], [ -75.072947368681838, 38.696056041838489 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33747", "slope": 0.0432, "distance": 2.2885412485575013e-06, "feature_x": -75.072100248028832, "feature_y": 38.696602275061039, "nearest_x": -75.0721, "nearest_y": 38.6966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066424675327781, 38.697221030180337 ], [ -75.073036745579955, 38.696500177407728 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33748", "slope": 0.033, "distance": 9.6189470073313757e-06, "feature_x": -75.071798948866856, "feature_y": 38.697090438658009, "nearest_x": -75.0718, "nearest_y": 38.6971 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066507406681467, 38.697672168224081 ], [ -75.073126167268754, 38.696944529930839 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33749", "slope": 0.0406, "distance": 1.2401422089442283e-05, "feature_x": -75.07210136179549, "feature_y": 38.6975123264262, "nearest_x": -75.0721, "nearest_y": 38.6975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066591022381346, 38.698121096170652 ], [ -75.073215658317196, 38.697389221485146 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33749", "slope": 0.0405, "distance": 1.2401422089442283e-05, "feature_x": -75.07210136179549, "feature_y": 38.6975123264262, "nearest_x": -75.0721, "nearest_y": 38.6975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066591022381346, 38.698121096170652 ], [ -75.073215658317196, 38.697389221485146 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33750", "slope": 0.0688, "distance": 1.2373998542105026e-06, "feature_x": -75.072700135985855, "feature_y": 38.697901229904971, "nearest_x": -75.0727, "nearest_y": 38.6979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066674821266744, 38.69856742575228 ], [ -75.073305233722408, 38.697834326578239 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33751", "slope": 0.039, "distance": 4.9472607675369525e-07, "feature_x": -75.072300054172572, "feature_y": 38.69840049175118, "nearest_x": -75.0723, "nearest_y": 38.6984 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066758148799877, 38.699011002342132 ], [ -75.073394900618283, 38.698279880642616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33752", "slope": 0.0509, "distance": 6.9152654606896851e-07, "feature_x": -75.072800075113832, "feature_y": 38.698800687434996, "nearest_x": -75.0728, "nearest_y": 38.6988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066840394849493, 38.699451882665329 ], [ -75.073484659295971, 38.698725885107621 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33753", "slope": 0.0418, "distance": 1.1666095929961824e-05, "feature_x": -75.072498748299907, "feature_y": 38.699288401248296, "nearest_x": -75.0725, "nearest_y": 38.6993 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066920993000849, 38.699890334716692 ], [ -75.073574503563648, 38.699172309189336 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33754", "slope": 0.0338, "distance": 3.5820079973093942e-05, "feature_x": -75.07229621744645, "feature_y": 38.699764380196271, "nearest_x": -75.0723, "nearest_y": 38.6998 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066999421283711, 38.700326859857732 ], [ -75.073664420247511, 38.699619087414611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33755", "slope": 0.0318, "distance": 7.2312346699115648e-06, "feature_x": -75.072400749604341, "feature_y": 38.700207192276984, "nearest_x": -75.0724, "nearest_y": 38.7002 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067075204645477, 38.700762239254452 ], [ -75.073754387533882, 38.70006611138345 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33755", "slope": 0.0314, "distance": 7.2312346699115648e-06, "feature_x": -75.072400749604341, "feature_y": 38.700207192276984, "nearest_x": -75.0724, "nearest_y": 38.7002 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067075204645477, 38.700762239254452 ], [ -75.073754387533882, 38.70006611138345 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33756", "slope": 0.0328, "distance": 9.6906395464226619e-06, "feature_x": -75.072900985060784, "feature_y": 38.70060964044346, "nearest_x": -75.0729, "nearest_y": 38.7006 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067148216371066, 38.701197458508922 ], [ -75.073844377939679, 38.700513244532736 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33757", "slope": 0.0315, "distance": 5.8730400683415622e-06, "feature_x": -75.072599414409495, "feature_y": 38.701094156226951, "nearest_x": -75.0726, "nearest_y": 38.7011 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067219120491458, 38.701633302591418 ], [ -75.073924171477202, 38.700961405494787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33758", "slope": 0.0416, "distance": 8.2088358171370676e-06, "feature_x": -75.073000803675754, "feature_y": 38.701508169399659, "nearest_x": -75.073, "nearest_y": 38.7015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067288601665368, 38.702070115014436 ], [ -75.074001513992499, 38.701409723165945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33758", "slope": 0.0408, "distance": 8.2088358171370676e-06, "feature_x": -75.073000803675754, "feature_y": 38.701508169399659, "nearest_x": -75.073, "nearest_y": 38.7015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067288601665368, 38.702070115014436 ], [ -75.074001513992499, 38.701409723165945 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33759", "slope": 0.0341, "distance": 1.8313534349630708e-05, "feature_x": -75.072798237103342, "feature_y": 38.701981771513069, "nearest_x": -75.0728, "nearest_y": 38.702 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067356879601192, 38.702508011074023 ], [ -75.074078837214202, 38.70185792329324 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33760", "slope": 0.0436, "distance": 1.6009331523075399e-05, "feature_x": -75.073001517621279, "feature_y": 38.702415937236943, "nearest_x": -75.073, "nearest_y": 38.7024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067424150820443, 38.702947041254177 ], [ -75.074156138169187, 38.702305988647716 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33761", "slope": 0.0717, "distance": 2.2692211733402274e-05, "feature_x": -75.073502121945921, "feature_y": 38.702822592782454, "nearest_x": -75.0735, "nearest_y": 38.7028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067490603845187, 38.703387203023276 ], [ -75.074233415040979, 38.702753908705724 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33762", "slope": 0.0434, "distance": 4.7244447036776095e-06, "feature_x": -75.073200436531422, "feature_y": 38.703304704234057, "nearest_x": -75.0732, "nearest_y": 38.7033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067556420251663, 38.703828443150037 ], [ -75.074310667213382, 38.703201679900843 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33762", "slope": 0.0431, "distance": 4.7244447036776095e-06, "feature_x": -75.073200436531422, "feature_y": 38.703304704234057, "nearest_x": -75.0732, "nearest_y": 38.7033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067556420251663, 38.703828443150037 ], [ -75.074310667213382, 38.703201679900843 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33763", "slope": 0.0602, "distance": 2.1570375865504399e-05, "feature_x": -75.073601972555451, "feature_y": 38.703721479993945, "nearest_x": -75.0736, "nearest_y": 38.7037 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067621774694388, 38.704270654816938 ], [ -75.074387895498973, 38.703649306948265 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33764", "slope": 0.0368, "distance": 2.8250895853127077e-06, "feature_x": -75.073300256042344, "feature_y": 38.704202813462899, "nearest_x": -75.0733, "nearest_y": 38.7042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067686833931944, 38.704713669225171 ], [ -75.074465102562996, 38.704096805301475 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33764", "slope": 0.0285, "distance": 2.8250895853127077e-06, "feature_x": -75.073300256042344, "feature_y": 38.704202813462899, "nearest_x": -75.0733, "nearest_y": 38.7042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067686833931944, 38.704713669225171 ], [ -75.074465102562996, 38.704096805301475 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33765", "slope": 0.0644, "distance": 1.1172229437549299e-05, "feature_x": -75.073801004520774, "feature_y": 38.704611126978413, "nearest_x": -75.0738, "nearest_y": 38.7046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067751754802885, 38.705157240821855 ], [ -75.074542293574524, 38.704544204924751 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33765", "slope": 0.0661, "distance": 1.1172229437549299e-05, "feature_x": -75.073801004520774, "feature_y": 38.704611126978413, "nearest_x": -75.0738, "nearest_y": 38.7046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067751754802885, 38.705157240821855 ], [ -75.074542293574524, 38.704544204924751 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33766", "slope": 0.0368, "distance": 8.0938907394459187e-07, "feature_x": -75.073400072228637, "feature_y": 38.705100806159848, "nearest_x": -75.0734, "nearest_y": 38.7051 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067816615822593, 38.705601061088359 ], [ -75.074619476587429, 38.704991552501184 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33766", "slope": 0.0377, "distance": 8.0938907394459187e-07, "feature_x": -75.073400072228637, "feature_y": 38.705100806159848, "nearest_x": -75.0734, "nearest_y": 38.7051 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067816615822593, 38.705601061088359 ], [ -75.074619476587429, 38.704991552501184 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33767", "slope": 0.0595, "distance": 9.6975497353001728e-06, "feature_x": -75.073900858973971, "feature_y": 38.705509659432416, "nearest_x": -75.0739, "nearest_y": 38.7055 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067881085624364, 38.706044973352881 ], [ -75.074696659215192, 38.705438892158917 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33768", "slope": 0.0334, "distance": 7.4771833436410748e-06, "feature_x": -75.073400657531806, "feature_y": 38.706007448216077, "nearest_x": -75.0734, "nearest_y": 38.706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067944845263838, 38.706489089730788 ], [ -75.074773841293833, 38.705886222947569 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33768", "slope": 0.0337, "distance": 7.4771833436410748e-06, "feature_x": -75.073400657531806, "feature_y": 38.706007448216077, "nearest_x": -75.0734, "nearest_y": 38.706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067944845263838, 38.706489089730788 ], [ -75.074773841293833, 38.705886222947569 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33769", "slope": 0.0406, "distance": 3.3641162021983454e-05, "feature_x": -75.074167061179111, "feature_y": 38.706393487448409, "nearest_x": -75.07417, "nearest_y": 38.706427 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068007990760108, 38.706933595673206 ], [ -75.074851016676632, 38.70633350924318 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33770", "slope": 0.0351, "distance": 3.4631840108067345e-06, "feature_x": -75.073599699190083, "feature_y": 38.706896549904798, "nearest_x": -75.0736, "nearest_y": 38.7069 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068070678442609, 38.707378619005453 ], [ -75.074924389663863, 38.706781051632227 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33771", "slope": 0.06, "distance": 6.3813897319970879e-06, "feature_x": -75.074100551712093, "feature_y": 38.707306357495469, "nearest_x": -75.0741, "nearest_y": 38.7073 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068133055490733, 38.707824224923051 ], [ -75.074981936889529, 38.707229869692611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33771", "slope": 0.0579, "distance": 6.3813897319970879e-06, "feature_x": -75.074100551712093, "feature_y": 38.707306357495469, "nearest_x": -75.0741, "nearest_y": 38.7073 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068133055490733, 38.707824224923051 ], [ -75.074981936889529, 38.707229869692611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33772", "slope": 0.048, "distance": 3.3200431048926323e-05, "feature_x": -75.074353139675722, "feature_y": 38.707737923011521, "nearest_x": -75.074356, "nearest_y": 38.707771 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068195261423043, 38.708270423986498 ], [ -75.075039470102809, 38.707678572760251 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33773", "slope": 0.0727, "distance": 4.066143014174329e-06, "feature_x": -75.074299650536503, "feature_y": 38.708195948902087, "nearest_x": -75.0743, "nearest_y": 38.7082 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068257428648877, 38.708717174506589 ], [ -75.075096990129779, 38.708127167281809 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33774", "slope": 0.0372, "distance": 1.6214866726995273e-05, "feature_x": -75.073898608502745, "feature_y": 38.708683844950066, "nearest_x": -75.0739, "nearest_y": 38.7087 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068319682135851, 38.709164379562857 ], [ -75.075154499143423, 38.708575670207644 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33775", "slope": 0.0575, "distance": 3.3258693649204806e-05, "feature_x": -75.074564148346781, "feature_y": 38.70907986378451, "nearest_x": -75.074567, "nearest_y": 38.709113 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068382138177057, 38.709611878347744 ], [ -75.075212000865307, 38.709024110564243 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33776", "slope": 0.0388, "distance": 1.8226499919024845e-05, "feature_x": -75.073998438326242, "feature_y": 38.709581840526596, "nearest_x": -75.074, "nearest_y": 38.7096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068444899552219, 38.710059432336969 ], [ -75.07526950089364, 38.709472532012263 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33777", "slope": 0.0366, "distance": 2.6299553308629176e-05, "feature_x": -75.074102251344186, "feature_y": 38.710026203014209, "nearest_x": -75.0741, "nearest_y": 38.71 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068507719817532, 38.710506881151197 ], [ -75.075327004175179, 38.709920973129229 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33777", "slope": 0.0464, "distance": 2.6299553308629176e-05, "feature_x": -75.074102251344186, "feature_y": 38.710026203014209, "nearest_x": -75.0741, "nearest_y": 38.71 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068507719817532, 38.710506881151197 ], [ -75.075327004175179, 38.709920973129229 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33778", "slope": 0.0401, "distance": 2.024307514526196e-05, "feature_x": -75.074098268758888, "feature_y": 38.710479831090872, "nearest_x": -75.0741, "nearest_y": 38.7105 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068570157738634, 38.710954348229748 ], [ -75.075384509425035, 38.710369423894171 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33779", "slope": 0.045, "distance": 7.209991854403977e-06, "feature_x": -75.0744006163725, "feature_y": 38.710907183597115, "nearest_x": -75.0744, "nearest_y": 38.7109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068632176284908, 38.711402131716227 ], [ -75.075441218569537, 38.710817897049566 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33780", "slope": 0.0465, "distance": 3.0757297125226533e-05, "feature_x": -75.074297368688434, "feature_y": 38.711369355464988, "nearest_x": -75.0743, "nearest_y": 38.7114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06869399020033, 38.71185049295196 ], [ -75.075493378895445, 38.71126665932433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33780", "slope": 0.0398, "distance": 3.0757297125226533e-05, "feature_x": -75.074297368688434, "feature_y": 38.711369355464988, "nearest_x": -75.0743, "nearest_y": 38.7114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06869399020033, 38.71185049295196 ], [ -75.075493378895445, 38.71126665932433 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33781", "slope": 0.0481, "distance": 1.3817420427999877e-05, "feature_x": -75.074401184747032, "feature_y": 38.711813766534846, "nearest_x": -75.0744, "nearest_y": 38.7118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068755802554875, 38.712299607733613 ], [ -75.07554552398193, 38.711715284779892 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33782", "slope": 0.0394, "distance": 3.2640558828972835e-05, "feature_x": -75.074397190051499, "feature_y": 38.712267480617008, "nearest_x": -75.0744, "nearest_y": 38.7123 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068817807837462, 38.712749586217335 ], [ -75.075597651184168, 38.712163750667557 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33783", "slope": 0.0371, "distance": 3.28243903486192e-06, "feature_x": -75.074600284252497, "feature_y": 38.71270327010803, "nearest_x": -75.0746, "nearest_y": 38.7127 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068880193999433, 38.713200486074001 ], [ -75.075649759112096, 38.712612045034128 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33784", "slope": 0.0365, "distance": 3.4404741319377437e-05, "feature_x": -75.074496997176112, "feature_y": 38.713165726551473, "nearest_x": -75.0745, "nearest_y": 38.7132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068943143605267, 38.713652320252287 ], [ -75.075701847447974, 38.713060165152484 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0843, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069006834185188, 38.714105060150473 ], [ -75.075753916870909, 38.713508116871211 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0447, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069006834185188, 38.714105060150473 ], [ -75.075753916870909, 38.713508116871211 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0454, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069006834185188, 38.714105060150473 ], [ -75.075753916870909, 38.713508116871211 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33786", "slope": 0.0483, "distance": 3.5500955520157337e-05, "feature_x": -75.075216835422225, "feature_y": 38.714008640372029, "nearest_x": -75.07522, "nearest_y": 38.714044 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069071437814216, 38.714558634526284 ], [ -75.075805969069719, 38.713955914725474 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33787", "slope": 0.0369, "distance": 8.537037689377279e-06, "feature_x": -75.074700770838845, "feature_y": 38.714508502165607, "nearest_x": -75.0747, "nearest_y": 38.7145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069137119865914, 38.715012924036351 ], [ -75.075858006834792, 38.714403582725332 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33787", "slope": 0.0389, "distance": 8.537037689377279e-06, "feature_x": -75.074700770838845, "feature_y": 38.714508502165607, "nearest_x": -75.0747, "nearest_y": 38.7145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069137119865914, 38.715012924036351 ], [ -75.075858006834792, 38.714403582725332 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33788", "slope": 0.0485, "distance": 3.7217310176559018e-05, "feature_x": -75.075281592361293, "feature_y": 38.714908939020852, "nearest_x": -75.075285, "nearest_y": 38.714946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069204036810902, 38.715467750849953 ], [ -75.075910034225586, 38.714851155797852 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.051, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06927230715668, 38.715922878129234 ], [ -75.075962056838293, 38.715298682087308 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.0351, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06927230715668, 38.715922878129234 ], [ -75.075962056838293, 38.715298682087308 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.0339, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06927230715668, 38.715922878129234 ], [ -75.075962056838293, 38.715298682087308 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33790", "slope": 0.0537, "distance": 4.2085585438992221e-05, "feature_x": -75.075003968519425, "feature_y": 38.715841898059089, "nearest_x": -75.075, "nearest_y": 38.7158 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069341659974455, 38.716378223175106 ], [ -75.07601408166029, 38.715746221703206 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33791", "slope": 0.0304, "distance": 3.6299864359106858e-06, "feature_x": -75.074999652372028, "feature_y": 38.716296386697309, "nearest_x": -75.075, "nearest_y": 38.7163 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069411776542992, 38.716833984051178 ], [ -75.076066109911807, 38.716193785141918 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33792", "slope": 0.0579, "distance": 3.0990683851920925e-05, "feature_x": -75.075203017296289, "feature_y": 38.716730843450016, "nearest_x": -75.0752, "nearest_y": 38.7167 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069482785548544, 38.717290431760119 ], [ -75.076124957736454, 38.716640653556375 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33793", "slope": 0.044, "distance": 1.4505145834141313e-05, "feature_x": -75.075198562158334, "feature_y": 38.717185566294063, "nearest_x": -75.0752, "nearest_y": 38.7172 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069554948860173, 38.71774776579597 ], [ -75.076193384741927, 38.717086465109865 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33794", "slope": 0.0584, "distance": 2.9676404746566925e-05, "feature_x": -75.075302999966155, "feature_y": 38.71762952438317, "nearest_x": -75.0753, "nearest_y": 38.7176 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069628518889857, 38.718206107170786 ], [ -75.076261785859074, 38.717532102357183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33795", "slope": 0.0389, "distance": 1.5425184147334827e-05, "feature_x": -75.075298407065446, "feature_y": 38.718084657286241, "nearest_x": -75.0753, "nearest_y": 38.7181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069703740776674, 38.718665515233106 ], [ -75.076330156804147, 38.717977537396699 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33795", "slope": 0.0392, "distance": 1.5425184147334827e-05, "feature_x": -75.075298407065446, "feature_y": 38.718084657286241, "nearest_x": -75.0753, "nearest_y": 38.7181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069703740776674, 38.718665515233106 ], [ -75.076330156804147, 38.717977537396699 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33796", "slope": 0.0353, "distance": 3.9268254971948297e-05, "feature_x": -75.075304149594913, "feature_y": 38.718539048389346, "nearest_x": -75.0753, "nearest_y": 38.7185 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069780853541531, 38.719125998110258 ], [ -75.076398495155104, 38.718422754456348 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33797", "slope": 0.0377, "distance": 1.5933617624688499e-05, "feature_x": -75.075398274322069, "feature_y": 38.718984160107127, "nearest_x": -75.0754, "nearest_y": 38.719 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069860090267525, 38.719587517850904 ], [ -75.076466800289779, 38.718867749491174 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33798", "slope": 0.0373, "distance": 2.8126255749187346e-05, "feature_x": -75.075503126380184, "feature_y": 38.719427951958956, "nearest_x": -75.0755, "nearest_y": 38.7194 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069941677278763, 38.720049990803588 ], [ -75.076535073418881, 38.719312530396707 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33799", "slope": 0.0397, "distance": 2.7345197998237373e-05, "feature_x": -75.07559687741167, "feature_y": 38.719872833673499, "nearest_x": -75.0756, "nearest_y": 38.7199 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070026082343119, 38.720513159469341 ], [ -75.076603322574115, 38.71975714950424 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0504, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070114345165749, 38.720976185783492 ], [ -75.076671578506051, 38.720201807144996 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0458, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070114345165749, 38.720976185783492 ], [ -75.076671578506051, 38.720201807144996 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0615, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070114345165749, 38.720976185783492 ], [ -75.076671578506051, 38.720201807144996 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33801", "slope": 0.037, "distance": 2.7122059245457511e-05, "feature_x": -75.075696740432335, "feature_y": 38.72077307452291, "nearest_x": -75.0757, "nearest_y": 38.7208 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070206643179432, 38.721437699459329 ], [ -75.076739885613733, 38.720646792552309 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0631, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070301907630366, 38.721896457297376 ], [ -75.07680827588058, 38.72109231406511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0359, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070301907630366, 38.721896457297376 ], [ -75.07680827588058, 38.72109231406511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0652, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070301907630366, 38.721896457297376 ], [ -75.07680827588058, 38.72109231406511 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33803", "slope": 0.0645, "distance": 3.5707369744580827e-05, "feature_x": -75.076104447551685, "feature_y": 38.721635429303383, "nearest_x": -75.0761, "nearest_y": 38.7216 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070399048879864, 38.722351645912305 ], [ -75.07688285256711, 38.721537713677783 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33803", "slope": 0.0451, "distance": 3.5707369744580827e-05, "feature_x": -75.076104447551685, "feature_y": 38.721635429303383, "nearest_x": -75.0761, "nearest_y": 38.7216 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070399048879864, 38.722351645912305 ], [ -75.07688285256711, 38.721537713677783 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33804", "slope": 0.0387, "distance": 5.1179990007444553e-06, "feature_x": -75.076000643700326, "feature_y": 38.722105077357938, "nearest_x": -75.076, "nearest_y": 38.7221 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070497048929923, 38.722802815401579 ], [ -75.076981964089583, 38.721980666932183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33805", "slope": 0.0305, "distance": 2.513789701666175e-08, "feature_x": -75.075700003174063, "feature_y": 38.722600024936703, "nearest_x": -75.0757, "nearest_y": 38.7226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070594960552185, 38.723249821098008 ], [ -75.077081210571507, 38.722424217733646 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33805", "slope": 0.0304, "distance": 2.513789701666175e-08, "feature_x": -75.075700003174063, "feature_y": 38.722600024936703, "nearest_x": -75.0757, "nearest_y": 38.7226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070594960552185, 38.723249821098008 ], [ -75.077081210571507, 38.722424217733646 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33806", "slope": 0.0399, "distance": 5.6014220405776584e-06, "feature_x": -75.076100706039199, "feature_y": 38.723005556747026, "nearest_x": -75.0761, "nearest_y": 38.723 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070691907721979, 38.723692797609033 ], [ -75.077180587788888, 38.722868347181979 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33807", "slope": 0.0602, "distance": 2.3839334917837052e-05, "feature_x": -75.07640298395647, "feature_y": 38.723423651847561, "nearest_x": -75.0764, "nearest_y": 38.7234 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070787087112663, 38.72413216274095 ], [ -75.077280082403874, 38.723312995647518 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33808", "slope": 0.0309, "distance": 5.1374002814874528e-06, "feature_x": -75.076200635749828, "feature_y": 38.723905097911711, "nearest_x": -75.0762, "nearest_y": 38.7239 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07087977094136, 38.724568651744974 ], [ -75.077379671968458, 38.723758062790431 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33809", "slope": 0.0521, "distance": 1.1370715880512437e-05, "feature_x": -75.076601386862066, "feature_y": 38.724311285822665, "nearest_x": -75.0766, "nearest_y": 38.7243 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070969312083363, 38.725003385202221 ], [ -75.077479323301802, 38.724203400311708 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33810", "slope": 0.0354, "distance": 8.5226925986726807e-06, "feature_x": -75.076398976710465, "feature_y": 38.724791538961789, "nearest_x": -75.0764, "nearest_y": 38.7248 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071055508245209, 38.725437785347737 ], [ -75.077578995602067, 38.724648825862793 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33810", "slope": 0.0359, "distance": 8.5226925986726807e-06, "feature_x": -75.076398976710465, "feature_y": 38.724791538961789, "nearest_x": -75.0764, "nearest_y": 38.7248 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071055508245209, 38.725437785347737 ], [ -75.077578995602067, 38.724648825862793 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33811", "slope": 0.049, "distance": 1.0679975513009527e-05, "feature_x": -75.076701262882565, "feature_y": 38.725210605046186, "nearest_x": -75.0767, "nearest_y": 38.7252 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071139454320289, 38.725872922867289 ], [ -75.077678660668212, 38.725094213414849 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33812", "slope": 0.036, "distance": 2.2001914562931614e-05, "feature_x": -75.076597434846249, "feature_y": 38.725678148129816, "nearest_x": -75.0766, "nearest_y": 38.7257 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071222271529493, 38.726309129377327 ], [ -75.077762155617108, 38.725541423546453 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0505, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071304144879861, 38.726746415149101 ], [ -75.077841759359842, 38.7259889531665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0346, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071304144879861, 38.726746415149101 ], [ -75.077841759359842, 38.7259889531665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0372, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071304144879861, 38.726746415149101 ], [ -75.077841759359842, 38.7259889531665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33814", "slope": 0.033, "distance": 3.5025895173187737e-05, "feature_x": -75.07679601540066, "feature_y": 38.726565201489962, "nearest_x": -75.0768, "nearest_y": 38.7266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071385191305126, 38.727184767274075 ], [ -75.077921339846469, 38.726436346345096 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33815", "slope": 0.05, "distance": 2.9566685468415112e-06, "feature_x": -75.076999667092352, "feature_y": 38.726997062133186, "nearest_x": -75.077, "nearest_y": 38.727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071465527827982, 38.727624169275735 ], [ -75.078000897697265, 38.726883606574212 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33816", "slope": 0.0664, "distance": 7.1008494547379265e-06, "feature_x": -75.077400792407971, "feature_y": 38.727407056497192, "nearest_x": -75.0774, "nearest_y": 38.7274 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071545271586857, 38.728064601060069 ], [ -75.078080433355382, 38.727330736350218 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33817", "slope": 0.0356, "distance": 4.1173326416179204e-06, "feature_x": -75.077099543990229, "feature_y": 38.727895907997656, "nearest_x": -75.0771, "nearest_y": 38.7279 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071624539782306, 38.728506038499269 ], [ -75.078159947134239, 38.727777737439681 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33818", "slope": 0.0552, "distance": 4.5450082730819135e-06, "feature_x": -75.07759949971252, "feature_y": 38.728295482609973, "nearest_x": -75.0776, "nearest_y": 38.7283 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071703449538262, 38.728948452604769 ], [ -75.078239439276118, 38.728224611209434 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33818", "slope": 0.058, "distance": 4.5450082730819135e-06, "feature_x": -75.07759949971252, "feature_y": 38.728295482609973, "nearest_x": -75.0776, "nearest_y": 38.7283 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071703449538262, 38.728948452604769 ], [ -75.078239439276118, 38.728224611209434 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33819", "slope": 0.0351, "distance": 1.6243967133915264e-05, "feature_x": -75.077298220455248, "feature_y": 38.728783853802653, "nearest_x": -75.0773, "nearest_y": 38.7288 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071782117662551, 38.729391808204703 ], [ -75.078318910024436, 38.728671359032333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33819", "slope": 0.0361, "distance": 1.6243967133915264e-05, "feature_x": -75.077298220455248, "feature_y": 38.728783853802653, "nearest_x": -75.0773, "nearest_y": 38.7288 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071782117662551, 38.729391808204703 ], [ -75.078318910024436, 38.728671359032333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33820", "slope": 0.0856, "distance": 2.7115962089564453e-05, "feature_x": -75.077897039477222, "feature_y": 38.729173046137475, "nearest_x": -75.0779, "nearest_y": 38.7292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07186066028116, 38.729836061989296 ], [ -75.078398359712537, 38.729117982787066 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33821", "slope": 0.0633, "distance": 2.7649443340883061e-05, "feature_x": -75.077903012523649, "feature_y": 38.729627484839789, "nearest_x": -75.0779, "nearest_y": 38.7296 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071939192305791, 38.730281159722793 ], [ -75.07847778887421, 38.729564485478647 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33822", "slope": 0.0352, "distance": 4.720013799398819e-06, "feature_x": -75.077700513840838, "feature_y": 38.730104691960982, "nearest_x": -75.0777, "nearest_y": 38.7301 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072017826676387, 38.730727032335174 ], [ -75.078557198382498, 38.730010872019321 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33822", "slope": 0.0577, "distance": 4.720013799398819e-06, "feature_x": -75.077700513840838, "feature_y": 38.730104691960982, "nearest_x": -75.0777, "nearest_y": 38.7301 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072017826676387, 38.730727032335174 ], [ -75.078557198382498, 38.730010872019321 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33823", "slope": 0.0408, "distance": 3.6592789873708925e-05, "feature_x": -75.07781298485807, "feature_y": 38.730547375172534, "nearest_x": -75.077809, "nearest_y": 38.730511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072096673297096, 38.731173590491409 ], [ -75.078636589626754, 38.730457150222875 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33824", "slope": 0.0344, "distance": 3.7813589368912841e-06, "feature_x": -75.07780041230339, "feature_y": 38.73100375881382, "nearest_x": -75.0778, "nearest_y": 38.731 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072175837553957, 38.731620717080567 ], [ -75.078715954716799, 38.730903333184209 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33825", "slope": 0.0407, "distance": 3.5748975906662479e-05, "feature_x": -75.077911905757844, "feature_y": 38.731446534973394, "nearest_x": -75.077908, "nearest_y": 38.731411 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07225541826385, 38.732068256852543 ], [ -75.078795139227452, 38.731349456075399 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33826", "slope": 0.0391, "distance": 2.8726549457799106e-06, "feature_x": -75.077900314591844, "feature_y": 38.731902855377108, "nearest_x": -75.0779, "nearest_y": 38.7319 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072335626110004, 38.732515946237228 ], [ -75.078874318582919, 38.731795544258688 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33827", "slope": 0.049, "distance": 3.5690065620020836e-05, "feature_x": -75.078103916355673, "feature_y": 38.732335474539354, "nearest_x": -75.0781, "nearest_y": 38.7323 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07241665676176, 38.732963342631329 ], [ -75.0789535074708, 38.732241680482026 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33828", "slope": 0.0418, "distance": 8.9406802687833537e-06, "feature_x": -75.078099018120525, "feature_y": 38.732791113399053, "nearest_x": -75.0781, "nearest_y": 38.7328 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072498332758826, 38.733409932456745 ], [ -75.07903272079399, 38.732687948702015 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33829", "slope": 0.0553, "distance": 1.2905814985645496e-05, "feature_x": -75.078401415802389, "feature_y": 38.733212827921264, "nearest_x": -75.0784, "nearest_y": 38.7332 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072580248299133, 38.733855303243871 ], [ -75.079111968519541, 38.733134405064348 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33830", "slope": 0.046, "distance": 2.0768601641712577e-05, "feature_x": -75.078297729516407, "feature_y": 38.733679355879325, "nearest_x": -75.0783, "nearest_y": 38.7337 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072662023452366, 38.734299182625591 ], [ -75.079191256740202, 38.733581083885447 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33831", "slope": 0.0538, "distance": 1.2878535085181147e-06, "feature_x": -75.078600139923552, "feature_y": 38.734101280229687, "nearest_x": -75.0786, "nearest_y": 38.7341 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072743300180704, 38.73474140745931 ], [ -75.079270588638835, 38.734028003087481 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33832", "slope": 0.043, "distance": 3.2597047991103157e-05, "feature_x": -75.078496490529233, "feature_y": 38.734567592421371, "nearest_x": -75.0785, "nearest_y": 38.7346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07282373936512, 38.735181904111435 ], [ -75.079349965203065, 38.734475168224691 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33833", "slope": 0.0499, "distance": 1.0044256305418381e-05, "feature_x": -75.078798931694976, "feature_y": 38.734990012717631, "nearest_x": -75.0788, "nearest_y": 38.735 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072903018993259, 38.735620678091912 ], [ -75.079429385713226, 38.734922575233476 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33833", "slope": 0.0558, "distance": 1.0044256305418381e-05, "feature_x": -75.078798931694976, "feature_y": 38.734990012717631, "nearest_x": -75.0788, "nearest_y": 38.735 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072903018993259, 38.735620678091912 ], [ -75.079429385713226, 38.734922575233476 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33834", "slope": 0.0443, "distance": 3.3871144542177193e-05, "feature_x": -75.078596451957935, "feature_y": 38.735466315198828, "nearest_x": -75.0786, "nearest_y": 38.7355 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07298083326441, 38.736057811975073 ], [ -75.079508848007904, 38.735370211928348 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33835", "slope": 0.0481, "distance": 4.1707333380530263e-07, "feature_x": -75.078799957099505, "feature_y": 38.735899585138924, "nearest_x": -75.0788, "nearest_y": 38.7359 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073056892483663, 38.736493471383071 ], [ -75.079588348508551, 38.735818058141732 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33836", "slope": 0.0345, "distance": 3.5739682280868173e-05, "feature_x": -75.078696399934515, "feature_y": 38.736364442097674, "nearest_x": -75.0787, "nearest_y": 38.7364 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073130923710352, 38.736927919624335 ], [ -75.079667881957036, 38.736266084245585 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33837", "slope": 0.062, "distance": 1.9288790663980313e-06, "feature_x": -75.078899810155022, "feature_y": 38.736798080486174, "nearest_x": -75.0789, "nearest_y": 38.7368 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073202672233435, 38.737361542455432 ], [ -75.07974744078173, 38.736714247581176 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33838", "slope": 0.038, "distance": 9.4462650100658234e-06, "feature_x": -75.078499092882495, "feature_y": 38.737290597390761, "nearest_x": -75.0785, "nearest_y": 38.7373 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073271893585172, 38.737794891876241 ], [ -75.079827013967261, 38.737162486094036 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33839", "slope": 0.0398, "distance": 3.9443525908275402e-06, "feature_x": -75.07899963042297, "feature_y": 38.737696072999846, "nearest_x": -75.079, "nearest_y": 38.7377 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073338154418806, 38.738228884650724 ], [ -75.079907281553673, 38.737610652325621 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33840", "slope": 0.0307, "distance": 4.93510624564458e-05, "feature_x": -75.079004522138504, "feature_y": 38.73814914343933, "nearest_x": -75.079, "nearest_y": 38.7381 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073401486765633, 38.738664730105349 ], [ -75.079989920432794, 38.738058467905901 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33840", "slope": 0.0404, "distance": 4.93510624564458e-05, "feature_x": -75.079004522138504, "feature_y": 38.73814914343933, "nearest_x": -75.079, "nearest_y": 38.7381 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073401486765633, 38.738664730105349 ], [ -75.079989920432794, 38.738058467905901 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33841", "slope": 0.0432, "distance": 6.0739644301853322e-06, "feature_x": -75.079099453231848, "feature_y": 38.738593950695204, "nearest_x": -75.0791, "nearest_y": 38.7386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073462810244308, 38.7391034202886 ], [ -75.080072508206626, 38.738506000842172 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33841", "slope": 0.0419, "distance": 6.0739644301853322e-06, "feature_x": -75.079099453231848, "feature_y": 38.738593950695204, "nearest_x": -75.0791, "nearest_y": 38.7386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073462810244308, 38.7391034202886 ], [ -75.080072508206626, 38.738506000842172 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33842", "slope": 0.0502, "distance": 2.937160198509361e-05, "feature_x": -75.079302612904044, "feature_y": 38.739029255148871, "nearest_x": -75.0793, "nearest_y": 38.739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073523237901654, 38.739545436158473 ], [ -75.080155021203225, 38.738953122872239 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33843", "slope": 0.0364, "distance": 1.689843369539317e-05, "feature_x": -75.079298504992778, "feature_y": 38.739483167827984, "nearest_x": -75.0793, "nearest_y": 38.7395 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073583811015325, 38.739990738021767 ], [ -75.080237448047356, 38.73939977237233 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33843", "slope": 0.0402, "distance": 1.689843369539317e-05, "feature_x": -75.079298504992778, "feature_y": 38.739483167827984, "nearest_x": -75.0793, "nearest_y": 38.7395 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073583811015325, 38.739990738021767 ], [ -75.080237448047356, 38.73939977237233 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33844", "slope": 0.0563, "distance": 1.8707578212764509e-05, "feature_x": -75.079501655076868, "feature_y": 38.73991863422129, "nearest_x": -75.0795, "nearest_y": 38.7399 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073645505296426, 38.740438772834878 ], [ -75.080319792165781, 38.739845967929085 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33845", "slope": 0.0382, "distance": 2.0533725163495893e-05, "feature_x": -75.07957517681416, "feature_y": 38.74036554737517, "nearest_x": -75.079577, "nearest_y": 38.740386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073709194293386, 38.740888452201752 ], [ -75.080402076880702, 38.740291835932226 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33846", "slope": 0.0385, "distance": 1.67404228457621e-05, "feature_x": -75.079601492908836, "feature_y": 38.740816673721248, "nearest_x": -75.0796, "nearest_y": 38.7408 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073775176018188, 38.741338342510552 ], [ -75.080484348226236, 38.740737625829894 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33847", "slope": 0.0357, "distance": 1.98634922245291e-05, "feature_x": -75.079646224346192, "feature_y": 38.741266216032329, "nearest_x": -75.079648, "nearest_y": 38.741286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073842870534875, 38.741787079568851 ], [ -75.080566655610454, 38.741183605338747 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33848", "slope": 0.0364, "distance": 1.9074951942892867e-05, "feature_x": -75.079655297690252, "feature_y": 38.741719001159687, "nearest_x": -75.079657, "nearest_y": 38.741738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073911348912262, 38.742233663097899 ], [ -75.08064903359309, 38.741629961708675 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33849", "slope": 0.0332, "distance": 1.9049552831699096e-05, "feature_x": -75.079661311870382, "feature_y": 38.742172025393771, "nearest_x": -75.079663, "nearest_y": 38.742191 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073979734904583, 38.742677502987867 ], [ -75.080731503915487, 38.742076812725976 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33850", "slope": 0.0444, "distance": 4.2875857476510146e-06, "feature_x": -75.079999624986812, "feature_y": 38.742595728845984, "nearest_x": -75.08, "nearest_y": 38.7426 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074047210465068, 38.74311835901419 ], [ -75.080814077726259, 38.742524218777142 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33851", "slope": 0.0332, "distance": 3.3251719579755059e-05, "feature_x": -75.079797147374677, "feature_y": 38.743066870868049, "nearest_x": -75.0798, "nearest_y": 38.7431 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074113011975271, 38.743556310453648 ], [ -75.080912504238952, 38.742970831670689 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33852", "slope": 0.0432, "distance": 5.4736492643076182e-06, "feature_x": -75.080099542126973, "feature_y": 38.743494545534986, "nearest_x": -75.0801, "nearest_y": 38.7435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074176427430288, 38.743991759187338 ], [ -75.081019107312343, 38.743417352978739 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33852", "slope": 0.0434, "distance": 5.4736492643076182e-06, "feature_x": -75.080099542126973, "feature_y": 38.743494545534986, "nearest_x": -75.0801, "nearest_y": 38.7435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074176427430288, 38.743991759187338 ], [ -75.081019107312343, 38.743417352978739 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33853", "slope": 0.0443, "distance": 3.9678712953071914e-05, "feature_x": -75.080203220856376, "feature_y": 38.743939547772953, "nearest_x": -75.0802, "nearest_y": 38.7439 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074236794205021, 38.744425466495741 ], [ -75.081125839110214, 38.743864407741953 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33854", "slope": 0.0297, "distance": 1.0716733087019735e-06, "feature_x": -75.080100084184195, "feature_y": 38.74440106836169, "nearest_x": -75.0801, "nearest_y": 38.7444 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074293541070972, 38.744858609260355 ], [ -75.081232658667943, 38.744311824359364 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33855", "slope": 0.0496, "distance": 1.5911578811375318e-05, "feature_x": -75.080896790169589, "feature_y": 38.744793134482336, "nearest_x": -75.080898, "nearest_y": 38.744809 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07434672790788, 38.745292611694993 ], [ -75.081339511502449, 38.744759374617395 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33856", "slope": 0.0279, "distance": 9.1354257572561213e-07, "feature_x": -75.080199932551665, "feature_y": 38.745299088950738, "nearest_x": -75.0802, "nearest_y": 38.7453 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074397142354314, 38.745728690912173 ], [ -75.081446338969698, 38.745206812886337 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33857", "slope": 0.0486, "distance": 1.2738929578022888e-05, "feature_x": -75.081091081633204, "feature_y": 38.745687294216701, "nearest_x": -75.081092, "nearest_y": 38.7457 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074445676052804, 38.746167620355735 ], [ -75.08155308418894, 38.745653900934514 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33858", "slope": 0.0256, "distance": 2.9109601418098993e-06, "feature_x": -75.08029979362702, "feature_y": 38.746197096364497, "nearest_x": -75.0803, "nearest_y": 38.7462 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074493142328464, 38.746609798273454 ], [ -75.081659700265277, 38.74610044236605 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33859", "slope": 0.0462, "distance": 1.0053458277733758e-05, "feature_x": -75.081231293543098, "feature_y": 38.746583971393818, "nearest_x": -75.081232, "nearest_y": 38.746594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074540322653519, 38.74705531132529 ], [ -75.081766152927358, 38.746546293665176 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33860", "slope": 0.0139, "distance": 5.0009006961323021e-06, "feature_x": -75.080399648979039, "feature_y": 38.747095011433871, "nearest_x": -75.0804, "nearest_y": 38.7471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074587972891678, 38.747503950598698 ], [ -75.081872424172786, 38.746991379461157 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33861", "slope": 0.0282, "distance": 1.177663344219664e-05, "feature_x": -75.081250168791726, "feature_y": 38.747487252736995, "nearest_x": -75.081251, "nearest_y": 38.747499 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074636821943329, 38.747955197364114 ], [ -75.081955105063386, 38.74743737313014 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33862", "slope": 0.0179, "distance": 7.2684684547799311e-06, "feature_x": -75.080499481779839, "feature_y": 38.747992750028857, "nearest_x": -75.0805, "nearest_y": 38.748 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074687580216121, 38.74840817852165 ], [ -75.081982967474104, 38.747886712061884 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33863", "slope": 0.0455, "distance": 1.2741006884872008e-05, "feature_x": -75.081328080923157, "feature_y": 38.748385292185311, "nearest_x": -75.081329, "nearest_y": 38.748398 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074740684169143, 38.748861717434913 ], [ -75.082010821735039, 38.748335913808106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33864", "slope": 0.0168, "distance": 9.4954396880644488e-06, "feature_x": -75.080599308030173, "feature_y": 38.748890529807149, "nearest_x": -75.0806, "nearest_y": 38.7489 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07479586050971, 38.749314577198241 ], [ -75.08203869130476, 38.74878535668028 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33865", "slope": 0.0621, "distance": 1.3463021469815237e-05, "feature_x": -75.081478012745478, "feature_y": 38.749278573225418, "nearest_x": -75.081479, "nearest_y": 38.749292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074852390748362, 38.749765747213758 ], [ -75.082066591998043, 38.749235295703393 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33866", "slope": 0.0197, "distance": 4.1469666986989279e-06, "feature_x": -75.080599695695739, "feature_y": 38.74979586421329, "nearest_x": -75.0806, "nearest_y": 38.7498 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074909568385081, 38.750214534252308 ], [ -75.082094532852395, 38.749685876598505 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33867", "slope": 0.0138, "distance": 1.5962772162794368e-05, "feature_x": -75.081111835680929, "feature_y": 38.750211079746983, "nearest_x": -75.081113, "nearest_y": 38.750227 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074966720850114, 38.750660499388857 ], [ -75.082122517880705, 38.750137164052191 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33868", "slope": 0.0131, "distance": 6.1628662836812352e-06, "feature_x": -75.08069955649367, "feature_y": 38.750693853112743, "nearest_x": -75.0807, "nearest_y": 38.7507 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075023207178489, 38.751103409480514 ], [ -75.082150547337349, 38.75058916213856 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33869", "slope": 0.0302, "distance": 1.0990450374580659e-05, "feature_x": -75.081609225836701, "feature_y": 38.751082036849418, "nearest_x": -75.08161, "nearest_y": 38.751093 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075078416285592, 38.751543210216354 ], [ -75.082178618637897, 38.751041829154921 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33870", "slope": 0.0348, "distance": 1.2358768271829405e-05, "feature_x": -75.081454154890821, "feature_y": 38.751546670160437, "nearest_x": -75.081455, "nearest_y": 38.751559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075131765333822, 38.751980018015196 ], [ -75.082206726973311, 38.751495087527864 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33871", "slope": 0.0255, "distance": 1.3712534048814755e-05, "feature_x": -75.081318097212076, "feature_y": 38.752009317216512, "nearest_x": -75.081319, "nearest_y": 38.752023 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075182697879455, 38.752414129906391 ], [ -75.082234865630127, 38.751948828979451 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33872", "slope": 0.0223, "distance": 8.8770088497997737e-06, "feature_x": -75.081529441729103, "feature_y": 38.752449140563236, "nearest_x": -75.08153, "nearest_y": 38.752458 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0752306815792, 38.752846052303127 ], [ -75.082273678246978, 38.752402243046234 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0445, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07527520538008, 38.753276551443001 ], [ -75.082312668001109, 38.752855884870336 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.093, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07527520538008, 38.753276551443001 ], [ -75.082312668001109, 38.752855884870336 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0458, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07527520538008, 38.753276551443001 ], [ -75.082312668001109, 38.752855884870336 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0853, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07527520538008, 38.753276551443001 ], [ -75.082312668001109, 38.752855884870336 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33874", "slope": 0.0245, "distance": 1.4131872057975371e-05, "feature_x": -75.080999203498166, "feature_y": 38.75338589059205, "nearest_x": -75.081, "nearest_y": 38.7534 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075315776517201, 38.753706730423133 ], [ -75.082351659571643, 38.753309541977103 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33875", "slope": 0.0177, "distance": 1.0583390532882531e-05, "feature_x": -75.081462437094913, "feature_y": 38.75381243158985, "nearest_x": -75.081463, "nearest_y": 38.753823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075352568109039, 38.754137861458453 ], [ -75.082390633936612, 38.75376299305411 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33876", "slope": 0.015, "distance": 1.6894711744238214e-05, "feature_x": -75.081099150219359, "feature_y": 38.754283126673187, "nearest_x": -75.0811, "nearest_y": 38.7543 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075386708346429, 38.754570818755745 ], [ -75.082429581204067, 38.754216123022346 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33877", "slope": 0.0267, "distance": 1.8565248128487242e-05, "feature_x": -75.081892113618395, "feature_y": 38.7546964559237, "nearest_x": -75.081893, "nearest_y": 38.754715 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075419035269618, 38.755005860254684 ], [ -75.082468499103811, 38.754668905482333 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33878", "slope": 0.0365, "distance": 1.6210021269463518e-05, "feature_x": -75.081641261968727, "feature_y": 38.755160806788481, "nearest_x": -75.081642, "nearest_y": 38.755177 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075449799382298, 38.755442992505195 ], [ -75.082507386890228, 38.755121331772955 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0249, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0276, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0279, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0316, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0319, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.033, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0242, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0249, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075479252333707, 38.755882201603789 ], [ -75.082546243668006, 38.755573391491183 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33880", "slope": 0.0348, "distance": 1.4828764679743284e-05, "feature_x": -75.081657375379592, "feature_y": 38.756064184396358, "nearest_x": -75.081658, "nearest_y": 38.756079 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075507647624434, 38.756323454661903 ], [ -75.082585068452559, 38.756025073196817 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33881", "slope": 0.0298, "distance": 1.406275014787725e-05, "feature_x": -75.081657424505508, "feature_y": 38.756515949030359, "nearest_x": -75.081658, "nearest_y": 38.75653 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075535240805095, 38.756766699203339 ], [ -75.082609046640727, 38.756476972837106 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33882", "slope": 0.0329, "distance": 1.8107394942320938e-05, "feature_x": -75.081299274790638, "feature_y": 38.756981907133365, "nearest_x": -75.0813, "nearest_y": 38.757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075562289390049, 38.757211860496653 ], [ -75.082624780833925, 38.75692877738814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33882", "slope": 0.0335, "distance": 1.8107394942320938e-05, "feature_x": -75.081299274790638, "feature_y": 38.756981907133365, "nearest_x": -75.0813, "nearest_y": 38.757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075562289390049, 38.757211860496653 ], [ -75.082624780833925, 38.75692877738814 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33883", "slope": 0.0433, "distance": 1.2999160876010166e-05, "feature_x": -75.081834486661393, "feature_y": 38.757412010978982, "nearest_x": -75.081835, "nearest_y": 38.757425 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075589052480908, 38.757658836542362 ], [ -75.082640500417057, 38.757380156540428 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33884", "slope": 0.0444, "distance": 1.2917773244376887e-05, "feature_x": -75.081867493329, "feature_y": 38.757862092167102, "nearest_x": -75.081868, "nearest_y": 38.757875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075615790054485, 38.758107490197361 ], [ -75.082656206174434, 38.757831132831669 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33885", "slope": 0.0421, "distance": 1.2504548000492619e-05, "feature_x": -75.081913509562753, "feature_y": 38.758311505073351, "nearest_x": -75.081914, "nearest_y": 38.758324 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075642761833407, 38.758557637626417 ], [ -75.082671899196598, 38.758281737590295 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33886", "slope": 0.0545, "distance": 1.2033723612948268e-05, "feature_x": -75.081979525394914, "feature_y": 38.758759975639144, "nearest_x": -75.08198, "nearest_y": 38.758772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075670304887723, 38.759009002443896 ], [ -75.082687581490433, 38.758732028455043 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33887", "slope": 0.0551, "distance": 1.206127946856357e-05, "feature_x": -75.082032520702768, "feature_y": 38.759208948247569, "nearest_x": -75.082033, "nearest_y": 38.759221 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075699721233732, 38.759460803172672 ], [ -75.082703262371226, 38.759182272905406 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33888", "slope": 0.0576, "distance": 1.2074038967316863e-05, "feature_x": -75.082116519152507, "feature_y": 38.759656935539688, "nearest_x": -75.082117, "nearest_y": 38.759669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07573183986338, 38.759911406684765 ], [ -75.082718957633219, 38.759632924433866 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33889", "slope": 0.0633, "distance": 1.192004496406868e-05, "feature_x": -75.082106530585946, "feature_y": 38.760109089201435, "nearest_x": -75.082107, "nearest_y": 38.760121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07576566615802, 38.760358987715513 ], [ -75.082734679477923, 38.760084333353632 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33890", "slope": 0.0387, "distance": 1.4478374940483572e-05, "feature_x": -75.082047447113737, "feature_y": 38.760563532185458, "nearest_x": -75.082048, "nearest_y": 38.760578 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075799772409553, 38.760802286528957 ], [ -75.082738392734285, 38.76053712775888 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33891", "slope": 0.049, "distance": 1.2180040513270321e-05, "feature_x": -75.082133559812192, "feature_y": 38.761012827916296, "nearest_x": -75.082134, "nearest_y": 38.761025 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075832791677115, 38.761240687122601 ], [ -75.082715154086245, 38.760991795304584 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33892", "slope": 0.0286, "distance": 1.1427295289858328e-05, "feature_x": -75.082135620206472, "feature_y": 38.761465579017795, "nearest_x": -75.082136, "nearest_y": 38.761477 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075863415499228, 38.761674155014425 ], [ -75.08269188354997, 38.761447081027583 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33893", "slope": 0.0399, "distance": 1.3710611769682263e-05, "feature_x": -75.082006594563879, "feature_y": 38.76192229538411, "nearest_x": -75.082007, "nearest_y": 38.761936 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075890384437486, 38.76210323679674 ], [ -75.082668595134834, 38.761902710818504 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33894", "slope": 0.0484, "distance": 1.3689655910836762e-05, "feature_x": -75.081976652899627, "feature_y": 38.76237531474515, "nearest_x": -75.081977, "nearest_y": 38.762389 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075912469889516, 38.762529121175334 ], [ -75.082645305658204, 38.762358355643869 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33895", "slope": 0.0518, "distance": 1.2775563096760067e-05, "feature_x": -75.082020732606466, "feature_y": 38.762826227235493, "nearest_x": -75.082021, "nearest_y": 38.762839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075928447495997, 38.762953767179518 ], [ -75.082622034355254, 38.762813639185197 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33896", "slope": 0.0466, "distance": 1.3404560225263257e-05, "feature_x": -75.081499774686904, "feature_y": 38.763286597333519, "nearest_x": -75.0815, "nearest_y": 38.7633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075937066286187, 38.763380112388916 ], [ -75.082598803715072, 38.763268121484515 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33897", "slope": 0.07, "distance": 1.7825704826415669e-05, "feature_x": -75.081898748695238, "feature_y": 38.763731176066692, "nearest_x": -75.081899, "nearest_y": 38.763749 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075931815208946, 38.763815305579449 ], [ -75.082575622424329, 38.763721632629156 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33898", "slope": 0.0393, "distance": 8.0156926829533768e-06, "feature_x": -75.081299879495745, "feature_y": 38.764191985213174, "nearest_x": -75.0813, "nearest_y": 38.7642 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075905652870091, 38.764273088708869 ], [ -75.082564186292913, 38.764172976056166 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33899", "slope": 0.0674, "distance": 2.3015468626357049e-05, "feature_x": -75.081776485198475, "feature_y": 38.764635990289541, "nearest_x": -75.081777, "nearest_y": 38.764659 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075864846935033, 38.764768252728629 ], [ -75.08257789321263, 38.764618060204185 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33900", "slope": 0.0447, "distance": 2.5427170626609827e-06, "feature_x": -75.081399902902405, "feature_y": 38.765097459137522, "nearest_x": -75.0814, "nearest_y": 38.7651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075825280959464, 38.765310490099608 ], [ -75.082591255013128, 38.765051932303791 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33901", "slope": 0.0719, "distance": 3.9376428975149799e-05, "feature_x": -75.081705499219382, "feature_y": 38.765527703063029, "nearest_x": -75.081708, "nearest_y": 38.765567 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075805165722301, 38.765903188808679 ], [ -75.08260414610794, 38.765470514923209 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33902", "slope": 0.0378, "distance": 6.3311852343150379e-06, "feature_x": -75.081399383481667, "feature_y": 38.765993698903934, "nearest_x": -75.0814, "nearest_y": 38.766 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075836598514059, 38.766537978649694 ], [ -75.082616590981559, 38.765874603631971 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33903", "slope": 0.0573, "distance": 2.2244258527535801e-05, "feature_x": -75.081723991445259, "feature_y": 38.766401042193465, "nearest_x": -75.081721, "nearest_y": 38.766379 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07596488049208, 38.767182637053814 ], [ -75.082632677244348, 38.76627772035507 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33904", "slope": 0.0601, "distance": 1.7972757693285528e-05, "feature_x": -75.081784989502879, "feature_y": 38.766845722383913, "nearest_x": -75.081782, "nearest_y": 38.766828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076184645092113, 38.767790417284992 ], [ -75.082832456682311, 38.766669030232343 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33905", "slope": 0.0532, "distance": 0.00012360673947885321, "feature_x": -75.081805094862943, "feature_y": 38.767310430034797, "nearest_x": -75.081782, "nearest_y": 38.767189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0764387191889, 38.768331064764176 ], [ -75.083040009399255, 38.767075560778501 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33906", "slope": 0.0337, "distance": 4.9004641072942909e-06, "feature_x": -75.082200955654841, "feature_y": 38.767704806378291, "nearest_x": -75.0822, "nearest_y": 38.7677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076675177821144, 38.768803499824166 ], [ -75.083254339809713, 38.767495361427407 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33907", "slope": 0.049, "distance": 6.6960184053306729e-06, "feature_x": -75.082598698589379, "feature_y": 38.768093431667417, "nearest_x": -75.0826, "nearest_y": 38.7681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076858924036358, 38.769230676698001 ], [ -75.083407480833486, 38.767933184330268 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33907", "slope": 0.0556, "distance": 6.6960184053306729e-06, "feature_x": -75.082598698589379, "feature_y": 38.768093431667417, "nearest_x": -75.0826, "nearest_y": 38.7681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076858924036358, 38.769230676698001 ], [ -75.083407480833486, 38.767933184330268 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33908", "slope": 0.0425, "distance": 1.8800887111862152e-05, "feature_x": -75.082803569204827, "feature_y": 38.768518458985163, "nearest_x": -75.0828, "nearest_y": 38.7685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07700220241783, 38.769640203551049 ], [ -75.083504467147307, 38.768382934291225 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33909", "slope": 0.0387, "distance": 1.5926348636989405e-05, "feature_x": -75.082797069038833, "feature_y": 38.768984345670006, "nearest_x": -75.0828, "nearest_y": 38.769 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077134777680399, 38.770044496831765 ], [ -75.083601673646228, 38.768833699499524 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33909", "slope": 0.0337, "distance": 1.5926348636989405e-05, "feature_x": -75.082797069038833, "feature_y": 38.768984345670006, "nearest_x": -75.0828, "nearest_y": 38.769 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077134777680399, 38.770044496831765 ], [ -75.083601673646228, 38.768833699499524 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33910", "slope": 0.0444, "distance": 1.1126037779882243e-05, "feature_x": -75.083001972638215, "feature_y": 38.76941094976781, "nearest_x": -75.083, "nearest_y": 38.7694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07726169893273, 38.770445079758311 ], [ -75.083699075400801, 38.769285364314875 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33911", "slope": 0.0408, "distance": 4.1924068919574888e-05, "feature_x": -75.083092885947266, "feature_y": 38.769858683927964, "nearest_x": -75.0831, "nearest_y": 38.7699 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077382115510233, 38.770841999137502 ], [ -75.083796583621137, 38.769737516979781 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33911", "slope": 0.0413, "distance": 4.1924068919574888e-05, "feature_x": -75.083092885947266, "feature_y": 38.769858683927964, "nearest_x": -75.0831, "nearest_y": 38.7699 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077382115510233, 38.770841999137502 ], [ -75.083796583621137, 38.769737516979781 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33912", "slope": 0.0382, "distance": 3.1761968920168364e-06, "feature_x": -75.083200512309247, "feature_y": 38.770303134607779, "nearest_x": -75.0832, "nearest_y": 38.7703 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077495260982417, 38.771235580754308 ], [ -75.083894115718721, 38.770189774513838 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33913", "slope": 0.0476, "distance": 3.2551314394395311e-05, "feature_x": -75.08340495685971, "feature_y": 38.770732171689581, "nearest_x": -75.0834, "nearest_y": 38.7707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077600446424469, 38.77162650283293 ], [ -75.083991495488007, 38.770641800629363 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33914", "slope": 0.0425, "distance": 7.0348698232898857e-06, "feature_x": -75.083301005085815, "feature_y": 38.771206962700333, "nearest_x": -75.0833, "nearest_y": 38.7712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077697052439206, 38.772015909389587 ], [ -75.08405948107206, 38.771097474509297 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33914", "slope": 0.0398, "distance": 7.0348698232898857e-06, "feature_x": -75.083301005085815, "feature_y": 38.771206962700333, "nearest_x": -75.0833, "nearest_y": 38.7712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077697052439206, 38.772015909389587 ], [ -75.08405948107206, 38.771097474509297 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33915", "slope": 0.0616, "distance": 3.2057225051091147e-05, "feature_x": -75.083428277179095, "feature_y": 38.771645770606177, "nearest_x": -75.083424, "nearest_y": 38.771614 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077784519561874, 38.772405572354735 ], [ -75.084127247026956, 38.771551670443017 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33916", "slope": 0.0371, "distance": 4.0929306403659229e-06, "feature_x": -75.083400509209042, "feature_y": 38.772104061131294, "nearest_x": -75.0834, "nearest_y": 38.7721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077862586091243, 38.772798439207271 ], [ -75.084194805146666, 38.772004467533982 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33916", "slope": 0.0411, "distance": 4.0929306403659229e-06, "feature_x": -75.083400509209042, "feature_y": 38.772104061131294, "nearest_x": -75.0834, "nearest_y": 38.7721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077862586091243, 38.772798439207271 ], [ -75.084194805146666, 38.772004467533982 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33917", "slope": 0.0524, "distance": 3.1172818987560263e-05, "feature_x": -75.083532628357503, "feature_y": 38.772541960937737, "nearest_x": -75.083529, "nearest_y": 38.772511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077932316148647, 38.773198269703883 ], [ -75.08426224352668, 38.772456456270575 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33918", "slope": 0.0717, "distance": 4.1588670330692229e-05, "feature_x": -75.083375568894212, "feature_y": 38.773013336941176, "nearest_x": -75.083371, "nearest_y": 38.772972 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077996002909913, 38.7736079302326 ], [ -75.08432959991724, 38.772907889689897 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33919", "slope": 0.0476, "distance": 3.2073851366099191e-05, "feature_x": -75.083703372025568, "feature_y": 38.773431896102977, "nearest_x": -75.0837, "nearest_y": 38.7734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078056025234815, 38.774028928218158 ], [ -75.084396846686417, 38.773358582623402 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33920", "slope": 0.046, "distance": 1.2961205017110807e-05, "feature_x": -75.083698672819125, "feature_y": 38.773887106923311, "nearest_x": -75.0837, "nearest_y": 38.7739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078114641431497, 38.774461913062744 ], [ -75.084463953361094, 38.773808330870068 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33920", "slope": 0.0534, "distance": 1.2961205017110807e-05, "feature_x": -75.083698672819125, "feature_y": 38.773887106923311, "nearest_x": -75.0837, "nearest_y": 38.7739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078114641431497, 38.774461913062744 ], [ -75.084463953361094, 38.773808330870068 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33921", "slope": 0.0449, "distance": 3.1488567685280261e-05, "feature_x": -75.083803202392829, "feature_y": 38.77433132530247, "nearest_x": -75.0838, "nearest_y": 38.7743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078174073072105, 38.77490679247979 ], [ -75.084530889974758, 38.774256933634611 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33922", "slope": 0.0903, "distance": 3.8067376161965603e-05, "feature_x": -75.08367391998614, "feature_y": 38.774799865008077, "nearest_x": -75.08367, "nearest_y": 38.774762 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078236537739187, 38.775362771609906 ], [ -75.084597633596672, 38.774704237283935 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33923", "slope": 0.0556, "distance": 3.1491168926848984e-05, "feature_x": -75.083903338805669, "feature_y": 38.775231313672684, "nearest_x": -75.0839, "nearest_y": 38.7752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078304233748327, 38.775828315625212 ], [ -75.08466417644496, 38.775150189715987 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33923", "slope": 0.0769, "distance": 3.1491168926848984e-05, "feature_x": -75.083903338805669, "feature_y": 38.775231313672684, "nearest_x": -75.0839, "nearest_y": 38.7752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078304233748327, 38.775828315625212 ], [ -75.08466417644496, 38.775150189715987 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33924", "slope": 0.0627, "distance": 1.2687220891913409e-05, "feature_x": -75.083898598064579, "feature_y": 38.775687390473799, "nearest_x": -75.0839, "nearest_y": 38.7757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078379277345135, 38.776301032185167 ], [ -75.084748171335747, 38.775592934358173 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33924", "slope": 0.0664, "distance": 1.2687220891913409e-05, "feature_x": -75.083898598064579, "feature_y": 38.775687390473799, "nearest_x": -75.0839, "nearest_y": 38.7757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078379277345135, 38.776301032185167 ], [ -75.084748171335747, 38.775592934358173 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33925", "slope": 0.0743, "distance": 1.9871887205644441e-05, "feature_x": -75.084102302930802, "feature_y": 38.776119737994094, "nearest_x": -75.0841, "nearest_y": 38.7761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078463366789805, 38.776777660965259 ], [ -75.084853169000056, 38.776032130682559 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33926", "slope": 0.0916, "distance": 2.3352657705658595e-05, "feature_x": -75.084149160403626, "feature_y": 38.776569820627394, "nearest_x": -75.084152, "nearest_y": 38.776593 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078556325411739, 38.777254972648599 ], [ -75.084958025348783, 38.776470730371223 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33927", "slope": 0.0546, "distance": 7.1367525273471432e-06, "feature_x": -75.084300907248888, "feature_y": 38.777007078851327, "nearest_x": -75.0843, "nearest_y": 38.777 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078656418934528, 38.777730495059387 ], [ -75.085062904235045, 38.776909418808543 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33927", "slope": 0.0733, "distance": 7.1367525273471432e-06, "feature_x": -75.084300907248888, "feature_y": 38.777007078851327, "nearest_x": -75.0843, "nearest_y": 38.777 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078656418934528, 38.777730495059387 ], [ -75.085062904235045, 38.776909418808543 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33928", "slope": 0.063, "distance": 2.3156264545258688e-05, "feature_x": -75.084293940407733, "feature_y": 38.777465046754415, "nearest_x": -75.084297, "nearest_y": 38.777488 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078761974641239, 38.778202439628835 ], [ -75.085167890782103, 38.777348552038816 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33929", "slope": 0.056, "distance": 5.1783023901898697e-06, "feature_x": -75.08449929376232, "feature_y": 38.777894870083436, "nearest_x": -75.0845, "nearest_y": 38.7779 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078871463755803, 38.778669655707873 ], [ -75.08527303722083, 38.777788348509766 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33930", "slope": 0.0242, "distance": 1.0451499983219754e-05, "feature_x": -75.084801460642723, "feature_y": 38.778310348931093, "nearest_x": -75.0848, "nearest_y": 38.7783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078983450945358, 38.779131499773342 ], [ -75.085378371254649, 38.77822892406941 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33931", "slope": 0.0637, "distance": 2.7074271481650451e-06, "feature_x": -75.084599615067148, "feature_y": 38.778797320076777, "nearest_x": -75.0846, "nearest_y": 38.7788 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079096602279535, 38.77958774957574 ], [ -75.085483899231107, 38.778670305236787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33931", "slope": 0.053, "distance": 2.7074271481650451e-06, "feature_x": -75.084599615067148, "feature_y": 38.778797320076777, "nearest_x": -75.0846, "nearest_y": 38.7788 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079096602279535, 38.77958774957574 ], [ -75.085483899231107, 38.778670305236787 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33932", "slope": 0.0339, "distance": 2.0846318591669129e-05, "feature_x": -75.084729005300062, "feature_y": 38.779237369906177, "nearest_x": -75.084732, "nearest_y": 38.779258 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079209692610448, 38.780038562840069 ], [ -75.085589609468698, 38.779112443123161 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33933", "slope": 0.0904, "distance": 1.8324719842710057e-05, "feature_x": -75.085190356367164, "feature_y": 38.779628866975905, "nearest_x": -75.085193, "nearest_y": 38.779647 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07932161291717, 38.780484477318161 ], [ -75.085695475065805, 38.779555225184211 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33934", "slope": 0.0561, "distance": 6.6076693891022099e-07, "feature_x": -75.085100095252812, "feature_y": 38.780100653865311, "nearest_x": -75.0851, "nearest_y": 38.7801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079431378955562, 38.780926452651748 ], [ -75.085801455555597, 38.779998482146617 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33935", "slope": 0.0496, "distance": 1.8825014442662957e-05, "feature_x": -75.08522929743431, "feature_y": 38.780540369989062, "nearest_x": -75.085232, "nearest_y": 38.780559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079538143528154, 38.781365958196012 ], [ -75.085907983853673, 38.78044191622849 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33936", "slope": 0.0811, "distance": 1.6650575205860192e-05, "feature_x": -75.085583622220469, "feature_y": 38.7809475200783, "nearest_x": -75.085586, "nearest_y": 38.780964 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079641715035521, 38.781804838797278 ], [ -75.086017821237363, 38.780884872357063 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33937", "slope": 0.0902, "distance": 1.6425222517305315e-05, "feature_x": -75.08571666582894, "feature_y": 38.781386741476688, "nearest_x": -75.085719, "nearest_y": 38.781403 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079744029319514, 38.782244208971868 ], [ -75.086127638038647, 38.781327739843043 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33938", "slope": 0.0519, "distance": 9.6329406577925138e-06, "feature_x": -75.085398637195524, "feature_y": 38.781890463946851, "nearest_x": -75.0854, "nearest_y": 38.7819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079846790292038, 38.782683882538734 ], [ -75.086237451534515, 38.781770588362512 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33939", "slope": 0.0815, "distance": 1.6436119655201908e-05, "feature_x": -75.085916685980379, "feature_y": 38.782274727589531, "nearest_x": -75.085919, "nearest_y": 38.782291 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079949751497651, 38.783123256055703 ], [ -75.086347280793902, 38.782213494814528 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33940", "slope": 0.087, "distance": 1.5945511971800391e-05, "feature_x": -75.086027768134613, "feature_y": 38.782717211455768, "nearest_x": -75.08603, "nearest_y": 38.782733 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080052513549063, 38.783561872222066 ], [ -75.086457139795073, 38.782656515565648 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33941", "slope": 0.0537, "distance": 6.6504103565769283e-06, "feature_x": -75.085899075911414, "feature_y": 38.783193414104602, "nearest_x": -75.0859, "nearest_y": 38.7832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080154714590506, 38.78399942428004 ], [ -75.086567038332262, 38.783099690106766 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33941", "slope": 0.0671, "distance": 6.6504103565769283e-06, "feature_x": -75.085899075911414, "feature_y": 38.783193414104602, "nearest_x": -75.0859, "nearest_y": 38.7832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080154714590506, 38.78399942428004 ], [ -75.086567038332262, 38.783099690106766 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33942", "slope": 0.0771, "distance": 1.5901102297428269e-05, "feature_x": -75.086164810404114, "feature_y": 38.783614250373844, "nearest_x": -75.086167, "nearest_y": 38.78363 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080256022226678, 38.784435721191898 ], [ -75.086676983100816, 38.783543045431053 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33943", "slope": 0.0502, "distance": 5.1642372971848697e-06, "feature_x": -75.085999296673862, "feature_y": 38.784094883880456, "nearest_x": -75.086, "nearest_y": 38.7841 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080356128175808, 38.784870664795207 ], [ -75.086786978490125, 38.783986599231476 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33944", "slope": 0.092, "distance": 1.4576350671152744e-05, "feature_x": -75.086409040709185, "feature_y": 38.784496555929302, "nearest_x": -75.086411, "nearest_y": 38.784511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080454744892791, 38.785304236624214 ], [ -75.086890637150759, 38.784431228951838 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33945", "slope": 0.0378, "distance": 1.770975349437908e-05, "feature_x": -75.086197655625185, "feature_y": 38.78498244610369, "nearest_x": -75.0862, "nearest_y": 38.785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080551603710902, 38.785736493053179 ], [ -75.08699107100675, 38.784876483130404 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33945", "slope": 0.0469, "distance": 1.770975349437908e-05, "feature_x": -75.086197655625185, "feature_y": 38.78498244610369, "nearest_x": -75.0862, "nearest_y": 38.785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080551603710902, 38.785736493053179 ], [ -75.08699107100675, 38.784876483130404 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33946", "slope": 0.0501, "distance": 1.25337916843689e-05, "feature_x": -75.086401630591709, "feature_y": 38.785412427272618, "nearest_x": -75.0864, "nearest_y": 38.7854 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080646454248637, 38.786167568255159 ], [ -75.087091543581266, 38.785321903274436 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33947", "slope": 0.0544, "distance": 3.0375089337492854e-05, "feature_x": -75.086396124022613, "feature_y": 38.785869873220356, "nearest_x": -75.0864, "nearest_y": 38.7859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080739064976086, 38.786597685259636 ], [ -75.087192051130685, 38.785767472781032 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33947", "slope": 0.0643, "distance": 3.0375089337492854e-05, "feature_x": -75.086396124022613, "feature_y": 38.785869873220356, "nearest_x": -75.0864, "nearest_y": 38.7859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080739064976086, 38.786597685259636 ], [ -75.087192051130685, 38.785767472781032 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33948", "slope": 0.0384, "distance": 1.2926996543772102e-05, "feature_x": -75.086501615717125, "feature_y": 38.786312825626602, "nearest_x": -75.0865, "nearest_y": 38.7863 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080828813332857, 38.787027460804076 ], [ -75.087292591460084, 38.786213181913993 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33949", "slope": 0.0612, "distance": 1.8424102976927273e-05, "feature_x": -75.08665774411736, "feature_y": 38.786749714525875, "nearest_x": -75.08666, "nearest_y": 38.786768 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08091498175196, 38.787458200276369 ], [ -75.08739315466886, 38.786658986777915 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33950", "slope": 0.0479, "distance": 8.4223975624448777e-07, "feature_x": -75.086700101262636, "feature_y": 38.787200836130182, "nearest_x": -75.0867, "nearest_y": 38.7872 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080997945292225, 38.787891416887547 ], [ -75.087493703890331, 38.787104723939194 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33951", "slope": 0.0631, "distance": 1.7339272566137342e-05, "feature_x": -75.086868943874336, "feature_y": 38.787636783068791, "nearest_x": -75.086871, "nearest_y": 38.787654 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081078817964169, 38.788328266720818 ], [ -75.087594188941978, 38.78755017094398 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33952", "slope": 0.0584, "distance": 1.1134693009373695e-06, "feature_x": -75.086800131008886, "feature_y": 38.788101105735301, "nearest_x": -75.0868, "nearest_y": 38.7881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081158634074896, 38.78876951727247 ], [ -75.087694565655781, 38.787995132011616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33952", "slope": 0.036, "distance": 1.1134693009373695e-06, "feature_x": -75.086800131008886, "feature_y": 38.788101105735301, "nearest_x": -75.0868, "nearest_y": 38.7881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081158634074896, 38.78876951727247 ], [ -75.087694565655781, 38.787995132011616 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33953", "slope": 0.0495, "distance": 2.2477343369821903e-05, "feature_x": -75.086897357379172, "feature_y": 38.788545678541261, "nearest_x": -75.0869, "nearest_y": 38.788568 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081238378221613, 38.789215640856625 ], [ -75.08779479443578, 38.788439431638494 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33954", "slope": 0.0657, "distance": 1.507833412267006e-06, "feature_x": -75.08690017849824, "feature_y": 38.789001497230771, "nearest_x": -75.0869, "nearest_y": 38.789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081319007759802, 38.789666878389156 ], [ -75.087894840286921, 38.788882914724667 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33954", "slope": 0.0425, "distance": 1.507833412267006e-06, "feature_x": -75.08690017849824, "feature_y": 38.789001497230771, "nearest_x": -75.0869, "nearest_y": 38.789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081319007759802, 38.789666878389156 ], [ -75.087894840286921, 38.788882914724667 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33955", "slope": 0.061, "distance": 1.815874372213552e-05, "feature_x": -75.087221818568082, "feature_y": 38.789418972761489, "nearest_x": -75.087224, "nearest_y": 38.789437 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081401466392208, 38.790123279306904 ], [ -75.087994673911211, 38.789325451431445 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33956", "slope": 0.0415, "distance": 2.3573293357641038e-06, "feature_x": -75.087000289542118, "feature_y": 38.789902339480065, "nearest_x": -75.087, "nearest_y": 38.7899 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081486689982015, 38.790584721554879 ], [ -75.088133773653539, 38.789762055581804 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33957", "slope": 0.048, "distance": 2.1078552586491326e-05, "feature_x": -75.087302665230155, "feature_y": 38.790320909374152, "nearest_x": -75.0873, "nearest_y": 38.7903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081575605059157, 38.791050913696694 ], [ -75.088277006076197, 38.790196714235982 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33957", "slope": 0.0543, "distance": 2.1078552586491326e-05, "feature_x": -75.087302665230155, "feature_y": 38.790320909374152, "nearest_x": -75.0873, "nearest_y": 38.7903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081575605059157, 38.791050913696694 ], [ -75.088277006076197, 38.790196714235982 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33958", "slope": 0.0428, "distance": 8.962703994633554e-06, "feature_x": -75.087198826554257, "feature_y": 38.790791114444978, "nearest_x": -75.0872, "nearest_y": 38.7908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081669119737199, 38.791521379560251 ], [ -75.088419747360106, 38.79062987698655 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33959", "slope": 0.0754, "distance": 1.9821736311714812e-05, "feature_x": -75.087719300654172, "feature_y": 38.791177362923776, "nearest_x": -75.087722, "nearest_y": 38.791197 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081768105961402, 38.791995424249237 ], [ -75.088561991355832, 38.791061525229338 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33960", "slope": 0.0363, "distance": 2.4023828735728937e-05, "feature_x": -75.087613586977071, "feature_y": 38.791648219848156, "nearest_x": -75.087617, "nearest_y": 38.791672 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081873371228738, 38.792472078671388 ], [ -75.088703768888735, 38.791491752560823 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33961", "slope": 0.0358, "distance": 7.1633855443809056e-06, "feature_x": -75.087698937117295, "feature_y": 38.792092915907055, "nearest_x": -75.0877, "nearest_y": 38.7921 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081985709452653, 38.792950116813728 ], [ -75.088845203043078, 38.791920932529436 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33962", "slope": 0.0387, "distance": 2.6056358150612238e-05, "feature_x": -75.087840965551678, "feature_y": 38.79252925787447, "nearest_x": -75.087845, "nearest_y": 38.792555 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082105380641053, 38.793428170473277 ], [ -75.088994595277967, 38.792348454641413 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33963", "slope": 0.0375, "distance": 2.0568782691318516e-05, "feature_x": -75.087896684797172, "feature_y": 38.792979700141586, "nearest_x": -75.0879, "nearest_y": 38.793 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082231658401383, 38.7939048647984 ], [ -75.089181898576925, 38.792769809792908 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33964", "slope": 0.0365, "distance": 2.7974769731565945e-05, "feature_x": -75.088075322535076, "feature_y": 38.79341041904528, "nearest_x": -75.08808, "nearest_y": 38.793438 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082363431104312, 38.794379100952497 ], [ -75.089369131561554, 38.793191001465217 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33965", "slope": 0.0372, "distance": 2.7568355970845676e-05, "feature_x": -75.088196236318609, "feature_y": 38.793850846333754, "nearest_x": -75.088201, "nearest_y": 38.793878 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082499668670621, 38.794850219053977 ], [ -75.089556383311418, 38.793612230050385 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33966", "slope": 0.0376, "distance": 2.7760465972540754e-05, "feature_x": -75.088305061487034, "feature_y": 38.794293682339763, "nearest_x": -75.08831, "nearest_y": 38.794321 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082639426722878, 38.795317921259041 ], [ -75.089743701838415, 38.794033603548939 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33967", "slope": 0.0399, "distance": 2.676791740467112e-05, "feature_x": -75.088425114568523, "feature_y": 38.794734681680119, "nearest_x": -75.08843, "nearest_y": 38.794761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082781854008246, 38.79578223193738 ], [ -75.08993109051994, 38.794455129552674 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33968", "slope": 0.0276, "distance": 3.2217799030756988e-06, "feature_x": -75.088400601486526, "feature_y": 38.795203165135021, "nearest_x": -75.0884, "nearest_y": 38.7952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08292620474306, 38.796243492286379 ], [ -75.090118502954027, 38.794876703677481 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33969", "slope": 0.0444, "distance": 9.6438020193157829e-06, "feature_x": -75.088701837798411, "feature_y": 38.795609467070001, "nearest_x": -75.0887, "nearest_y": 38.7956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083071857894623, 38.796702388964199 ], [ -75.090305834534902, 38.795298090620797 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33969", "slope": 0.0393, "distance": 9.6438020193157829e-06, "feature_x": -75.088701837798411, "feature_y": 38.795609467070001, "nearest_x": -75.0887, "nearest_y": 38.7956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083071857894623, 38.796702388964199 ], [ -75.090305834534902, 38.795298090620797 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33970", "slope": 0.0353, "distance": 1.0188281371857484e-05, "feature_x": -75.088867979774292, "feature_y": 38.796040994076797, "nearest_x": -75.088866, "nearest_y": 38.796031 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083218518979507, 38.797160122682577 ], [ -75.09049299488278, 38.795719087091548 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33971", "slope": 0.0321, "distance": 3.6048715260493231e-07, "feature_x": -75.0888999285648, "feature_y": 38.796499646661637, "nearest_x": -75.0889, "nearest_y": 38.7965 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083366715837002, 38.797618308488765 ], [ -75.090680014926434, 38.796139762673846 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33972", "slope": 0.0174, "distance": 7.5496338429870029e-06, "feature_x": -75.089112527198154, "feature_y": 38.796922393553743, "nearest_x": -75.089111, "nearest_y": 38.796915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083517411453855, 38.798078109835465 ], [ -75.090874099607404, 38.796558526565491 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33973", "slope": 0.0142, "distance": 2.8118602209661692e-05, "feature_x": -75.089194184169742, "feature_y": 38.797372489421882, "nearest_x": -75.0892, "nearest_y": 38.7974 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08367140497522, 38.798540023824096 ], [ -75.091073800946262, 38.796975132009557 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33974", "slope": 0.0363, "distance": 3.4143944194218055e-06, "feature_x": -75.089399276491321, "feature_y": 38.797796663141533, "nearest_x": -75.0894, "nearest_y": 38.7978 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083829443935102, 38.79900433263014 ], [ -75.091272874863876, 38.79739042335504 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33975", "slope": 0.0229, "distance": 9.9176137932598046e-06, "feature_x": -75.089602157757369, "feature_y": 38.798220680038561, "nearest_x": -75.0896, "nearest_y": 38.798211 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083992250156243, 38.799471172933501 ], [ -75.091471160249, 38.797804064560623 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33976", "slope": 0.0356, "distance": 1.032992788104306e-05, "feature_x": -75.089769312854557, "feature_y": 38.798652067676684, "nearest_x": -75.089767, "nearest_y": 38.798642 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084160532959189, 38.799940576688449 ], [ -75.091668516448578, 38.79821576227841 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33977", "slope": 0.0232, "distance": 9.2046904137331595e-06, "feature_x": -75.090067125714256, "feature_y": 38.799051955873182, "nearest_x": -75.090065, "nearest_y": 38.799043 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084334999143948, 38.800412500282356 ], [ -75.091864822806514, 38.798625264888905 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33978", "slope": 0.0201, "distance": 7.8026621331351344e-06, "feature_x": -75.090183862703711, "feature_y": 38.799493577062179, "nearest_x": -75.090182, "nearest_y": 38.799486 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084516360440134, 38.800886844965341 ], [ -75.092059978847928, 38.799032362882677 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33979", "slope": 0.0421, "distance": 5.6131119154154195e-06, "feature_x": -75.090355388107298, "feature_y": 38.799921438766731, "nearest_x": -75.090354, "nearest_y": 38.799916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084705338926966, 38.801363470554925 ], [ -75.092253905046249, 38.799436890457677 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33980", "slope": 0.0443, "distance": 2.369653967425725e-06, "feature_x": -75.090531608239957, "feature_y": 38.800347290262884, "nearest_x": -75.090531, "nearest_y": 38.800345 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084902670674751, 38.801842203682128 ], [ -75.092446544167899, 38.799838728321568 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33981", "slope": 0.0076, "distance": 3.6531062638490855e-06, "feature_x": -75.090641975644672, "feature_y": 38.800792520412315, "nearest_x": -75.090641, "nearest_y": 38.800789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085107992561603, 38.802326204719542 ], [ -75.092728705696715, 38.80021420546516 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33982", "slope": 0.0241, "distance": 3.7694234783402545e-06, "feature_x": -75.090868052445288, "feature_y": 38.801210619518237, "nearest_x": -75.090867, "nearest_y": 38.801207 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085321165926118, 38.802823484600182 ], [ -75.093058398430529, 38.800573733844665 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33983", "slope": 0.0356, "distance": 1.2032591141142692e-05, "feature_x": -75.091030540722102, "feature_y": 38.801651499849413, "nearest_x": -75.091027, "nearest_y": 38.80164 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085546609011459, 38.803339963542228 ], [ -75.093382634180159, 38.800927306949944 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33984", "slope": 0.0364, "distance": 7.2367546052191591e-06, "feature_x": -75.091197732012986, "feature_y": 38.802093127820427, "nearest_x": -75.0912, "nearest_y": 38.8021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085792104443939, 38.803877116873863 ], [ -75.09369572967303, 38.801268727614513 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33985", "slope": 0.0081, "distance": 2.4267776339233479e-05, "feature_x": -75.09144219208828, "feature_y": 38.802506843262861, "nearest_x": -75.091434, "nearest_y": 38.802484 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086065896512906, 38.804434899173572 ], [ -75.093992434626713, 38.801592271113499 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33986", "slope": 0.0066, "distance": 1.2022096892002994e-05, "feature_x": -75.0914955809248, "feature_y": 38.802988819544368, "nearest_x": -75.0915, "nearest_y": 38.803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086377016586127, 38.805011932149348 ], [ -75.09426817591158, 38.801892951348698 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33987", "slope": 0.0523, "distance": 1.8357902574427287e-05, "feature_x": -75.091875417824085, "feature_y": 38.803334792512402, "nearest_x": -75.091868, "nearest_y": 38.803318 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086735408262925, 38.805605309621065 ], [ -75.094519374831535, 38.802166866743292 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33988", "slope": 0.0225, "distance": 5.9539350841125161e-06, "feature_x": -75.092231336070185, "feature_y": 38.803668675263303, "nearest_x": -75.092234, "nearest_y": 38.803674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087151641670062, 38.806210012076541 ], [ -75.094743876437391, 38.802411668280804 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33989", "slope": 0.0276, "distance": 1.7376870399767527e-05, "feature_x": -75.092711355531037, "feature_y": 38.803909925890366, "nearest_x": -75.09272, "nearest_y": 38.803925 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087638709990543, 38.806818908776343 ], [ -75.094943818222788, 38.802629687460133 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33990", "slope": 0.0202, "distance": 1.1991967931250991e-05, "feature_x": -75.092793370155206, "feature_y": 38.804390007380078, "nearest_x": -75.0928, "nearest_y": 38.8044 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088217418422403, 38.807426032966461 ], [ -75.095133998516317, 38.802837061018863 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33991", "slope": 0.0357, "distance": 3.3652372785235048e-06, "feature_x": -75.093689058346669, "feature_y": 38.804314662335621, "nearest_x": -75.093687, "nearest_y": 38.804312 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08889359490324, 38.808022206238739 ], [ -75.095327430331281, 38.803047978492813 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33992", "slope": 0.0169, "distance": 4.8812543479784127e-06, "feature_x": -75.093603285227417, "feature_y": 38.805003610252733, "nearest_x": -75.0936, "nearest_y": 38.805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089655040910557, 38.80859640041178 ], [ -75.095520749837064, 38.803258771932967 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33993", "slope": 0.0163, "distance": 5.337489161274975e-06, "feature_x": -75.094103937165244, "feature_y": 38.805203603820246, "nearest_x": -75.0941, "nearest_y": 38.8052 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090498210519357, 38.809142851807884 ], [ -75.095727072397011, 38.803430332348682 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33994", "slope": 0.0117, "distance": 5.5823413041664907e-05, "feature_x": -75.094454918575551, "feature_y": 38.805567077080724, "nearest_x": -75.0945, "nearest_y": 38.8056 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091451174628702, 38.809680110151859 ], [ -75.095933830970097, 38.803541999146084 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33995", "slope": 0.0138, "distance": 9.5810897441709945e-06, "feature_x": -75.095190537239617, "feature_y": 38.805288507899434, "nearest_x": -75.095199, "nearest_y": 38.805293 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092584320000526, 38.8101984139983 ], [ -75.096076653728389, 38.803619134875866 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33996", "slope": 0.0092, "distance": 0.00028781150071941343, "feature_x": -75.09537310107973, "feature_y": 38.806090836447517, "nearest_x": -75.0951, "nearest_y": 38.806 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093894045306627, 38.81053763880098 ], [ -75.096177412056178, 38.803672663983711 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33997", "slope": 0.0811, "distance": 0.00018732900126724902, "feature_x": -75.096014813152536, "feature_y": 38.805371751349703, "nearest_x": -75.0962, "nearest_y": 38.8054 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095217653236219, 38.810597612773059 ], [ -75.096263114130338, 38.80374398949823 ] ] } }, -{ "type": "Feature", "properties": { "id": "region_29_33998", "slope": 0.0677, "distance": 3.0504915044627863e-05, "feature_x": -75.096430504015643, "feature_y": 38.805500234247056, "nearest_x": -75.0964, "nearest_y": 38.8055 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096392057713246, 38.810506771608587 ], [ -75.096443428245379, 38.803817220926369 ] ] } } +{ "type": "Feature", "properties": { "id": "region_29_33205", "slope": 0.075, "distance": 1.2417625795652526e-05, "feature_x": -75.049500366914089, "feature_y": 38.451587587796148, "nearest_x": -75.0495, "nearest_y": 38.4516 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05014020783311, 38.451606501975476 ], [ -75.043103636852706, 38.451398495639147 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33206", "slope": 0.0331, "distance": 2.3484684988729025e-05, "feature_x": -75.04899933385424, "feature_y": 38.452023475235436, "nearest_x": -75.049, "nearest_y": 38.452 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050133622596391, 38.452055662415745 ], [ -75.043084496775052, 38.451855632674302 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33207", "slope": 0.0645, "distance": 1.4751236472672698e-05, "feature_x": -75.049400405754994, "feature_y": 38.452485254345035, "nearest_x": -75.0494, "nearest_y": 38.4525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050127031035132, 38.45250524883383 ], [ -75.04306630814439, 38.452310959495726 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33208", "slope": 0.0324, "distance": 2.2332486497920964e-05, "feature_x": -75.048899397363243, "feature_y": 38.452922324354013, "nearest_x": -75.0489, "nearest_y": 38.4529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050120432790251, 38.452955285703702 ], [ -75.043048782894033, 38.45276438942016 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33209", "slope": 0.0787, "distance": 1.3348879025260023e-05, "feature_x": -75.049400357845855, "feature_y": 38.453386655918258, "nearest_x": -75.0494, "nearest_y": 38.4534 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0501094070558, 38.453405670363679 ], [ -75.043031634424651, 38.45321586700517 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33210", "slope": 0.0317, "distance": 2.1482429290917818e-05, "feature_x": -75.048799420481799, "feature_y": 38.453821474611217, "nearest_x": -75.0488, "nearest_y": 38.4538 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050098083871276, 38.453856520604432 ], [ -75.043014578155308, 38.453665363684735 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33211", "slope": 0.0694, "distance": 1.1040075355488933e-05, "feature_x": -75.049400303497976, "feature_y": 38.454288964097103, "nearest_x": -75.0494, "nearest_y": 38.4543 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050086748714577, 38.454307842002486 ], [ -75.042997331715583, 38.454112876198842 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33212", "slope": 0.0336, "distance": 2.0619598567307529e-05, "feature_x": -75.048699415570837, "feature_y": 38.454720611314556, "nearest_x": -75.0487, "nearest_y": 38.4547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050075401772773, 38.454759627091789 ], [ -75.042979614805446, 38.454558427658824 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33213", "slope": 0.0494, "distance": 1.9556184930319275e-05, "feature_x": -75.049000577361056, "feature_y": 38.455180452339697, "nearest_x": -75.049, "nearest_y": 38.4552 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050064043370156, 38.455211862945447 ], [ -75.04296114870354, 38.455002071356297 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33214", "slope": 0.0329, "distance": 2.2550121911784513e-05, "feature_x": -75.048699300677356, "feature_y": 38.45562253927563, "nearest_x": -75.0487, "nearest_y": 38.4556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050052673993108, 38.455664530181089 ], [ -75.042941655355122, 38.455443897700839 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33215", "slope": 0.0729, "distance": 6.7108796270629027e-06, "feature_x": -75.049300219991693, "feature_y": 38.456093292727154, "nearest_x": -75.0493, "nearest_y": 38.4561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050041294384371, 38.456117599209833 ], [ -75.04292083009716, 38.455884055258515 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33216", "slope": 0.0313, "distance": 2.1287744098919723e-05, "feature_x": -75.048599261307501, "feature_y": 38.456521274923787, "nearest_x": -75.0486, "nearest_y": 38.4565 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050029907588893, 38.456570948787686 ], [ -75.042897086976808, 38.456323288157044 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33217", "slope": 0.0504, "distance": 5.6500435356844062e-06, "feature_x": -75.049200205850823, "feature_y": 38.456994353707643, "nearest_x": -75.0492, "nearest_y": 38.457 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050018523433167, 38.457024187683963 ], [ -75.042868762096006, 38.456763523835299 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33218", "slope": 0.0268, "distance": 2.0047816342923649e-05, "feature_x": -75.048499246998986, "feature_y": 38.457420033669898, "nearest_x": -75.0485, "nearest_y": 38.4574 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050007157107288, 38.457476711145972 ], [ -75.042836320179973, 38.457207182520783 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33219", "slope": 0.0505, "distance": 1.3426127978795907e-05, "feature_x": -75.04890050687618, "feature_y": 38.457886583443475, "nearest_x": -75.0489, "nearest_y": 38.4579 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049995822547842, 38.457927964361204 ], [ -75.042801204135088, 38.457656152389234 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33219", "slope": 0.0509, "distance": 1.3426127978795907e-05, "feature_x": -75.04890050687618, "feature_y": 38.457886583443475, "nearest_x": -75.0489, "nearest_y": 38.4579 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049995822547842, 38.457927964361204 ], [ -75.042801204135088, 38.457656152389234 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33220", "slope": 0.0291, "distance": 2.2837149852200078e-05, "feature_x": -75.048499159358059, "feature_y": 38.458322821672475, "nearest_x": -75.0485, "nearest_y": 38.4583 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049984530096182, 38.458377535670365 ], [ -75.04276491713992, 38.458111599444543 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33221", "slope": 0.0913, "distance": 1.8170414112006618e-06, "feature_x": -75.049299937064475, "feature_y": 38.458801815951155, "nearest_x": -75.0493, "nearest_y": 38.4588 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049973286606402, 38.458825152266428 ], [ -75.042729035173423, 38.458574087812025 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33222", "slope": 0.0253, "distance": 2.1876224771412829e-05, "feature_x": -75.048399316792157, "feature_y": 38.459221865553673, "nearest_x": -75.0484, "nearest_y": 38.4592 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04996209505083, 38.459270695891384 ], [ -75.04269520963841, 38.459043635867459 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33223", "slope": 0.0805, "distance": 5.8141669362085434e-06, "feature_x": -75.049200155173807, "feature_y": 38.459694187904141, "nearest_x": -75.0492, "nearest_y": 38.4597 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049950953760955, 38.459714233044444 ], [ -75.042665157885722, 38.459519713764536 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33224", "slope": 0.0244, "distance": 2.3378063832402812e-05, "feature_x": -75.048399504082795, "feature_y": 38.460123372803309, "nearest_x": -75.0484, "nearest_y": 38.4601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049950472439008, 38.460156280789732 ], [ -75.042640640108587, 38.460001182936111 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33225", "slope": 0.0772, "distance": 1.4298003495253321e-05, "feature_x": -75.049200216355317, "feature_y": 38.460585703633527, "nearest_x": -75.0492, "nearest_y": 38.4606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049952387581129, 38.460597086683158 ], [ -75.042623421635838, 38.460486173130164 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33225", "slope": 0.0604, "distance": 1.4298003495253321e-05, "feature_x": -75.049200216355317, "feature_y": 38.460585703633527, "nearest_x": -75.0492, "nearest_y": 38.4606 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049952387581129, 38.460597086683158 ], [ -75.042623421635838, 38.460486173130164 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33226", "slope": 0.024, "distance": 2.3582839906435162e-05, "feature_x": -75.048399789387872, "feature_y": 38.461023581899425, "nearest_x": -75.0484, "nearest_y": 38.461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049954300893631, 38.461037465385424 ], [ -75.042615143431988, 38.460971918691513 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33227", "slope": 0.0852, "distance": 2.3950354913487911e-05, "feature_x": -75.049200074352441, "feature_y": 38.461476049760499, "nearest_x": -75.0492, "nearest_y": 38.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049956216635522, 38.461478397170119 ], [ -75.042614648502507, 38.461455605602907 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33227", "slope": 0.0908, "distance": 2.3950354913487911e-05, "feature_x": -75.049200074352441, "feature_y": 38.461476049760499, "nearest_x": -75.0492, "nearest_y": 38.4615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049956216635522, 38.461478397170119 ], [ -75.042614648502507, 38.461455605602907 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33228", "slope": 0.0648, "distance": 1.4888802527019284e-05, "feature_x": -75.049250031532253, "feature_y": 38.461921888769133, "nearest_x": -75.04925, "nearest_y": 38.461907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049958137009995, 38.461920389104158 ], [ -75.042618760038991, 38.461935932842977 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33229", "slope": 0.0637, "distance": 9.2095480193736308e-06, "feature_x": -75.049403062254243, "feature_y": 38.462367209337607, "nearest_x": -75.049403, "nearest_y": 38.462358 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049960062029811, 38.46236344407253 ], [ -75.04262605399478, 38.462413021263643 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33230", "slope": 0.0872, "distance": 1.5750698926817362e-05, "feature_x": -75.04920017165459, "feature_y": 38.462815749763536, "nearest_x": -75.0492, "nearest_y": 38.4628 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049961991194237, 38.462807446793121 ], [ -75.042636206958932, 38.462887289546671 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33231", "slope": 0.0274, "distance": 2.4873780293285748e-05, "feature_x": -75.048399636970458, "feature_y": 38.463275128869029, "nearest_x": -75.0484, "nearest_y": 38.4633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049963924062936, 38.463252295873566 ], [ -75.042648913066344, 38.463359068865351 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33231", "slope": 0.0287, "distance": 2.4873780293285748e-05, "feature_x": -75.048399636970458, "feature_y": 38.463275128869029, "nearest_x": -75.0484, "nearest_y": 38.4633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049963924062936, 38.463252295873566 ], [ -75.042648913066344, 38.463359068865351 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33232", "slope": 0.0556, "distance": 1.9129911495410403e-06, "feature_x": -75.04918303424661, "feature_y": 38.46371191268458, "nearest_x": -75.049183, "nearest_y": 38.46371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049965860222684, 38.463697896190617 ], [ -75.042663879338434, 38.463828638110456 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33233", "slope": 0.0547, "distance": 7.0041774215484015e-07, "feature_x": -75.049175014616694, "feature_y": 38.464160700265211, "nearest_x": -75.049175, "nearest_y": 38.46416 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049967799259434, 38.464144152410753 ], [ -75.04268082309116, 38.464296254021441 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33234", "slope": 0.0518, "distance": 1.7676069262192472e-06, "feature_x": -75.04919395838408, "feature_y": 38.464609232883035, "nearest_x": -75.049194, "nearest_y": 38.464611 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049969740732394, 38.464590963070201 ], [ -75.0426994707571, 38.464762179226362 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33235", "slope": 0.0273, "distance": 2.352557909747438e-05, "feature_x": -75.048499388732452, "feature_y": 38.465076482363557, "nearest_x": -75.0485, "nearest_y": 38.4651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049971684148375, 38.465038214639947 ], [ -75.04271955778708, 38.465226711027412 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33236", "slope": 0.0541, "distance": 4.893093624813556e-06, "feature_x": -75.049218861749324, "feature_y": 38.465507108859846, "nearest_x": -75.049219, "nearest_y": 38.465512 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049973628933174, 38.465485774965984 ], [ -75.042740829542495, 38.465690213868243 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33237", "slope": 0.0554, "distance": 7.2904431257011283e-06, "feature_x": -75.04924577805653, "feature_y": 38.46595571293598, "nearest_x": -75.049246, "nearest_y": 38.465963 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049975574397465, 38.465933485392675 ], [ -75.042763043341637, 38.466153158796565 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33238", "slope": 0.0575, "distance": 1.0309937628492269e-05, "feature_x": -75.049287663246105, "feature_y": 38.466403695563542, "nearest_x": -75.049288, "nearest_y": 38.466414 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.04997751969303, 38.466381150725582 ], [ -75.042785972164239, 38.466616173931406 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33239", "slope": 0.0308, "distance": 2.6563468349325847e-05, "feature_x": -75.048699068505968, "feature_y": 38.466873452868903, "nearest_x": -75.0487, "nearest_y": 38.4669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049979463755193, 38.466828525960359 ], [ -75.042809411090985, 38.4670801110084 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33239", "slope": 0.0419, "distance": 2.6563468349325847e-05, "feature_x": -75.048699068505968, "feature_y": 38.466873452868903, "nearest_x": -75.0487, "nearest_y": 38.4669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049979463755193, 38.466828525960359 ], [ -75.042809411090985, 38.4670801110084 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33240", "slope": 0.0608, "distance": 1.5927995299048286e-05, "feature_x": -75.049354397254874, "feature_y": 38.467299083413288, "nearest_x": -75.049355, "nearest_y": 38.467315 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.049989455456824, 38.467275034397559 ], [ -75.04283346029365, 38.46754602474099 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33241", "slope": 0.0517, "distance": 1.8750904394177273e-05, "feature_x": -75.049383229985168, "feature_y": 38.46774626491279, "nearest_x": -75.049384, "nearest_y": 38.467765 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050052178058451, 38.467718771048787 ], [ -75.042860264540238, 38.468014359750015 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33242", "slope": 0.0421, "distance": 7.2020661180818227e-06, "feature_x": -75.049100320975811, "feature_y": 38.468207194910072, "nearest_x": -75.0491, "nearest_y": 38.4682 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050114820706256, 38.468161936543112 ], [ -75.042891860640339, 38.468484163713214 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33243", "slope": 0.0477, "distance": 1.0810694425562698e-05, "feature_x": -75.049445480290814, "feature_y": 38.468640201804952, "nearest_x": -75.049446, "nearest_y": 38.468651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050177445870531, 38.468604972839621 ], [ -75.042927959015643, 38.468953885313312 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33244", "slope": 0.0359, "distance": 1.2006926012183905e-05, "feature_x": -75.049000616817537, "feature_y": 38.469111991072026, "nearest_x": -75.049, "nearest_y": 38.4691 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05024010334769, 38.469048232216672 ], [ -75.04296780843535, 38.469422317120483 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33245", "slope": 0.0554, "distance": 1.6011029966538165e-05, "feature_x": -75.049493130290017, "feature_y": 38.469536012608557, "nearest_x": -75.049494, "nearest_y": 38.469552 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050302828557349, 38.469491965231036 ], [ -75.043010667969256, 38.469888656891754 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33246", "slope": 0.0319, "distance": 1.4044907492660801e-05, "feature_x": -75.049000798172429, "feature_y": 38.470014022209071, "nearest_x": -75.049, "nearest_y": 38.47 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050365644195693, 38.469936332420204 ], [ -75.043055813233877, 38.470352422744227 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33247", "slope": 0.0556, "distance": 2.1130245636822402e-05, "feature_x": -75.049775756188353, "feature_y": 38.470419906394021, "nearest_x": -75.049777, "nearest_y": 38.470441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050428561448825, 38.470381412890582 ], [ -75.043102542024144, 38.470813401066849 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33248", "slope": 0.0321, "distance": 5.3849283385119653e-06, "feature_x": -75.049200325382287, "feature_y": 38.470905375088797, "nearest_x": -75.0492, "nearest_y": 38.4709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050491580603719, 38.470827208645375 ], [ -75.043150178992732, 38.471271622146396 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33249", "slope": 0.0488, "distance": 2.0485695920649789e-05, "feature_x": -75.049615738944212, "feature_y": 38.471331553154876, "nearest_x": -75.049617, "nearest_y": 38.471352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050554690887068, 38.471273643449138 ], [ -75.043198079661394, 38.471727361229441 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33250", "slope": 0.0377, "distance": 2.8887698731591063e-06, "feature_x": -75.049300180136271, "feature_y": 38.471802883147987, "nearest_x": -75.0493, "nearest_y": 38.4718 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050600023933669, 38.471721670178788 ], [ -75.043245634399142, 38.472181165244209 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33250", "slope": 0.0419, "distance": 2.8887698731591063e-06, "feature_x": -75.049300180136271, "feature_y": 38.471802883147987, "nearest_x": -75.0493, "nearest_y": 38.4718 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050600023933669, 38.471721670178788 ], [ -75.043245634399142, 38.472181165244209 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33251", "slope": 0.0538, "distance": 2.0662547563905557e-05, "feature_x": -75.049655698789834, "feature_y": 38.472232378464561, "nearest_x": -75.049657, "nearest_y": 38.472253 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050625035844604, 38.472171213706474 ], [ -75.043292273448714, 38.472633907911586 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33252", "slope": 0.0429, "distance": 3.7231917647093001e-07, "feature_x": -75.049400023667005, "feature_y": 38.472700371566205, "nearest_x": -75.0494, "nearest_y": 38.4727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050650047723025, 38.472620750971792 ], [ -75.043338372597901, 38.473086469944796 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33252", "slope": 0.0462, "distance": 3.7231917647093001e-07, "feature_x": -75.049400023667005, "feature_y": 38.472700371566205, "nearest_x": -75.0494, "nearest_y": 38.4727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050650047723025, 38.472620750971792 ], [ -75.043338372597901, 38.473086469944796 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33253", "slope": 0.0426, "distance": 1.9755035632918582e-05, "feature_x": -75.049679732689, "feature_y": 38.473134285656094, "nearest_x": -75.049681, "nearest_y": 38.473154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050675060699177, 38.473070302287319 ], [ -75.043385603490037, 38.473538895579217 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33254", "slope": 0.0453, "distance": 2.197998057259519e-06, "feature_x": -75.049499858038629, "feature_y": 38.473597806591137, "nearest_x": -75.0495, "nearest_y": 38.4736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050700089118621, 38.473520125477229 ], [ -75.043434472833354, 38.473990369229178 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33255", "slope": 0.0426, "distance": 1.9237587131240296e-05, "feature_x": -75.049701754569867, "feature_y": 38.474036802769405, "nearest_x": -75.049703, "nearest_y": 38.474056 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050725143517582, 38.473970409889667 ], [ -75.043483964533749, 38.474440185068005 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33256", "slope": 0.0493, "distance": 2.0769030890984858e-06, "feature_x": -75.049500134128223, "feature_y": 38.474502072567503, "nearest_x": -75.0495, "nearest_y": 38.4745 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050750224798932, 38.474421171732224 ], [ -75.043533108049843, 38.474888234471749 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33257", "slope": 0.0502, "distance": 1.7937125593447617e-05, "feature_x": -75.049751848702073, "feature_y": 38.47493809986068, "nearest_x": -75.049753, "nearest_y": 38.474956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050775325233502, 38.474872272082038 ], [ -75.043580996524113, 38.47533499561618 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33258", "slope": 0.0445, "distance": 1.0709753938423713e-07, "feature_x": -75.049600006820839, "feature_y": 38.475400106880116, "nearest_x": -75.0496, "nearest_y": 38.4754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050800433002181, 38.475323498517348 ], [ -75.043627450625237, 38.475781261305784 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33259", "slope": 0.045, "distance": 1.7644344446261185e-05, "feature_x": -75.049819885265691, "feature_y": 38.475838390904102, "nearest_x": -75.049821, "nearest_y": 38.475856 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050825541280688, 38.475774728393326 ], [ -75.043673305892113, 38.476227496790955 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33260", "slope": 0.0471, "distance": 1.7942531581639284e-06, "feature_x": -75.049699887588687, "feature_y": 38.476298209271633, "nearest_x": -75.0497, "nearest_y": 38.4763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050850650596729, 38.476225971192711 ], [ -75.043719068225897, 38.476673649651723 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33261", "slope": 0.044, "distance": 1.3647356414539178e-05, "feature_x": -75.049684152868565, "feature_y": 38.476751378960927, "nearest_x": -75.049685, "nearest_y": 38.476765 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050875763308539, 38.476677269294939 ], [ -75.043764598068506, 38.477119533027299 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33262", "slope": 0.0527, "distance": 3.5990976675438037e-06, "feature_x": -75.049799778933021, "feature_y": 38.477196407698038, "nearest_x": -75.0498, "nearest_y": 38.4772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050878997309681, 38.47712999358626 ], [ -75.043809762783738, 38.477565027813014 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33263", "slope": 0.0567, "distance": 1.4243951860373205e-05, "feature_x": -75.049780135551174, "feature_y": 38.47764978230353, "nearest_x": -75.049781, "nearest_y": 38.477664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050877168594383, 38.477583081701006 ], [ -75.043854435812278, 38.478010070214097 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33264", "slope": 0.0526, "distance": 5.2857396012496029e-06, "feature_x": -75.049899683556532, "feature_y": 38.478094723741222, "nearest_x": -75.0499, "nearest_y": 38.4781 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050875339701875, 38.478036208793931 ], [ -75.04389849578574, 38.478454644793089 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33265", "slope": 0.0554, "distance": 1.6270288883116042e-05, "feature_x": -75.050054040650039, "feature_y": 38.478537758018966, "nearest_x": -75.050055, "nearest_y": 38.478554 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050873510711796, 38.478489355143999 ], [ -75.043941826076107, 38.478898782504935 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33266", "slope": 0.0523, "distance": 1.0629546828439607e-06, "feature_x": -75.04989993835936, "feature_y": 38.478998938834089, "nearest_x": -75.0499, "nearest_y": 38.479 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050871681737959, 38.478942492543617 ], [ -75.04398431471553, 38.479342563517207 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33267", "slope": 0.0523, "distance": 3.3753751372709081e-05, "feature_x": -75.050201922968569, "feature_y": 38.479433698930599, "nearest_x": -75.0502, "nearest_y": 38.4794 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050869852926823, 38.479395584714879 ], [ -75.044025854674558, 38.479786125103971 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33268", "slope": 0.0392, "distance": 2.8194471578488396e-06, "feature_x": -75.049900157722305, "feature_y": 38.47990281503214, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050868024459348, 38.479848586813432 ], [ -75.044066344544859, 38.480229675419828 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33268", "slope": 0.0404, "distance": 2.8194471578488396e-06, "feature_x": -75.049900157722305, "feature_y": 38.47990281503214, "nearest_x": -75.0499, "nearest_y": 38.4799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050868024459348, 38.479848586813432 ], [ -75.044066344544859, 38.480229675419828 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33269", "slope": 0.0532, "distance": 1.4749534190912637e-05, "feature_x": -75.050215189472723, "feature_y": 38.480337272752998, "nearest_x": -75.050216, "nearest_y": 38.480352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050866196556981, 38.480301443992921 ], [ -75.044105689755, 38.480673514561822 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33270", "slope": 0.035, "distance": 9.2757781115559053e-07, "feature_x": -75.050000050127665, "feature_y": 38.480800926222336, "nearest_x": -75.05, "nearest_y": 38.4808 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.050864369249851, 38.480754148787128 ], [ -75.044144322385392, 38.481117841488995 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33271", "slope": 0.0505, "distance": 1.4381360963024688e-05, "feature_x": -75.05032023543599, "feature_y": 38.481235638976884, "nearest_x": -75.050321, "nearest_y": 38.48125 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05180852393282, 38.481156404245439 ], [ -75.044183090231186, 38.481562373378985 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33272", "slope": 0.0398, "distance": 5.9912990096278494e-06, "feature_x": -75.050199687301244, "feature_y": 38.481694016866761, "nearest_x": -75.0502, "nearest_y": 38.4817 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0519388740408, 38.481603121091247 ], [ -75.044222120127259, 38.482006424724766 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33273", "slope": 0.0488, "distance": 1.3434168704343012e-05, "feature_x": -75.050442314606741, "feature_y": 38.482133583326608, "nearest_x": -75.050443, "nearest_y": 38.482147 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051972701350934, 38.482055403234035 ], [ -75.044260938002324, 38.482449360104596 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33274", "slope": 0.0324, "distance": 2.1030487707960349e-06, "feature_x": -75.050199895750424, "feature_y": 38.482597899536678, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05200656991596, 38.482508231216777 ], [ -75.044299093264783, 38.482890766427154 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33274", "slope": 0.0395, "distance": 2.1030487707960349e-06, "feature_x": -75.050199895750424, "feature_y": 38.482597899536678, "nearest_x": -75.0502, "nearest_y": 38.4826 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05200656991596, 38.482508231216777 ], [ -75.044299093264783, 38.482890766427154 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33275", "slope": 0.0462, "distance": 4.4941886198622781e-05, "feature_x": -75.050302148363429, "feature_y": 38.483044890507564, "nearest_x": -75.0503, "nearest_y": 38.483 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05116728509779, 38.483003486918534 ], [ -75.044336154902865, 38.483330410161983 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33276", "slope": 0.0522, "distance": 7.6174730557820398e-06, "feature_x": -75.050399651808974, "feature_y": 38.483492390488927, "nearest_x": -75.0504, "nearest_y": 38.4835 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051239471919558, 38.483453962549909 ], [ -75.044371708656598, 38.483768213166854 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33276", "slope": 0.0464, "distance": 7.6174730557820398e-06, "feature_x": -75.050399651808974, "feature_y": 38.483492390488927, "nearest_x": -75.0504, "nearest_y": 38.4835 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051239471919558, 38.483453962549909 ], [ -75.044371708656598, 38.483768213166854 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33277", "slope": 0.0573, "distance": 9.0413291299707771e-06, "feature_x": -75.050572608532761, "feature_y": 38.483936967149631, "nearest_x": -75.050573, "nearest_y": 38.483946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051311739202617, 38.483904934576309 ], [ -75.044405354636552, 38.484204244669982 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33278", "slope": 0.0389, "distance": 4.4773425400430984e-07, "feature_x": -75.050300018180607, "feature_y": 38.484400447364983, "nearest_x": -75.0503, "nearest_y": 38.4844 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051384085123189, 38.484356391597807 ], [ -75.04443670496218, 38.484638728555808 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33279", "slope": 0.0564, "distance": 6.676210057252177e-06, "feature_x": -75.050633748279637, "feature_y": 38.48483932853707, "nearest_x": -75.050634, "nearest_y": 38.484846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051456501940635, 38.484808285293262 ], [ -75.044465381132653, 38.485072066638772 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33280", "slope": 0.0339, "distance": 2.8654040783619481e-07, "feature_x": -75.050399990056974, "feature_y": 38.485299713632159, "nearest_x": -75.0504, "nearest_y": 38.4853 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051528973369884, 38.485260514026088 ], [ -75.044491010995245, 38.485504880217732 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33281", "slope": 0.0384, "distance": 2.1107530786102398e-06, "feature_x": -75.050877932985713, "feature_y": 38.485735890311005, "nearest_x": -75.050878, "nearest_y": 38.485738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051601472055779, 38.485712907087603 ], [ -75.044513262761129, 38.485938064103308 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33282", "slope": 0.0399, "distance": 3.0865239525682945e-07, "feature_x": -75.050950008960456, "feature_y": 38.486186308522299, "nearest_x": -75.05095, "nearest_y": 38.486186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051673968828695, 38.486165282455893 ], [ -75.044532279423237, 38.48637269952733 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33283", "slope": 0.0438, "distance": 3.2367685659882213e-06, "feature_x": -75.050723913574728, "feature_y": 38.486644764385467, "nearest_x": -75.050724, "nearest_y": 38.486648 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051746433576824, 38.486617452239109 ], [ -75.044548686228794, 38.486809708555462 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33284", "slope": 0.0392, "distance": 4.8318658494915285e-07, "feature_x": -75.050599987984072, "feature_y": 38.487099516962843, "nearest_x": -75.0506, "nearest_y": 38.4871 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051818831177172, 38.487069197286687 ], [ -75.044563104126794, 38.487249689162674 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33285", "slope": 0.0471, "distance": 8.8241414525547104e-07, "feature_x": -75.050797979169431, "feature_y": 38.487546117831755, "nearest_x": -75.050798, "nearest_y": 38.487547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051849387885568, 38.487521290993087 ], [ -75.044576102669936, 38.48769303455569 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33286", "slope": 0.0437, "distance": 4.0378479330259056e-07, "feature_x": -75.050699990726017, "feature_y": 38.487999596321721, "nearest_x": -75.0507, "nearest_y": 38.488 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051873655012059, 38.487972632893971 ], [ -75.044588251362896, 38.488140005674452 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33287", "slope": 0.0363, "distance": 6.2740607338000855e-07, "feature_x": -75.050869014421579, "feature_y": 38.488446627240307, "nearest_x": -75.050869, "nearest_y": 38.488446 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051897868514047, 38.48842297172704 ], [ -75.044600124971424, 38.488590762155695 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33288", "slope": 0.0362, "distance": 3.233161287546604e-07, "feature_x": -75.050889992343429, "feature_y": 38.488896676774544, "nearest_x": -75.05089, "nearest_y": 38.488897 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051922024222193, 38.488872229986981 ], [ -75.04461230681801, 38.489045382689135 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33289", "slope": 0.0392, "distance": 9.0049187477601956e-07, "feature_x": -75.050918977432218, "feature_y": 38.489346099790964, "nearest_x": -75.050919, "nearest_y": 38.489347 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051946119026709, 38.489320349879357 ], [ -75.044625390468326, 38.489503876779942 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33290", "slope": 0.0407, "distance": 9.5274320326342451e-07, "feature_x": -75.050799974158352, "feature_y": 38.48979904760732, "nearest_x": -75.0508, "nearest_y": 38.4898 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051970151061838, 38.489767296747381 ], [ -75.044639980030297, 38.48996618909694 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33291", "slope": 0.0469, "distance": 3.5307349034946481e-07, "feature_x": -75.051170989460147, "feature_y": 38.490237647083859, "nearest_x": -75.051171, "nearest_y": 38.490238 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.051994119985068, 38.490213064265447 ], [ -75.044656689097579, 38.490432196864276 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33292", "slope": 0.036, "distance": 1.4871223410624392e-06, "feature_x": -75.050700049399481, "feature_y": 38.490701486301631, "nearest_x": -75.0507, "nearest_y": 38.4907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052018027347032, 38.490657681315298 ], [ -75.044676138171553, 38.490901700083285 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33292", "slope": 0.0386, "distance": 1.4871223410624392e-06, "feature_x": -75.050700049399481, "feature_y": 38.490701486301631, "nearest_x": -75.0507, "nearest_y": 38.4907 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052018027347032, 38.490657681315298 ], [ -75.044676138171553, 38.490901700083285 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33293", "slope": 0.0618, "distance": 6.5871964091723172e-06, "feature_x": -75.051258755412391, "feature_y": 38.491130417346021, "nearest_x": -75.051259, "nearest_y": 38.491137 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052041882355709, 38.4911013191821 ], [ -75.044699601822089, 38.491374131762953 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33294", "slope": 0.0363, "distance": 1.0276891940376992e-06, "feature_x": -75.050700042423387, "feature_y": 38.491601026813193, "nearest_x": -75.0507, "nearest_y": 38.4916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052065718630303, 38.491544603115408 ], [ -75.044729643129244, 38.491847697293153 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33295", "slope": 0.0519, "distance": 1.3089932368077568e-05, "feature_x": -75.051372409080244, "feature_y": 38.492020923412397, "nearest_x": -75.051373, "nearest_y": 38.492034 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052089588951233, 38.491988514670197 ], [ -75.044766838040971, 38.492319423492418 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33296", "slope": 0.0342, "distance": 2.1124359609167568e-06, "feature_x": -75.050700101924093, "feature_y": 38.492502109975632, "nearest_x": -75.0507, "nearest_y": 38.4925 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052113535213962, 38.492433832928768 ], [ -75.044808993879812, 38.492786684750349 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33297", "slope": 0.0542, "distance": 1.808184285528017e-05, "feature_x": -75.051400910236296, "feature_y": 38.492918058917766, "nearest_x": -75.0514, "nearest_y": 38.4929 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052137577332857, 38.49288092816969 ], [ -75.044853814051478, 38.493248056796304 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33298", "slope": 0.0282, "distance": 1.7309216820946259e-07, "feature_x": -75.050799991112186, "feature_y": 38.493399827136166, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052161716038825, 38.493329813918365 ], [ -75.044899098112722, 38.493703222116096 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33298", "slope": 0.0322, "distance": 1.7309216820946259e-07, "feature_x": -75.050799991112186, "feature_y": 38.493399827136166, "nearest_x": -75.0508, "nearest_y": 38.4934 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052161716038825, 38.493329813918365 ], [ -75.044899098112722, 38.493703222116096 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33299", "slope": 0.0286, "distance": 1.6583821342339404e-05, "feature_x": -75.05119014772697, "feature_y": 38.493831438093075, "nearest_x": -75.051191, "nearest_y": 38.493848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052197079818015, 38.493779621532063 ], [ -75.044942762933843, 38.494152927494575 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33300", "slope": 0.0305, "distance": 1.8739699880210345e-06, "feature_x": -75.050899904820298, "feature_y": 38.494298128448683, "nearest_x": -75.0509, "nearest_y": 38.4943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052235246287765, 38.494230218265166 ], [ -75.04498286616986, 38.494599045622607 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33300", "slope": 0.0334, "distance": 1.8739699880210345e-06, "feature_x": -75.050899904820298, "feature_y": 38.494298128448683, "nearest_x": -75.0509, "nearest_y": 38.4943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052235246287765, 38.494230218265166 ], [ -75.04498286616986, 38.494599045622607 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33301", "slope": 0.031, "distance": 1.6189949624947681e-05, "feature_x": -75.051299190698487, "feature_y": 38.494729830290666, "nearest_x": -75.0513, "nearest_y": 38.494746 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052273434748372, 38.494681068920748 ], [ -75.04501895874958, 38.495044158834197 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33302", "slope": 0.0423, "distance": 3.5265420675179143e-06, "feature_x": -75.050999825904427, "feature_y": 38.495196477757858, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05231160001577, 38.495131640059007 ], [ -75.045052473116542, 38.495490440465055 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33302", "slope": 0.0336, "distance": 3.5265420675179143e-06, "feature_x": -75.050999825904427, "feature_y": 38.495196477757858, "nearest_x": -75.051, "nearest_y": 38.4952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05231160001577, 38.495131640059007 ], [ -75.045052473116542, 38.495490440465055 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33303", "slope": 0.0524, "distance": 1.5458594621463918e-05, "feature_x": -75.05137524023317, "feature_y": 38.495629560087373, "nearest_x": -75.051376, "nearest_y": 38.495645 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052349714686173, 38.495581608172998 ], [ -75.045084824719581, 38.495939098695736 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33304", "slope": 0.0415, "distance": 5.1390880799913724e-07, "feature_x": -75.050999974593097, "feature_y": 38.496099486719615, "nearest_x": -75.051, "nearest_y": 38.4961 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052387763441132, 38.496030792444849 ], [ -75.04511692995824, 38.496390692031696 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33305", "slope": 0.0402, "distance": 1.6385947936351318e-05, "feature_x": -75.051422176222133, "feature_y": 38.496529634772237, "nearest_x": -75.051423, "nearest_y": 38.496546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052425739961009, 38.496479118298517 ], [ -75.045149679710292, 38.496845373965414 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33306", "slope": 0.0381, "distance": 2.8896758474969502e-06, "feature_x": -75.051099850828592, "feature_y": 38.496997114176999, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052463646979135, 38.496926618034195 ], [ -75.045183941792175, 38.497302914107642 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33306", "slope": 0.0339, "distance": 2.8896758474969502e-06, "feature_x": -75.051099850828592, "feature_y": 38.496997114176999, "nearest_x": -75.0511, "nearest_y": 38.497 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052463646979135, 38.496926618034195 ], [ -75.045183941792175, 38.497302914107642 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33307", "slope": 0.0367, "distance": 1.7998707321301237e-05, "feature_x": -75.051443039165974, "feature_y": 38.497430026957318, "nearest_x": -75.051444, "nearest_y": 38.497448 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05250149723517, 38.497373442073496 ], [ -75.045220557158615, 38.497762679172574 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33308", "slope": 0.0313, "distance": 2.7339921778698145e-07, "feature_x": -75.051099984866241, "feature_y": 38.497899727019963, "nearest_x": -75.0511, "nearest_y": 38.4979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052539319630455, 38.497819931617514 ], [ -75.045260611474816, 38.49822345653822 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33308", "slope": 0.0392, "distance": 2.7339921778698145e-07, "feature_x": -75.051099984866241, "feature_y": 38.497899727019963, "nearest_x": -75.0511, "nearest_y": 38.4979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052539319630455, 38.497819931617514 ], [ -75.045260611474816, 38.49822345653822 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33309", "slope": 0.0588, "distance": 1.1145071398850683e-05, "feature_x": -75.051800637757395, "feature_y": 38.498311126809156, "nearest_x": -75.0518, "nearest_y": 38.4983 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052577159240641, 38.498266618782083 ], [ -75.045304607246251, 38.498683461004767 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33310", "slope": 0.0368, "distance": 2.8096626871874982e-06, "feature_x": -75.051199835149049, "feature_y": 38.498797195177623, "nearest_x": -75.0512, "nearest_y": 38.4988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05261505952862, 38.498714016618003 ], [ -75.04535167132444, 38.499140915827404 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33310", "slope": 0.0375, "distance": 2.8096626871874982e-06, "feature_x": -75.051199835149049, "feature_y": 38.498797195177623, "nearest_x": -75.0512, "nearest_y": 38.4988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05261505952862, 38.498714016618003 ], [ -75.04535167132444, 38.499140915827404 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33311", "slope": 0.0829, "distance": 7.3113255861307193e-06, "feature_x": -75.051900434862873, "feature_y": 38.499207298381748, "nearest_x": -75.0519, "nearest_y": 38.4992 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05265304844653, 38.49916245505657 ], [ -75.045400427434856, 38.499594591347353 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33312", "slope": 0.0327, "distance": 9.8924894242667429e-07, "feature_x": -75.051200058882046, "feature_y": 38.499700987494997, "nearest_x": -75.0512, "nearest_y": 38.4997 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052691138177039, 38.499612077864718 ], [ -75.045449561530887, 38.500043876431299 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33313", "slope": 0.0307, "distance": 2.1244836437282032e-05, "feature_x": -75.051745751134476, "feature_y": 38.500120791902248, "nearest_x": -75.051747, "nearest_y": 38.500142 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052729639927577, 38.500062854372004 ], [ -75.045497826252259, 38.500488708824726 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33314", "slope": 0.0395, "distance": 1.0199387760160403e-06, "feature_x": -75.051299941517755, "feature_y": 38.500598981739259, "nearest_x": -75.0513, "nearest_y": 38.5006 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052768774877805, 38.500514621549961 ], [ -75.04554404137555, 38.500929563028329 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33315", "slope": 0.049, "distance": 1.7441935663736934e-05, "feature_x": -75.05190096560294, "feature_y": 38.50101741518678, "nearest_x": -75.0519, "nearest_y": 38.501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052807974120597, 38.50096712516676 ], [ -75.045587089782785, 38.501367494524771 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33316", "slope": 0.0308, "distance": 3.0522668924845864e-06, "feature_x": -75.051399837793184, "feature_y": 38.501496952046239, "nearest_x": -75.0514, "nearest_y": 38.5015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052847199605438, 38.501419925959169 ], [ -75.045625946546963, 38.501804228530993 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33316", "slope": 0.0386, "distance": 3.0522668924845864e-06, "feature_x": -75.051399837793184, "feature_y": 38.501496952046239, "nearest_x": -75.0514, "nearest_y": 38.5015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052847199605438, 38.501419925959169 ], [ -75.045625946546963, 38.501804228530993 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33317", "slope": 0.0711, "distance": 1.2792168716765121e-05, "feature_x": -75.052100652018297, "feature_y": 38.501912775541186, "nearest_x": -75.0521, "nearest_y": 38.5019 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052886420905082, 38.501872672684627 ], [ -75.045661721827457, 38.502241395696807 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33318", "slope": 0.0327, "distance": 4.8321041704736883e-06, "feature_x": -75.051499763738008, "feature_y": 38.502395173675211, "nearest_x": -75.0515, "nearest_y": 38.5024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052925638694632, 38.502325373137559 ], [ -75.045696844035774, 38.502679242704744 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33319", "slope": 0.06, "distance": 1.5076586750325343e-05, "feature_x": -75.052245294908801, "feature_y": 38.502811939909883, "nearest_x": -75.052246, "nearest_y": 38.502827 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052964872296414, 38.502778250358105 ], [ -75.045731812437197, 38.503116891550633 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33320", "slope": 0.0298, "distance": 1.5916206956949596e-06, "feature_x": -75.051499929272566, "feature_y": 38.503298409951555, "nearest_x": -75.0515, "nearest_y": 38.5033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05300413872547, 38.50323150074135 ], [ -75.045765973294152, 38.503553463837243 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33321", "slope": 0.0437, "distance": 1.1689112920545484e-05, "feature_x": -75.052109511218802, "feature_y": 38.503724321110766, "nearest_x": -75.05211, "nearest_y": 38.503736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053043447514241, 38.50368523430334 ], [ -75.04579871100502, 38.503988438731909 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33322", "slope": 0.0282, "distance": 2.8362838516426107e-06, "feature_x": -75.051599889769335, "feature_y": 38.504197165858983, "nearest_x": -75.0516, "nearest_y": 38.5042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053082802012284, 38.504139489688171 ], [ -75.045829439853918, 38.50442160088982 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33323", "slope": 0.0823, "distance": 3.8727419949577527e-06, "feature_x": -75.052563862132786, "feature_y": 38.504614129712778, "nearest_x": -75.052564, "nearest_y": 38.504618 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053122199945349, 38.504594240624854 ], [ -75.045857597275273, 38.504853020019688 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33324", "slope": 0.0411, "distance": 4.9221372833627339e-06, "feature_x": -75.052236842073299, "feature_y": 38.505079080396904, "nearest_x": -75.052237, "nearest_y": 38.505084 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053161633178874, 38.505049393203215 ], [ -75.045882637121395, 38.505283059989686 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33325", "slope": 0.0643, "distance": 1.1204198383363751e-06, "feature_x": -75.052486031869876, "feature_y": 38.505525119966485, "nearest_x": -75.052486, "nearest_y": 38.505524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053201086541961, 38.505504772302743 ], [ -75.045904022141343, 38.505712418261226 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33326", "slope": 0.0394, "distance": 4.5535754333129857e-07, "feature_x": -75.052297988674169, "feature_y": 38.505983544783327, "nearest_x": -75.052298, "nearest_y": 38.505984 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053240368178535, 38.505960098298331 ], [ -75.04592121562932, 38.506142199457805 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33327", "slope": 0.0446, "distance": 1.4370768278887291e-06, "feature_x": -75.052335031057893, "feature_y": 38.506435436741178, "nearest_x": -75.052335, "nearest_y": 38.506434 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053259864243245, 38.506415444710761 ], [ -75.0459342562405, 38.506573801677547 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33328", "slope": 0.0246, "distance": 1.6980167488928067e-06, "feature_x": -75.051600031974473, "feature_y": 38.506901697715676, "nearest_x": -75.0516, "nearest_y": 38.5069 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053279329687371, 38.50687007011674 ], [ -75.045944684304914, 38.507008209542946 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33329", "slope": 0.0315, "distance": 3.4841036280673923e-06, "feature_x": -75.052363057619814, "feature_y": 38.507339483627142, "nearest_x": -75.052363, "nearest_y": 38.507336 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053298765894027, 38.507324006846474 ], [ -75.045953861729757, 38.507445492862907 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33330", "slope": 0.0287, "distance": 2.557075410415634e-06, "feature_x": -75.051600037530889, "feature_y": 38.507802556799973, "nearest_x": -75.0516, "nearest_y": 38.5078 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053318176355418, 38.507777336486178 ], [ -75.045962006527859, 38.507885316649777 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33331", "slope": 0.0403, "distance": 7.0743997465206264e-06, "feature_x": -75.052432093403922, "feature_y": 38.508242073783109, "nearest_x": -75.052432, "nearest_y": 38.508235 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053337563584122, 38.508230117738329 ], [ -75.045969300743451, 38.508327410042803 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33332", "slope": 0.0386, "distance": 4.8241039214486448e-06, "feature_x": -75.051500058274939, "feature_y": 38.508704823751927, "nearest_x": -75.0515, "nearest_y": 38.5087 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053356929317872, 38.508682391207522 ], [ -75.045975934544714, 38.508771559754585 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33333", "slope": 0.0384, "distance": 4.4631362241604917e-05, "feature_x": -75.051499496737534, "feature_y": 38.509155371475238, "nearest_x": -75.0515, "nearest_y": 38.5092 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052688069848614, 38.509141968293093 ], [ -75.045982103930598, 38.509217589457499 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33334", "slope": 0.0354, "distance": 5.9658875706430745e-06, "feature_x": -75.051500064262427, "feature_y": 38.509605965541454, "nearest_x": -75.0515, "nearest_y": 38.5096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052707806773512, 38.509592955413723 ], [ -75.045988009186843, 38.509665342883821 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33335", "slope": 0.102, "distance": 8.9983727893638392e-06, "feature_x": -75.052509094838157, "feature_y": 38.510045997873, "nearest_x": -75.052509, "nearest_y": 38.510037 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052727533139034, 38.510043695519421 ], [ -75.045993853767442, 38.510114668927997 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33336", "slope": 0.0534, "distance": 1.0264310899836717e-06, "feature_x": -75.052100010832291, "feature_y": 38.51050102637393, "nearest_x": -75.0521, "nearest_y": 38.5105 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052747249244248, 38.510494195452466 ], [ -75.045999843378993, 38.510565407232704 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33337", "slope": 0.0326, "distance": 4.1867359659559056e-05, "feature_x": -75.051499548549387, "feature_y": 38.510958135074382, "nearest_x": -75.0515, "nearest_y": 38.511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052766955647655, 38.510944467984068 ], [ -75.046006185103082, 38.511017372784565 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33338", "slope": 0.0656, "distance": 1.1008721665271069e-06, "feature_x": -75.052200012318949, "feature_y": 38.511401100803241, "nearest_x": -75.0522, "nearest_y": 38.5114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052786653340661, 38.511394535774713 ], [ -75.046013086422519, 38.511470337940636 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33339", "slope": 0.1023, "distance": 7.2541977426817552e-06, "feature_x": -75.05256608506329, "feature_y": 38.511847253698996, "nearest_x": -75.052566, "nearest_y": 38.51184 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052806343959219, 38.511844436210495 ], [ -75.046020754039134, 38.511924010044773 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33340", "slope": 0.0781, "distance": 1.9477493825579865e-06, "feature_x": -75.052200024031919, "feature_y": 38.512301947601124, "nearest_x": -75.0522, "nearest_y": 38.5123 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052826029860967, 38.512294223164368 ], [ -75.046029205287226, 38.512378090820448 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33341", "slope": 0.0303, "distance": 3.854731053556724e-05, "feature_x": -75.051499498359817, "feature_y": 38.51276145595368, "nearest_x": -75.0515, "nearest_y": 38.5128 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052845712739796, 38.512743935342677 ], [ -75.046037976397074, 38.512832536164382 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33342", "slope": 0.0762, "distance": 2.7175751472990456e-06, "feature_x": -75.052200037498224, "feature_y": 38.513202717316425, "nearest_x": -75.0522, "nearest_y": 38.5132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052865390970609, 38.513193535619159 ], [ -75.046046785801011, 38.513287630519166 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33343", "slope": 0.0288, "distance": 3.6615971338805566e-05, "feature_x": -75.051499459693602, "feature_y": 38.513663388015267, "nearest_x": -75.0515, "nearest_y": 38.5137 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052885060868832, 38.513642939815377 ], [ -75.046055852422583, 38.513743722798175 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33344", "slope": 0.0555, "distance": 4.9008952249893408e-06, "feature_x": -75.052100078103024, "feature_y": 38.514104900272841, "nearest_x": -75.0521, "nearest_y": 38.5141 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052904719263637, 38.514092075495157 ], [ -75.046065421646787, 38.514201083678834 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33345", "slope": 0.0312, "distance": 3.4355035969901976e-05, "feature_x": -75.051499402917386, "feature_y": 38.514565650153003, "nearest_x": -75.0515, "nearest_y": 38.5146 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052924363452561, 38.51454088092602 ], [ -75.046075740644369, 38.514659926393371 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33346", "slope": 0.0466, "distance": 5.4408286662344215e-06, "feature_x": -75.052100104028597, "feature_y": 38.515005439834063, "nearest_x": -75.0521, "nearest_y": 38.515 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052943991056651, 38.514989301770825 ], [ -75.04608705943383, 38.515120430218658 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33347", "slope": 0.1111, "distance": 2.6788944805067817e-06, "feature_x": -75.052678943237567, "feature_y": 38.515443321706947, "nearest_x": -75.052679, "nearest_y": 38.515446 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052947226279088, 38.515437635847711 ], [ -75.046099632046051, 38.515582760402332 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33348", "slope": 0.0307, "distance": 1.5105505231696666e-05, "feature_x": -75.051700356770496, "feature_y": 38.515915101291441, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052947733990422, 38.515885631799023 ], [ -75.046113717948487, 38.51604708655443 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33348", "slope": 0.0307, "distance": 1.5105505231696666e-05, "feature_x": -75.051700356770496, "feature_y": 38.515915101291441, "nearest_x": -75.0517, "nearest_y": 38.5159 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052947733990422, 38.515885631799023 ], [ -75.046113717948487, 38.51604708655443 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33349", "slope": 0.1008, "distance": 7.0111147222300765e-06, "feature_x": -75.052732815047307, "feature_y": 38.51633899132522, "nearest_x": -75.052733, "nearest_y": 38.516346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052948241347096, 38.516333306416698 ], [ -75.046130505508145, 38.516513220403994 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33350", "slope": 0.073, "distance": 2.9702158001036795e-06, "feature_x": -75.052399913070971, "feature_y": 38.516797031056548, "nearest_x": -75.0524, "nearest_y": 38.5168 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052948748691136, 38.516780961451751 ], [ -75.046151777041601, 38.516979973039547 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33351", "slope": 0.096, "distance": 1.2278875854915821e-05, "feature_x": -75.05280160772304, "feature_y": 38.51723372739184, "nearest_x": -75.052802, "nearest_y": 38.517246 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052949256488461, 38.517229008003156 ], [ -75.046177606876128, 38.517445454422294 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33352", "slope": 0.0742, "distance": 6.8967492579864722e-06, "feature_x": -75.052499764542077, "feature_y": 38.517693107271228, "nearest_x": -75.0525, "nearest_y": 38.5177 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052949765066657, 38.517677735103284 ], [ -75.046206697891378, 38.517908080526041 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33353", "slope": 0.1241, "distance": 0.00010587249573526335, "feature_x": -75.052868222057114, "feature_y": 38.518130194931594, "nearest_x": -75.052872, "nearest_y": 38.518236 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052950274564466, 38.518127265112724 ], [ -75.046237772124371, 38.518366945981995 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33354", "slope": 0.0494, "distance": 2.2844382853359917e-06, "feature_x": -75.05239991657912, "feature_y": 38.518597717085363, "nearest_x": -75.0524, "nearest_y": 38.5186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.052950784970108, 38.518577587585426 ], [ -75.046269586722815, 38.518821727895364 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33355", "slope": 0.1268, "distance": 1.6121542553131247e-05, "feature_x": -75.052915408715918, "feature_y": 38.519029889304257, "nearest_x": -75.052916, "nearest_y": 38.519046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053466603880523, 38.519009659704835 ], [ -75.046300942609918, 38.519272649053114 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33356", "slope": 0.0497, "distance": 8.9132109070035379e-05, "feature_x": -75.052703234776857, "feature_y": 38.519489073391568, "nearest_x": -75.0527, "nearest_y": 38.5194 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053496248581027, 38.519460274412921 ], [ -75.046330687278711, 38.519720497937193 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33357", "slope": 0.0243, "distance": 2.0520756230371228e-05, "feature_x": -75.052454269328081, "feature_y": 38.519949492256224, "nearest_x": -75.052455, "nearest_y": 38.51997 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053525921365107, 38.51991131028656 ], [ -75.046357777425584, 38.520166704616983 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33358", "slope": 0.0387, "distance": 7.6443588398753284e-06, "feature_x": -75.052699732917446, "feature_y": 38.520392360308321, "nearest_x": -75.0527, "nearest_y": 38.5204 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053555600652643, 38.520362439291191 ], [ -75.046381930548577, 38.520613229801498 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33359", "slope": 0.123, "distance": 1.3874882804602762e-05, "feature_x": -75.052983519977843, "feature_y": 38.520834133423222, "nearest_x": -75.052984, "nearest_y": 38.520848 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053585262847577, 38.520813302766335 ], [ -75.046403810414574, 38.521061904584641 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33360", "slope": 0.1023, "distance": 7.6096011759184905e-05, "feature_x": -75.052995649920092, "feature_y": 38.521285049858179, "nearest_x": -75.052993, "nearest_y": 38.521209 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053614879815925, 38.521263473095445 ], [ -75.046424329897121, 38.521514024289047 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33361", "slope": 0.0545, "distance": 1.500397468642528e-05, "feature_x": -75.052990462812403, "feature_y": 38.521736005644868, "nearest_x": -75.052991, "nearest_y": 38.521751 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053644426979631, 38.521712576731545 ], [ -75.046444378894449, 38.521970525577949 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33362", "slope": 0.057, "distance": 1.0521606343767496e-05, "feature_x": -75.052899603545669, "feature_y": 38.522189485865511, "nearest_x": -75.0529, "nearest_y": 38.5222 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053673883058096, 38.522160290265724 ], [ -75.046464853810392, 38.522432119662483 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33363", "slope": 0.053, "distance": 1.8254008159243207e-05, "feature_x": -75.053052259348732, "feature_y": 38.522632761023893, "nearest_x": -75.053053, "nearest_y": 38.522651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053703229141462, 38.522606326337971 ], [ -75.046486672199606, 38.522899377441618 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33364", "slope": 0.117, "distance": 6.8481916549089619e-05, "feature_x": -75.05308305397962, "feature_y": 38.523079413785908, "nearest_x": -75.05308, "nearest_y": 38.523011 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053732448118765, 38.523050424943328 ], [ -75.046510786234194, 38.523372798686637 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33365", "slope": 0.0532, "distance": 2.6300667453782486e-05, "feature_x": -75.053112688937645, "feature_y": 38.523524732030452, "nearest_x": -75.053114, "nearest_y": 38.523551 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053764318038191, 38.523492208527891 ], [ -75.046538196656698, 38.523852871943717 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33366", "slope": 0.0517, "distance": 2.3394310713343245e-05, "feature_x": -75.052998679364052, "feature_y": 38.523976642994747, "nearest_x": -75.053, "nearest_y": 38.524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053806909520731, 38.523930944593729 ], [ -75.046569969378865, 38.524340130751945 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33367", "slope": 0.0642, "distance": 2.1737637061158768e-05, "feature_x": -75.053001402874145, "feature_y": 38.524421692321432, "nearest_x": -75.053, "nearest_y": 38.5244 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053849227917198, 38.524366862236278 ], [ -75.046607257535342, 38.524835211049485 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33368", "slope": 0.0658, "distance": 3.5302188405996582e-05, "feature_x": -75.053409609748414, "feature_y": 38.524836205592159, "nearest_x": -75.053407, "nearest_y": 38.524801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053891325170241, 38.52480049660462 ], [ -75.04665599429606, 38.525336843020568 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33369", "slope": 0.0701, "distance": 2.3951922050770403e-05, "feature_x": -75.05347400042676, "feature_y": 38.525272868239625, "nearest_x": -75.053472, "nearest_y": 38.525249 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053933445325242, 38.525234361592993 ], [ -75.046724838873899, 38.525838523838054 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33370", "slope": 0.0719, "distance": 1.4506129535203134e-05, "feature_x": -75.053533328275719, "feature_y": 38.525712445188738, "nearest_x": -75.053532, "nearest_y": 38.525698 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.053975907935978, 38.525671748744919 ], [ -75.046812684607701, 38.526330427265201 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33371", "slope": 0.083, "distance": 1.5499419883674229e-05, "feature_x": -75.053298502004125, "feature_y": 38.526184573139496, "nearest_x": -75.0533, "nearest_y": 38.5262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054018903481577, 38.526114619927789 ], [ -75.046910829359888, 38.526804835910696 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33372", "slope": 0.0283, "distance": 2.2023733817969476e-05, "feature_x": -75.052897840739561, "feature_y": 38.526678082371348, "nearest_x": -75.0529, "nearest_y": 38.5267 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054062468055477, 38.526563346707306 ], [ -75.047011106834134, 38.527258026113387 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33373", "slope": 0.0919, "distance": 1.2767872487076825e-05, "feature_x": -75.053684221200641, "feature_y": 38.527057709336603, "nearest_x": -75.053683, "nearest_y": 38.527045 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054106524249363, 38.527017131549876 ], [ -75.04710619209088, 38.527689771698213 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33374", "slope": 0.0761, "distance": 1.8827647707393465e-05, "feature_x": -75.053715693845774, "feature_y": 38.527513751298748, "nearest_x": -75.053714, "nearest_y": 38.527495 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054150922728454, 38.527474436123114 ], [ -75.047189662453007, 38.528103261969157 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33375", "slope": 0.0971, "distance": 1.7562270364388384e-05, "feature_x": -75.053598556911908, "feature_y": 38.527982497119176, "nearest_x": -75.0536, "nearest_y": 38.528 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054195471455841, 38.527933282348108 ], [ -75.047255823580159, 38.528505446630149 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33375", "slope": 0.1076, "distance": 1.7562270364388384e-05, "feature_x": -75.053598556911908, "feature_y": 38.527982497119176, "nearest_x": -75.0536, "nearest_y": 38.528 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054195471455841, 38.527933282348108 ], [ -75.047255823580159, 38.528505446630149 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33376", "slope": 0.0971, "distance": 2.8682529670623738e-05, "feature_x": -75.053865120701218, "feature_y": 38.52841960402305, "nearest_x": -75.053863, "nearest_y": 38.528391 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05423998994678, 38.528391811231117 ], [ -75.047303133101863, 38.528906109539825 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33377", "slope": 0.0467, "distance": 8.3482521086244654e-06, "feature_x": -75.053400555151413, "feature_y": 38.528908329773117, "nearest_x": -75.0534, "nearest_y": 38.5289 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054284419981684, 38.528849423149197 ], [ -75.047341370497023, 38.529312154090455 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33378", "slope": 0.1064, "distance": 3.917652865777485e-05, "feature_x": -75.054002347893004, "feature_y": 38.529326106109444, "nearest_x": -75.054, "nearest_y": 38.529287 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054328799247003, 38.529306506285806 ], [ -75.047379033400887, 38.529723763507327 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33379", "slope": 0.0484, "distance": 5.1365511885560573e-06, "feature_x": -75.053600276389304, "feature_y": 38.529805129109775, "nearest_x": -75.0536, "nearest_y": 38.5298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054373168528912, 38.529763480729045 ], [ -75.047415427688094, 38.530138408386755 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33379", "slope": 0.0537, "distance": 5.1365511885560573e-06, "feature_x": -75.053600276389304, "feature_y": 38.529805129109775, "nearest_x": -75.0536, "nearest_y": 38.5298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054373168528912, 38.529763480729045 ], [ -75.047415427688094, 38.530138408386755 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33380", "slope": 0.0441, "distance": 3.9526578027785332e-05, "feature_x": -75.053751109393858, "feature_y": 38.530252518662905, "nearest_x": -75.053753, "nearest_y": 38.530292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054417552957247, 38.530220605298673 ], [ -75.047449493572572, 38.530554278289699 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33381", "slope": 0.0636, "distance": 1.4076498689486548e-05, "feature_x": -75.05360058885806, "feature_y": 38.530714064176536, "nearest_x": -75.0536, "nearest_y": 38.5307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05442683943366, 38.530679469594638 ], [ -75.047480291103398, 38.530970317119845 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33382", "slope": 0.0536, "distance": 3.0727112958321644e-05, "feature_x": -75.053873901145337, "feature_y": 38.531158292541797, "nearest_x": -75.053875, "nearest_y": 38.531189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054425151394796, 38.531138566261959 ], [ -75.047506956074628, 38.531386131241717 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33383", "slope": 0.0572, "distance": 1.8718947965955001e-05, "feature_x": -75.053700555552936, "feature_y": 38.531618710702119, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054423464869842, 38.531597246280825 ], [ -75.047528666462853, 38.531801964707142 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33383", "slope": 0.0608, "distance": 1.8718947965955001e-05, "feature_x": -75.053700555552936, "feature_y": 38.531618710702119, "nearest_x": -75.0537, "nearest_y": 38.5316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054423464869842, 38.531597246280825 ], [ -75.047528666462853, 38.531801964707142 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33384", "slope": 0.0609, "distance": 2.3383614982965709e-05, "feature_x": -75.053902444361256, "feature_y": 38.532067622987462, "nearest_x": -75.053903, "nearest_y": 38.532091 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054421780706591, 38.532055279092056 ], [ -75.047544612640749, 38.532218739716498 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33385", "slope": 0.0664, "distance": 2.0319118645206862e-05, "feature_x": -75.053908627610227, "feature_y": 38.532521684294046, "nearest_x": -75.053909, "nearest_y": 38.532542 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05442010021325, 38.532512308928609 ], [ -75.047553969449496, 38.532638166080467 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33386", "slope": 0.0678, "distance": 2.3500236927298617e-05, "feature_x": -75.05379967604614, "feature_y": 38.532976501996053, "nearest_x": -75.0538, "nearest_y": 38.533 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054418424728894, 38.532967971653491 ], [ -75.047556926848173, 38.533062567293115 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33387", "slope": 0.0854, "distance": 1.6591976998632157e-05, "feature_x": -75.053923827674296, "feature_y": 38.533427408917923, "nearest_x": -75.053924, "nearest_y": 38.533444 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054416754173545, 38.533422289064724 ], [ -75.047556784570403, 38.533493541142619 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33388", "slope": 0.0677, "distance": 1.8692822056010774e-05, "feature_x": -75.053699849504724, "feature_y": 38.533881307783773, "nearest_x": -75.0537, "nearest_y": 38.5339 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054415087488024, 38.533875549240307 ], [ -75.047556380338179, 38.533930770249484 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33389", "slope": 0.0746, "distance": 1.8358265782064566e-05, "feature_x": -75.05385187909819, "feature_y": 38.534331642132337, "nearest_x": -75.053852, "nearest_y": 38.53435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054413423967546, 38.534327943892634 ], [ -75.047555864722639, 38.534373106620009 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33390", "slope": 0.2207, "distance": 4.2441970729474846e-06, "feature_x": -75.054209975109345, "feature_y": 38.534780755875914, "nearest_x": -75.05421, "nearest_y": 38.534785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054411763246591, 38.53477957244241 ], [ -75.047555259754816, 38.53481978400329 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33391", "slope": 0.0713, "distance": 1.9277269746257766e-05, "feature_x": -75.053849887618981, "feature_y": 38.535233723057829, "nearest_x": -75.05385, "nearest_y": 38.535253 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054410105243605, 38.535230457092354 ], [ -75.047554611789366, 38.535270423355378 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33392", "slope": 0.0633, "distance": 1.4855224841071392e-05, "feature_x": -75.053699903671031, "feature_y": 38.535685145087484, "nearest_x": -75.0537, "nearest_y": 38.5357 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054407219667937, 38.535680558387412 ], [ -75.047553984845891, 38.535724999249474 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33393", "slope": 0.0494, "distance": 0.00013531290842117727, "feature_x": -75.053701068222054, "feature_y": 38.53613530869184, "nearest_x": -75.0537, "nearest_y": 38.536 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054348896020514, 38.536130194283267 ], [ -75.047553460780009, 38.536183842231608 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33394", "slope": 0.0503, "distance": 1.3968141191933368e-05, "feature_x": -75.053599857605349, "feature_y": 38.53658603258463, "nearest_x": -75.0536, "nearest_y": 38.5366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0542906806524, 38.536578989799189 ], [ -75.047553146412113, 38.536647677443952 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33395", "slope": 0.0542, "distance": 6.1820325885054796e-05, "feature_x": -75.053399159187819, "feature_y": 38.537038185392284, "nearest_x": -75.0534, "nearest_y": 38.5371 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054225798103971, 38.537026941317563 ], [ -75.047553190489666, 38.537117703193317 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33396", "slope": 0.0581, "distance": 0.00012281282818416196, "feature_x": -75.053763735762786, "feature_y": 38.537481208045882, "nearest_x": -75.053766, "nearest_y": 38.537604 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054241390796875, 38.537472400267617 ], [ -75.047553817262184, 38.537595716595526 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33397", "slope": 0.085, "distance": 2.9812811774832364e-05, "feature_x": -75.053700745744592, "feature_y": 38.537929803483202, "nearest_x": -75.0537, "nearest_y": 38.5379 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054280089597569, 38.53791530710587 ], [ -75.047557418593499, 38.538083522190995 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33398", "slope": 0.0551, "distance": 1.643803477360871e-05, "feature_x": -75.053499454571622, "feature_y": 38.538383571016617, "nearest_x": -75.0535, "nearest_y": 38.5384 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054318628212727, 38.538356375143564 ], [ -75.047571287523041, 38.538580381156024 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33399", "slope": 0.0741, "distance": 2.4449103970761707e-05, "feature_x": -75.053701030906524, "feature_y": 38.538824427360005, "nearest_x": -75.0537, "nearest_y": 38.5388 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054357105782373, 38.538796739068609 ], [ -75.04759954698747, 38.539081927945531 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33400", "slope": 0.0597, "distance": 4.0334778011863874e-05, "feature_x": -75.053870062699744, "feature_y": 38.539264282000779, "nearest_x": -75.053868, "nearest_y": 38.539224 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054395607221196, 38.53923737071203 ], [ -75.047639971960464, 38.539583303061725 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33401", "slope": 0.1125, "distance": 3.6913193625819117e-05, "feature_x": -75.053898199430918, "feature_y": 38.53971084761006, "nearest_x": -75.053896, "nearest_y": 38.539674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054434183619364, 38.539678854756346 ], [ -75.047689925592863, 38.540081418983227 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33402", "slope": 0.1335, "distance": 0.0001230814420706332, "feature_x": -75.053962277920618, "feature_y": 38.540155802758164, "nearest_x": -75.053954, "nearest_y": 38.540033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05447285198791, 38.540121385847158 ], [ -75.047746785803653, 38.540574778285432 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33403", "slope": 0.0512, "distance": 2.5083535630932363e-05, "feature_x": -75.053701860223626, "feature_y": 38.540625014462371, "nearest_x": -75.0537, "nearest_y": 38.5406 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054511597789528, 38.54056479757962 ], [ -75.047808046568349, 38.541063313364148 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33404", "slope": 0.0594, "distance": 3.8716930727456572e-05, "feature_x": -75.053896881163155, "feature_y": 38.541061408892453, "nearest_x": -75.0539, "nearest_y": 38.5411 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05455037777061, 38.541008594930169 ], [ -75.04787140515073, 38.541548372802055 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33405", "slope": 0.0751, "distance": 3.4103771494074847e-06, "feature_x": -75.054000296520471, "feature_y": 38.54150339746198, "nearest_x": -75.054, "nearest_y": 38.5415 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054589124506336, 38.541452006290733 ], [ -75.047935085767918, 38.542032751181416 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33406", "slope": 0.112, "distance": 1.8688638925577459e-05, "feature_x": -75.054184751070935, "feature_y": 38.541936606422965, "nearest_x": -75.054183, "nearest_y": 38.541918 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054627827193002, 38.54189490804157 ], [ -75.048003539229256, 38.542518327071022 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33407", "slope": 0.0925, "distance": 1.3780237214872791e-05, "feature_x": -75.054256384406912, "feature_y": 38.542379710519874, "nearest_x": -75.054255, "nearest_y": 38.542366 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054689651220826, 38.542335961808817 ], [ -75.048082876843054, 38.54300307466864 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33408", "slope": 0.0573, "distance": 1.1736246133620229e-05, "feature_x": -75.054299249550112, "feature_y": 38.54282666953717, "nearest_x": -75.054298, "nearest_y": 38.542815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054819904371726, 38.542770918886333 ], [ -75.048172174663549, 38.543482744154112 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33409", "slope": 0.0558, "distance": 6.6173924475720401e-06, "feature_x": -75.054399735081603, "feature_y": 38.543268576438081, "nearest_x": -75.054399, "nearest_y": 38.543262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.054950500148806, 38.543207014653618 ], [ -75.048267728660662, 38.543953981668125 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33410", "slope": 0.0582, "distance": 2.2250973581624567e-06, "feature_x": -75.054502253541884, "feature_y": 38.543711210605068, "nearest_x": -75.054502, "nearest_y": 38.543709 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055081592817999, 38.543644764194894 ], [ -75.048366056631096, 38.54441499209139 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33411", "slope": 0.0388, "distance": 8.9471656756348237e-05, "feature_x": -75.054310283427185, "feature_y": 38.544188878729109, "nearest_x": -75.0543, "nearest_y": 38.5441 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055213253080893, 38.544084403532622 ], [ -75.048463962325116, 38.544865308488795 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33412", "slope": 0.0581, "distance": 3.2047509778111219e-06, "feature_x": -75.05471963418951, "feature_y": 38.544597816195434, "nearest_x": -75.05472, "nearest_y": 38.544601 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055345473847098, 38.544525908919276 ], [ -75.048558570501442, 38.545305705672654 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33413", "slope": 0.0537, "distance": 5.3000007666561842e-06, "feature_x": -75.054823406887039, "feature_y": 38.545042733290863, "nearest_x": -75.054824, "nearest_y": 38.545048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055478170219672, 38.544968996805402 ], [ -75.048647331519291, 38.545738254968519 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33414", "slope": 0.049, "distance": 1.8658628319326027e-06, "feature_x": -75.054800203012718, "feature_y": 38.545501854785684, "nearest_x": -75.0548, "nearest_y": 38.5455 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05561116985271, 38.545413091659299 ], [ -75.048728124774215, 38.546166464756816 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33415", "slope": 0.0575, "distance": 4.6977894790788652e-05, "feature_x": -75.0549049535705, "feature_y": 38.545946716000884, "nearest_x": -75.0549, "nearest_y": 38.5459 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055740221986014, 38.545858147610929 ], [ -75.048802767025677, 38.546593766490815 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33416", "slope": 0.0452, "distance": 5.6624732615166027e-06, "feature_x": -75.055092422001223, "feature_y": 38.546383367103687, "nearest_x": -75.055093, "nearest_y": 38.546389 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05586528460276, 38.546304062671858 ], [ -75.048875209465436, 38.54702132332865 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33417", "slope": 0.047, "distance": 4.4619802821189455e-06, "feature_x": -75.055152559986496, "feature_y": 38.546833559768459, "nearest_x": -75.055153, "nearest_y": 38.546838 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.055990501547527, 38.546750522296513 ], [ -75.048946269509216, 38.54744858436608 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33418", "slope": 0.0414, "distance": 4.1710493107255251e-06, "feature_x": -75.055243603951794, "feature_y": 38.547280847795989, "nearest_x": -75.055244, "nearest_y": 38.547285 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056115906151533, 38.547197645303612 ], [ -75.049015206402032, 38.547874928837892 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33419", "slope": 0.0421, "distance": 4.2512154612577853e-06, "feature_x": -75.05533061292553, "feature_y": 38.547728766442837, "nearest_x": -75.055331, "nearest_y": 38.547733 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056241512756316, 38.547645482800483 ], [ -75.049081354471326, 38.548300136629209 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33420", "slope": 0.0419, "distance": 2.7873109382128107e-06, "feature_x": -75.055413757675566, "feature_y": 38.548177223242696, "nearest_x": -75.055414, "nearest_y": 38.54818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056367313715512, 38.548094007497681 ], [ -75.049144108891809, 38.548724368321402 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33421", "slope": 0.0376, "distance": 1.7943472664706105e-06, "feature_x": -75.055503851580909, "feature_y": 38.5486252118015, "nearest_x": -75.055504, "nearest_y": 38.548627 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056493272911993, 38.548543090600766 ], [ -75.049202915598656, 38.549148184586059 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33422", "slope": 0.0373, "distance": 6.8216350503033402e-07, "feature_x": -75.055580946419965, "feature_y": 38.549074319943955, "nearest_x": -75.055581, "nearest_y": 38.549075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056571341412806, 38.548996289027137 ], [ -75.049257456579369, 38.549572532993594 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33423", "slope": 0.041, "distance": 9.8046368538520079e-07, "feature_x": -75.055638073109833, "feature_y": 38.549524977734109, "nearest_x": -75.055638, "nearest_y": 38.549524 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056607361785993, 38.549452499414478 ], [ -75.049308722453134, 38.549998253354929 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33424", "slope": 0.0371, "distance": 3.6605863203152518e-06, "feature_x": -75.055681259154923, "feature_y": 38.549976651401231, "nearest_x": -75.055681, "nearest_y": 38.549973 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056643355592172, 38.549908367470934 ], [ -75.049357881460878, 38.550425447452206 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33425", "slope": 0.0518, "distance": 2.1703586043831224e-07, "feature_x": -75.056013985420208, "feature_y": 38.550408783454408, "nearest_x": -75.056014, "nearest_y": 38.550409 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056679330195067, 38.550363986470188 ], [ -75.049404987464158, 38.550853760537464 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33426", "slope": 0.0365, "distance": 3.0621365996424082e-06, "feature_x": -75.055499805043723, "feature_y": 38.550896944075816, "nearest_x": -75.0555, "nearest_y": 38.5509 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056715289101945, 38.550819400840325 ], [ -75.049449909216676, 38.551282904297707 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33427", "slope": 0.0315, "distance": 1.0458887414081621e-05, "feature_x": -75.05577663010861, "feature_y": 38.551333439889319, "nearest_x": -75.055776, "nearest_y": 38.551323 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056751232810697, 38.551274616894673 ], [ -75.049492534315931, 38.551712721962303 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33428", "slope": 0.0396, "distance": 2.7086425008711088e-06, "feature_x": -75.055599845831438, "feature_y": 38.551797295748486, "nearest_x": -75.0556, "nearest_y": 38.5518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056787159168465, 38.551729607375727 ], [ -75.049532764298704, 38.5521431782241 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33429", "slope": 0.0375, "distance": 1.3837612956913865e-05, "feature_x": -75.05593974312724, "feature_y": 38.552231817644312, "nearest_x": -75.055939, "nearest_y": 38.552218 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056823063395797, 38.552184311764279 ], [ -75.049570511470023, 38.552574361527654 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33430", "slope": 0.0366, "distance": 2.5723157657253048e-06, "feature_x": -75.055699869685427, "feature_y": 38.552697430987251, "nearest_x": -75.0557, "nearest_y": 38.5527 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056858617466531, 38.552638652873839 ], [ -75.049605589362784, 38.553006566681695 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33431", "slope": 0.057, "distance": 1.6404857342358749e-05, "feature_x": -75.056354786250822, "feature_y": 38.553118386004826, "nearest_x": -75.056354, "nearest_y": 38.553102 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056890443794146, 38.553092683511096 ], [ -75.049637313373694, 38.55344071098029 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33432", "slope": 0.0343, "distance": 2.6437894366519691e-06, "feature_x": -75.055799879066896, "feature_y": 38.553597358977896, "nearest_x": -75.0558, "nearest_y": 38.5536 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056922218138766, 38.553545966773285 ], [ -75.049665589529042, 38.55387824972739 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33433", "slope": 0.0361, "distance": 1.993241316564135e-05, "feature_x": -75.056102883790615, "feature_y": 38.554035912810164, "nearest_x": -75.056102, "nearest_y": 38.554016 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056953915179022, 38.553998141468469 ], [ -75.04969146090211, 38.554320471109641 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33434", "slope": 0.0383, "distance": 3.4036611551755788e-06, "feature_x": -75.055899850631363, "feature_y": 38.55449659961792, "nearest_x": -75.0559, "nearest_y": 38.5545 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.056985514027019, 38.554448909668423 ], [ -75.049716113694316, 38.554768232707346 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33435", "slope": 0.0378, "distance": 1.9611335827544344e-05, "feature_x": -75.056218872294679, "feature_y": 38.554933591926776, "nearest_x": -75.056218, "nearest_y": 38.554914 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057016999634953, 38.55489805676811 ], [ -75.049740726884679, 38.555222019491396 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33436", "slope": 0.0386, "distance": 1.8402414099272018e-05, "feature_x": -75.056270849621555, "feature_y": 38.555381382790536, "nearest_x": -75.05627, "nearest_y": 38.555363 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057048362512901, 38.555345447456673 ], [ -75.049766487148162, 38.555682003448617 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33437", "slope": 0.0443, "distance": 1.6994857829542294e-05, "feature_x": -75.056325831918883, "feature_y": 38.555827974483897, "nearest_x": -75.056325, "nearest_y": 38.555811 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057079599196015, 38.555791032374842 ], [ -75.04979459398821, 38.55614807023656 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33438", "slope": 0.0296, "distance": 4.1227091601344425e-06, "feature_x": -75.055800217564126, "feature_y": 38.556304116964498, "nearest_x": -75.0558, "nearest_y": 38.5563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057110713275719, 38.556234862820737 ], [ -75.049826255184314, 38.556619815555365 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33438", "slope": 0.035, "distance": 4.1227091601344425e-06, "feature_x": -75.055800217564126, "feature_y": 38.556304116964498, "nearest_x": -75.0558, "nearest_y": 38.5563 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057110713275719, 38.556234862820737 ], [ -75.049826255184314, 38.556619815555365 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33439", "slope": 0.0317, "distance": 9.1403357142005699e-06, "feature_x": -75.056360525748218, "feature_y": 38.556722125202782, "nearest_x": -75.05636, "nearest_y": 38.556713 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057141717232426, 38.556677116884792 ], [ -75.049862704864552, 38.557096496908699 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33440", "slope": 0.0293, "distance": 1.3245466131269696e-06, "feature_x": -75.055899916796207, "feature_y": 38.55719867806927, "nearest_x": -75.0559, "nearest_y": 38.5572 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057159856604272, 38.557119376058203 ], [ -75.049907750341049, 38.557575831682072 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33440", "slope": 0.0363, "distance": 1.3245466131269696e-06, "feature_x": -75.055899916796207, "feature_y": 38.55719867806927, "nearest_x": -75.0559, "nearest_y": 38.5572 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057159856604272, 38.557119376058203 ], [ -75.049907750341049, 38.557575831682072 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33441", "slope": 0.0388, "distance": 3.3524266035667895e-07, "feature_x": -75.056476022732369, "feature_y": 38.557610334471043, "nearest_x": -75.056476, "nearest_y": 38.55761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057175045412066, 38.557562825304593 ], [ -75.04996461773996, 38.558052882949909 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33442", "slope": 0.0416, "distance": 2.9867984178047639e-06, "feature_x": -75.056532786526489, "feature_y": 38.558056020840077, "nearest_x": -75.056533, "nearest_y": 38.558059 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057190324494513, 38.558008904557376 ], [ -75.050030852543799, 38.558521920871023 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33443", "slope": 0.0416, "distance": 3.2945652860128671e-06, "feature_x": -75.056573759265163, "feature_y": 38.558504714241771, "nearest_x": -75.056574, "nearest_y": 38.558508 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057205721223283, 38.558458412827285 ], [ -75.050101578545707, 38.558978905952664 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33444", "slope": 0.0421, "distance": 2.217103546401895e-06, "feature_x": -75.056621839814667, "feature_y": 38.558954788690706, "nearest_x": -75.056622, "nearest_y": 38.558957 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057221236247358, 38.558911368930524 ], [ -75.050172228581403, 38.559421992961106 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33445", "slope": 0.0511, "distance": 4.3604439332325298e-06, "feature_x": -75.056700300895912, "feature_y": 38.559404350049761, "nearest_x": -75.0567, "nearest_y": 38.5594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057236851198866, 38.559367236500087 ], [ -75.050238615811452, 38.559851309205406 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33446", "slope": 0.1024, "distance": 1.7000158204042306e-06, "feature_x": -75.056998891742168, "feature_y": 38.559841303434638, "nearest_x": -75.056999, "nearest_y": 38.559843 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057243330613844, 38.559825705789464 ], [ -75.050296921748682, 38.560268956161089 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33447", "slope": 0.0731, "distance": 5.9529850839479779e-06, "feature_x": -75.056934339324911, "feature_y": 38.560302943306318, "nearest_x": -75.056934, "nearest_y": 38.560297 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057248956487626, 38.560284980671703 ], [ -75.050343598187368, 38.560679232615719 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33448", "slope": 0.0432, "distance": 8.3801099603123004e-06, "feature_x": -75.056299580186007, "feature_y": 38.560791630412247, "nearest_x": -75.0563, "nearest_y": 38.5608 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057254575978916, 38.560743728340249 ], [ -75.050376002851067, 38.561088753844707 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33448", "slope": 0.0353, "distance": 8.3801099603123004e-06, "feature_x": -75.056299580186007, "feature_y": 38.560791630412247, "nearest_x": -75.0563, "nearest_y": 38.5608 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057254575978916, 38.560743728340249 ], [ -75.050376002851067, 38.561088753844707 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33449", "slope": 0.041, "distance": 1.525800095519554e-05, "feature_x": -75.056623673173718, "feature_y": 38.561229243143714, "nearest_x": -75.056623, "nearest_y": 38.561214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057260179100396, 38.561201133518452 ], [ -75.050397456434567, 38.561504207777965 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33450", "slope": 0.0353, "distance": 7.5777414539137654e-07, "feature_x": -75.056199969910111, "feature_y": 38.561699242823501, "nearest_x": -75.0562, "nearest_y": 38.5617 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057265762084157, 38.561656888675287 ], [ -75.050413860233078, 38.561929180472497 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33451", "slope": 0.0437, "distance": 1.7446671185425196e-05, "feature_x": -75.056607646574832, "feature_y": 38.562135434686013, "nearest_x": -75.056607, "nearest_y": 38.562118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057271322823325, 38.562110821890812 ], [ -75.050427787064251, 38.562364618142333 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33452", "slope": 0.0314, "distance": 1.8594209466730686e-06, "feature_x": -75.056200067353387, "feature_y": 38.562601858200686, "nearest_x": -75.0562, "nearest_y": 38.5626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057276860030768, 38.562562828172929 ], [ -75.050441086513857, 38.562810601431138 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33452", "slope": 0.0423, "distance": 1.8594209466730686e-06, "feature_x": -75.056200067353387, "feature_y": 38.562601858200686, "nearest_x": -75.0562, "nearest_y": 38.5626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057276860030768, 38.562562828172929 ], [ -75.050441086513857, 38.562810601431138 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33453", "slope": 0.0398, "distance": 1.6980932256550369e-05, "feature_x": -75.056553630894157, "feature_y": 38.563039969208376, "nearest_x": -75.056553, "nearest_y": 38.563023 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057282373312972, 38.563012875467528 ], [ -75.05045566496922, 38.563266684031333 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33454", "slope": 0.0417, "distance": 4.272575929333663e-06, "feature_x": -75.056200169674668, "feature_y": 38.563504269205495, "nearest_x": -75.0562, "nearest_y": 38.5635 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057287863603449, 38.563461040059529 ], [ -75.050473480695601, 38.563731869881785 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33455", "slope": 0.0759, "distance": 1.5405423711525764e-05, "feature_x": -75.056862672273667, "feature_y": 38.563926390748122, "nearest_x": -75.056862, "nearest_y": 38.563911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057293334053838, 38.563907579279466 ], [ -75.050496700312721, 38.564204458799459 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33456", "slope": 0.0345, "distance": 3.1503454580882148e-06, "feature_x": -75.056399847526748, "feature_y": 38.564396853346473, "nearest_x": -75.0564, "nearest_y": 38.5644 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057298794478044, 38.564353294256726 ], [ -75.050528898226986, 38.56468133421275 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33457", "slope": 0.0569, "distance": 2.621712326128698e-05, "feature_x": -75.056801393672004, "feature_y": 38.564826180054055, "nearest_x": -75.0568, "nearest_y": 38.5648 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057304259888511, 38.564799410415951 ], [ -75.050571596579232, 38.565157817790201 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33458", "slope": 0.0412, "distance": 4.6039263056741655e-06, "feature_x": -75.056300262924339, "feature_y": 38.565304596412538, "nearest_x": -75.0563, "nearest_y": 38.5653 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057315219275111, 38.565246538802313 ], [ -75.050622212495909, 38.565629392684166 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33459", "slope": 0.0953, "distance": 4.6951546740809764e-06, "feature_x": -75.05700328038327, "feature_y": 38.565714686775294, "nearest_x": -75.057003, "nearest_y": 38.56571 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05735860519377, 38.56569342970014 ], [ -75.050677388641532, 38.566093129124987 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33460", "slope": 0.0417, "distance": 9.2139624586634565e-06, "feature_x": -75.056599440383366, "feature_y": 38.566190803047604, "nearest_x": -75.0566, "nearest_y": 38.5662 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057402150789997, 38.566141959682795 ], [ -75.050733914220018, 38.566547708890376 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33461", "slope": 0.0464, "distance": 8.9480665422793073e-06, "feature_x": -75.056733538393516, "feature_y": 38.566634931854637, "nearest_x": -75.056733, "nearest_y": 38.566626 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057445843144009, 38.566591995614168 ], [ -75.050788774893334, 38.56699326976409 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33462", "slope": 0.0488, "distance": 9.9330140278131378e-06, "feature_x": -75.056774578870943, "feature_y": 38.567084916132117, "nearest_x": -75.056774, "nearest_y": 38.567075 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057489646857093, 38.567043172832378 ], [ -75.050839164185746, 38.567431405975121 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33463", "slope": 0.0495, "distance": 1.0476700763472621e-05, "feature_x": -75.05680558251008, "feature_y": 38.567535460494298, "nearest_x": -75.056805, "nearest_y": 38.567525 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057533506929403, 38.567494924807981 ], [ -75.050882526019805, 38.567865295781516 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33464", "slope": 0.1065, "distance": 8.1452071732351787e-06, "feature_x": -75.057191429852651, "feature_y": 38.567967133856811, "nearest_x": -75.057191, "nearest_y": 38.567959 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057577373480214, 38.567946737764686 ], [ -75.050919607114608, 38.568298582973298 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33465", "slope": 0.0935, "distance": 9.889071551752082e-06, "feature_x": -75.057213496074439, "feature_y": 38.568418876621202, "nearest_x": -75.057213, "nearest_y": 38.568409 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05762122571511, 38.568398397527673 ], [ -75.050953814503544, 38.568733282520448 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33466", "slope": 0.049, "distance": 1.1933527425384279e-05, "feature_x": -75.056912570755628, "feature_y": 38.568885919870588, "nearest_x": -75.056912, "nearest_y": 38.568874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057665062124016, 38.568849888549671 ], [ -75.050986652519953, 38.569169668855181 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33467", "slope": 0.0471, "distance": 1.223849315088529e-05, "feature_x": -75.056944559739165, "feature_y": 38.569336225686349, "nearest_x": -75.056944, "nearest_y": 38.569324 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057708884755343, 38.569301231933999 ], [ -75.051018220133784, 38.569607556410965 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33468", "slope": 0.0321, "distance": 1.011050074872163e-05, "feature_x": -75.056899556503268, "feature_y": 38.569789899230919, "nearest_x": -75.0569, "nearest_y": 38.5698 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057752694833383, 38.569752440295439 ], [ -75.051048623136282, 38.570046797470944 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33469", "slope": 0.0552, "distance": 1.245877102268791e-05, "feature_x": -75.057040525712395, "feature_y": 38.570235447674555, "nearest_x": -75.05704, "nearest_y": 38.570223 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057796493006393, 38.570203520315047 ], [ -75.051077972075348, 38.570487268877784 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33470", "slope": 0.0412, "distance": 1.1276515068144111e-05, "feature_x": -75.056999540897252, "feature_y": 38.570688732834576, "nearest_x": -75.057, "nearest_y": 38.5707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057826256576377, 38.570655046683029 ], [ -75.051106380790443, 38.570928861199683 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33471", "slope": 0.0639, "distance": 1.3910445898058867e-05, "feature_x": -75.057133548077033, "feature_y": 38.571134899644477, "nearest_x": -75.057133, "nearest_y": 38.571121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057837275933508, 38.571107150943121 ], [ -75.051133965322578, 38.57137146926236 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33472", "slope": 0.046, "distance": 1.2296474910084649e-05, "feature_x": -75.057099529764287, "feature_y": 38.571587712519637, "nearest_x": -75.0571, "nearest_y": 38.5716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05784829062209, 38.57155905781655 ], [ -75.051160843040662, 38.571814983086739 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33473", "slope": 0.0526, "distance": 1.3600905549630529e-05, "feature_x": -75.057139506193408, "feature_y": 38.572037591482626, "nearest_x": -75.057139, "nearest_y": 38.572024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05785930104544, 38.572010783854942 ], [ -75.051187131866754, 38.572259278306746 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33474", "slope": 0.0398, "distance": 9.6614424336363221e-06, "feature_x": -75.057099649237173, "feature_y": 38.572490344926962, "nearest_x": -75.0571, "nearest_y": 38.5725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057870307650006, 38.57246234738335 ], [ -75.051212949506279, 38.572704205088243 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33475", "slope": 0.0593, "distance": 1.3310614126944431e-05, "feature_x": -75.057134472577786, "feature_y": 38.572940302222321, "nearest_x": -75.057134, "nearest_y": 38.572927 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057881310958976, 38.572913769871825 ], [ -75.051238011397203, 38.573149781245753 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33476", "slope": 0.0602, "distance": 1.0765849580601682e-05, "feature_x": -75.057199623947113, "feature_y": 38.573389240720218, "nearest_x": -75.0572, "nearest_y": 38.5734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057892310459692, 38.57336503029267 ], [ -75.051261120386698, 38.573596800283724 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33477", "slope": 0.0869, "distance": 1.5864760396181482e-05, "feature_x": -75.057389552735074, "feature_y": 38.573833855128711, "nearest_x": -75.057389, "nearest_y": 38.573818 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057903301676049, 38.573815945021302 ], [ -75.051281959276963, 38.574046775577031 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33478", "slope": 0.0457, "distance": 1.2481959773938078e-05, "feature_x": -75.057119443025471, "feature_y": 38.574294474095083, "nearest_x": -75.057119, "nearest_y": 38.574282 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057914278049694, 38.574266245020532 ], [ -75.051301677131121, 38.574501095773968 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33479", "slope": 0.0336, "distance": 4.2602704098734161e-05, "feature_x": -75.05720157917257, "feature_y": 38.574742573426107, "nearest_x": -75.0572, "nearest_y": 38.5747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057925234720472, 38.574715730930613 ], [ -75.051321498454826, 38.574960682774744 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33480", "slope": 0.046, "distance": 2.5257795466575396e-06, "feature_x": -75.057099899791453, "feature_y": 38.575197476209091, "nearest_x": -75.0571, "nearest_y": 38.5752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057936168492645, 38.575164271684834 ], [ -75.051342654275601, 38.575426070915711 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33481", "slope": 0.0555, "distance": 1.2135237282022706e-05, "feature_x": -75.057202526296351, "feature_y": 38.575644123819366, "nearest_x": -75.057202, "nearest_y": 38.575632 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.057966261191723, 38.575610970002323 ], [ -75.051366391505994, 38.575897471081959 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33482", "slope": 0.0414, "distance": 4.5137943254710286e-06, "feature_x": -75.057000217369321, "feature_y": 38.576104508557393, "nearest_x": -75.057, "nearest_y": 38.5761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058007553185149, 38.576055942267232 ], [ -75.051393973743245, 38.576374800202338 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33483", "slope": 0.069, "distance": 9.0014384706493955e-06, "feature_x": -75.057469485636659, "feature_y": 38.576530988328628, "nearest_x": -75.057469, "nearest_y": 38.576522 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05804873222931, 38.576499691811165 ], [ -75.051427203869309, 38.576857450977258 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33484", "slope": 0.0416, "distance": 2.6552679817759339e-06, "feature_x": -75.057100160112697, "feature_y": 38.577002650436185, "nearest_x": -75.0571, "nearest_y": 38.577 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058089858102235, 38.576942862841761 ], [ -75.051470943976469, 38.577342711035321 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33485", "slope": 0.0437, "distance": 4.1768768850370289e-05, "feature_x": -75.05730276755969, "feature_y": 38.57744167698003, "nearest_x": -75.0573, "nearest_y": 38.5774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058131044012185, 38.577386675285602 ], [ -75.051527551321243, 38.577825180190615 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33486", "slope": 0.1042, "distance": 9.5898830937401491e-07, "feature_x": -75.057722932052982, "feature_y": 38.57786404342184, "nearest_x": -75.057723, "nearest_y": 38.577865 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058172381767477, 38.577832118410839 ], [ -75.051593366676215, 38.578299434603082 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33487", "slope": 0.1021, "distance": 2.2077771487041749e-06, "feature_x": -75.057790837834105, "feature_y": 38.578310798186621, "nearest_x": -75.057791, "nearest_y": 38.578313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058213912768863, 38.578279638269834 ], [ -75.051663855907435, 38.578762056891236 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33488", "slope": 0.0778, "distance": 5.9176442718267654e-07, "feature_x": -75.057806956341381, "feature_y": 38.578762409848274, "nearest_x": -75.057807, "nearest_y": 38.578763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058255635383588, 38.578729217190613 ], [ -75.051734754092976, 38.579211623008526 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33489", "slope": 0.0757, "distance": 7.4750165192006232e-07, "feature_x": -75.057856946279543, "feature_y": 38.579212254431205, "nearest_x": -75.057857, "nearest_y": 38.579213 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058297517580982, 38.579180509956444 ], [ -75.051802138030624, 38.579648521403278 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33490", "slope": 0.0833, "distance": 8.6814552459666596e-07, "feature_x": -75.057916059106077, "feature_y": 38.579661866131126, "nearest_x": -75.057916, "nearest_y": 38.579661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058339508577944, 38.579632969310026 ], [ -75.051862425878184, 38.580074975056725 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33491", "slope": 0.0482, "distance": 8.3987498265916164e-05, "feature_x": -75.0577136962183, "feature_y": 38.580128180135027, "nearest_x": -75.057719, "nearest_y": 38.580212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05838154583202, 38.580085921315359 ], [ -75.051912307771588, 38.580495268508152 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33492", "slope": 0.0772, "distance": 3.7105483573773721e-06, "feature_x": -75.058012215279504, "feature_y": 38.580562704298025, "nearest_x": -75.058012, "nearest_y": 38.580559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05842065129832, 38.580538967572899 ], [ -75.05195147409195, 38.580914931185461 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33493", "slope": 0.0477, "distance": 6.1017289858840889e-06, "feature_x": -75.057797326012022, "feature_y": 38.581027093013439, "nearest_x": -75.057797, "nearest_y": 38.581021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058456864657572, 38.580991803819288 ], [ -75.051984028171375, 38.581338138617099 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33494", "slope": 0.0428, "distance": 2.630319091817936e-05, "feature_x": -75.057898692984949, "feature_y": 38.581473729302175, "nearest_x": -75.0579, "nearest_y": 38.5815 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058493040043658, 38.581444159453767 ], [ -75.052013275398252, 38.5817665395438 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33495", "slope": 0.0843, "distance": 1.6089946259038151e-05, "feature_x": -75.058100754530898, "feature_y": 38.581916072244823, "nearest_x": -75.0581, "nearest_y": 38.5819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05852917147466, 38.58189595969521 ], [ -75.052040190395573, 38.582200592730324 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33496", "slope": 0.0471, "distance": 6.972232161036951e-06, "feature_x": -75.057904314361707, "feature_y": 38.582376965141634, "nearest_x": -75.057904, "nearest_y": 38.58237 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058565253355681, 38.582347134605193 ], [ -75.052065740948152, 38.582640480804301 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33497", "slope": 0.0557, "distance": 2.4248169777727425e-05, "feature_x": -75.058001073526739, "feature_y": 38.582824224394273, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058601281002595, 38.582797625637632 ], [ -75.052090900539369, 38.583086139247605 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33497", "slope": 0.0455, "distance": 2.4248169777727425e-05, "feature_x": -75.058001073526739, "feature_y": 38.582824224394273, "nearest_x": -75.058, "nearest_y": 38.5828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058601281002595, 38.582797625637632 ], [ -75.052090900539369, 38.583086139247605 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33498", "slope": 0.0532, "distance": 2.4250876846611873e-05, "feature_x": -75.057998923031207, "feature_y": 38.583275773048769, "nearest_x": -75.058, "nearest_y": 38.5833 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058637251568101, 38.583247397216027 ], [ -75.052116652456732, 38.5835372595973 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33499", "slope": 0.0588, "distance": 7.4552551839783851e-06, "feature_x": -75.058013338564479, "feature_y": 38.583726447563627, "nearest_x": -75.058013, "nearest_y": 38.583719 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058673165262576, 38.583696451998186 ], [ -75.052143986240367, 38.583993266930335 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33500", "slope": 0.0435, "distance": 6.8872853359567474e-06, "feature_x": -75.058030324678271, "feature_y": 38.584176879628139, "nearest_x": -75.05803, "nearest_y": 38.58417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05870902679203, 38.584144848852482 ], [ -75.052173886424626, 38.584453269307879 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33501", "slope": 0.049, "distance": 2.4580524897503265e-05, "feature_x": -75.058101213907634, "feature_y": 38.584624550532226, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058744847202163, 38.58459272591179 ], [ -75.052207316629932, 38.584915975859893 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33501", "slope": 0.0486, "distance": 2.4580524897503265e-05, "feature_x": -75.058101213907634, "feature_y": 38.584624550532226, "nearest_x": -75.0581, "nearest_y": 38.5846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058744847202163, 38.58459272591179 ], [ -75.052207316629932, 38.584915975859893 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33502", "slope": 0.0398, "distance": 6.2188772733971042e-06, "feature_x": -75.058167322473849, "feature_y": 38.585072210510859, "nearest_x": -75.058167, "nearest_y": 38.585066 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058780648968948, 38.585040364216319 ], [ -75.052244991812174, 38.585379720928415 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33503", "slope": 0.0633, "distance": 5.7526125985922445e-06, "feature_x": -75.058160311960449, "feature_y": 38.585523744147665, "nearest_x": -75.05816, "nearest_y": 38.585518 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058817619304804, 38.585488046267315 ], [ -75.052286718359753, 38.585842734713339 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33504", "slope": 0.0488, "distance": 4.8762082368373402e-06, "feature_x": -75.058219274252608, "feature_y": 38.585971868489729, "nearest_x": -75.058219, "nearest_y": 38.585967 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058857795834228, 38.585935899180406 ], [ -75.052331532700904, 38.58630353777577 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33505", "slope": 0.0437, "distance": 5.3807009499065751e-06, "feature_x": -75.058238310535003, "feature_y": 38.58642237173256, "nearest_x": -75.058238, "nearest_y": 38.586417 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058898016169948, 38.586384234747115 ], [ -75.052378393022295, 38.586761128258246 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33506", "slope": 0.0397, "distance": 2.9401671407196091e-05, "feature_x": -75.058298279102743, "feature_y": 38.586870648734369, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058938286719993, 38.586833124377883 ], [ -75.052426294666617, 38.587214929695008 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33506", "slope": 0.0512, "distance": 2.9401671407196091e-05, "feature_x": -75.058298279102743, "feature_y": 38.586870648734369, "nearest_x": -75.0583, "nearest_y": 38.5869 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058938286719993, 38.586833124377883 ], [ -75.052426294666617, 38.587214929695008 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0348, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058978608387449, 38.587282578117581 ], [ -75.052474274723224, 38.587664726379003 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0542, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058978608387449, 38.587282578117581 ], [ -75.052474274723224, 38.587664726379003 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33507", "slope": 0.0602, "distance": 7.7418188175846619e-05, "feature_x": -75.058295459289653, "feature_y": 38.587322715086792, "nearest_x": -75.0583, "nearest_y": 38.5874 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.058978608387449, 38.587282578117581 ], [ -75.052474274723224, 38.587664726379003 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33508", "slope": 0.041, "distance": 5.9271669324914888e-06, "feature_x": -75.058325344307704, "feature_y": 38.587772917158105, "nearest_x": -75.058325, "nearest_y": 38.587767 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05901897758973, 38.587732556011545 ], [ -75.052521414578905, 38.588110636331137 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33509", "slope": 0.0552, "distance": 2.0534051638377399e-05, "feature_x": -75.058401168760696, "feature_y": 38.588220500762795, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059059386908686, 38.588182975354385 ], [ -75.052566840152181, 38.588553119309552 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33509", "slope": 0.0491, "distance": 2.0534051638377399e-05, "feature_x": -75.058401168760696, "feature_y": 38.588220500762795, "nearest_x": -75.0584, "nearest_y": 38.5882 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059059386908686, 38.588182975354385 ], [ -75.052566840152181, 38.588553119309552 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33510", "slope": 0.0457, "distance": 5.7276548017085711e-06, "feature_x": -75.058413316612601, "feature_y": 38.588671718897274, "nearest_x": -75.058413, "nearest_y": 38.588666 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05909982521203, 38.588633712046402 ], [ -75.05260972003947, 38.588993020669278 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33511", "slope": 0.0557, "distance": 5.5098282497425485e-06, "feature_x": -75.058431294170859, "feature_y": 38.589122501969726, "nearest_x": -75.058431, "nearest_y": 38.589117 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059140277165355, 38.589084595156322 ], [ -75.052649284025222, 38.589431645604165 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33512", "slope": 0.0448, "distance": 5.7805404717958568e-06, "feature_x": -75.058457297705274, "feature_y": 38.589572772869282, "nearest_x": -75.058457, "nearest_y": 38.589567 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059180728509119, 38.589535465743445 ], [ -75.052685852382922, 38.589870404703277 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33513", "slope": 0.0284, "distance": 6.1157859881037661e-06, "feature_x": -75.058481304333242, "feature_y": 38.590023108209195, "nearest_x": -75.058481, "nearest_y": 38.590017 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059221172199315, 38.58998624529648 ], [ -75.052720658052053, 38.590310124595177 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33514", "slope": 0.0524, "distance": 6.0759772518686438e-06, "feature_x": -75.058533292941192, "feature_y": 38.590472068911353, "nearest_x": -75.058533, "nearest_y": 38.590466 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059261606443201, 38.590436913837543 ], [ -75.052754326979539, 38.590751014687292 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33515", "slope": 0.0519, "distance": 5.612469806988767e-06, "feature_x": -75.058574263002043, "feature_y": 38.590921606304242, "nearest_x": -75.058574, "nearest_y": 38.590916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059299325796488, 38.590887592273837 ], [ -75.052787015043975, 38.591193096759291 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33516", "slope": 0.0422, "distance": 6.5367217024926426e-06, "feature_x": -75.05860729877304, "feature_y": 38.591371529890147, "nearest_x": -75.058607, "nearest_y": 38.591365 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059336833124732, 38.591338150278091 ], [ -75.052818877755072, 38.591636377251383 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33517", "slope": 0.0378, "distance": 6.0911800853873531e-06, "feature_x": -75.05862627260116, "feature_y": 38.591822085077112, "nearest_x": -75.058626, "nearest_y": 38.591816 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059374329699509, 38.591788573385777 ], [ -75.052850070615122, 38.592080849145354 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33518", "slope": 0.0478, "distance": 5.8740492531530604e-06, "feature_x": -75.058662258449147, "feature_y": 38.592271868360818, "nearest_x": -75.058662, "nearest_y": 38.592266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059411815141871, 38.592238857049814 ], [ -75.052880749294033, 38.592526492458795 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33519", "slope": 0.0493, "distance": 6.3959045010098283e-06, "feature_x": -75.058681277825784, "feature_y": 38.592722389867546, "nearest_x": -75.058681, "nearest_y": 38.592716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05944928913064, 38.592688997417419 ], [ -75.052911069641937, 38.592973273399863 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33520", "slope": 0.0357, "distance": 6.0807571554411051e-06, "feature_x": -75.058719261871104, "feature_y": 38.593172075115724, "nearest_x": -75.058719, "nearest_y": 38.593166 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059486751463766, 38.593138992066962 ], [ -75.052941187543638, 38.593421142095352 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33521", "slope": 0.0345, "distance": 7.0127500230429214e-06, "feature_x": -75.058751300641362, "feature_y": 38.593622006302709, "nearest_x": -75.058751, "nearest_y": 38.593615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059524202140892, 38.593588840999217 ], [ -75.052971258599101, 38.593870028655665 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33522", "slope": 0.0403, "distance": 6.2580981359087571e-06, "feature_x": -75.058752268089165, "feature_y": 38.594073252353198, "nearest_x": -75.058752, "nearest_y": 38.594067 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059561641471888, 38.594038547941402 ], [ -75.053001437594176, 38.594319837172918 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33523", "slope": 0.0461, "distance": 5.9895677019157848e-06, "feature_x": -75.05878925746434, "feature_y": 38.594522984031535, "nearest_x": -75.058789, "nearest_y": 38.594517 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.05959907184463, 38.594488141581138 ], [ -75.053031378527578, 38.594770718100143 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33524", "slope": 0.0271, "distance": 6.4263162432819573e-06, "feature_x": -75.058837279457677, "feature_y": 38.594972420237056, "nearest_x": -75.058837, "nearest_y": 38.594966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059635960203849, 38.594937655560521 ], [ -75.053059510193535, 38.595223912814696 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33525", "slope": 0.0387, "distance": 7.4193959989707342e-06, "feature_x": -75.058921331710422, "feature_y": 38.595420411977145, "nearest_x": -75.058921, "nearest_y": 38.595413 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059671778548733, 38.595386827005939 ], [ -75.053085454018358, 38.595681586752313 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33526", "slope": 0.0357, "distance": 7.3166412616992859e-06, "feature_x": -75.058938344073496, "feature_y": 38.595871308546556, "nearest_x": -75.058938, "nearest_y": 38.595864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059707525448857, 38.595835096842798 ], [ -75.053110880206333, 38.5961456552767 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33527", "slope": 0.0451, "distance": 7.4893578982950133e-06, "feature_x": -75.059005379766447, "feature_y": 38.596319479723199, "nearest_x": -75.059005, "nearest_y": 38.596312 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059743165431527, 38.596282020282878 ], [ -75.053137601799875, 38.596617403210978 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33528", "slope": 0.0412, "distance": 6.9580433124762846e-06, "feature_x": -75.05901638918067, "feature_y": 38.596769947150868, "nearest_x": -75.059016, "nearest_y": 38.596763 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059778670317797, 38.596727244020514 ], [ -75.053167468272477, 38.597097604782427 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33529", "slope": 0.0392, "distance": 6.039451691529281e-06, "feature_x": -75.059027379339682, "feature_y": 38.597220027526703, "nearest_x": -75.059027, "nearest_y": 38.597214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059817185683954, 38.597170321419874 ], [ -75.05320238396915, 38.597586620988821 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33530", "slope": 0.0412, "distance": 3.4850117696240616e-06, "feature_x": -75.059112248788452, "feature_y": 38.597664476120158, "nearest_x": -75.059112, "nearest_y": 38.597661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059873628101244, 38.597609983647573 ], [ -75.053244312354963, 38.598084448609384 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33531", "slope": 0.0446, "distance": 5.7327171970852113e-07, "feature_x": -75.059185953323606, "feature_y": 38.598108428631662, "nearest_x": -75.059186, "nearest_y": 38.598109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059929816370897, 38.598047660758958 ], [ -75.053298389655311, 38.598589397165874 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33532", "slope": 0.0448, "distance": 1.2939967023817452e-06, "feature_x": -75.059177881026983, "feature_y": 38.598559711484228, "nearest_x": -75.059178, "nearest_y": 38.598561 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.059985974473562, 38.598485097487078 ], [ -75.053371569696381, 38.599095827819411 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33533", "slope": 0.0786, "distance": 1.4315856461025942e-07, "feature_x": -75.059300014529711, "feature_y": 38.599000142419314, "nearest_x": -75.0593, "nearest_y": 38.599 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06004237363058, 38.598924406446756 ], [ -75.053462955678214, 38.599595643071886 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33534", "slope": 0.0433, "distance": 2.93929259491154e-06, "feature_x": -75.059292679858189, "feature_y": 38.599455078194019, "nearest_x": -75.059293, "nearest_y": 38.599458 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060128883499587, 38.59936345549616 ], [ -75.053565221101408, 38.600082634924441 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33535", "slope": 0.0362, "distance": 1.2979298133183416e-06, "feature_x": -75.059399852453851, "feature_y": 38.599898710483835, "nearest_x": -75.0594, "nearest_y": 38.5999 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060220963212018, 38.599804759176209 ], [ -75.05367142636004, 38.600554155704586 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33536", "slope": 0.0471, "distance": 7.5649555348283045e-06, "feature_x": -75.059490123966384, "feature_y": 38.600344485938692, "nearest_x": -75.059491, "nearest_y": 38.600352 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060313549707743, 38.600248486105798 ], [ -75.053775314993644, 38.601010752098254 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33537", "slope": 0.0437, "distance": 1.2100249362411588e-05, "feature_x": -75.059598597829819, "feature_y": 38.600787981266564, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060406454394212, 38.600693732368136 ], [ -75.053871429549744, 38.601456143568257 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33537", "slope": 0.0736, "distance": 1.2100249362411588e-05, "feature_x": -75.059598597829819, "feature_y": 38.600787981266564, "nearest_x": -75.0596, "nearest_y": 38.6008 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060406454394212, 38.600693732368136 ], [ -75.053871429549744, 38.601456143568257 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33538", "slope": 0.0469, "distance": 1.0097294461219537e-05, "feature_x": -75.059657840990837, "feature_y": 38.601236969444024, "nearest_x": -75.059659, "nearest_y": 38.601247 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060499514101366, 38.60113971592677 ], [ -75.053959635901606, 38.60189538478371 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33539", "slope": 0.0433, "distance": 1.062228548876073e-05, "feature_x": -75.059731801573037, "feature_y": 38.601684445535454, "nearest_x": -75.059733, "nearest_y": 38.601695 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060592780428763, 38.601586684036697 ], [ -75.054047650017594, 38.602329863447338 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33540", "slope": 0.0589, "distance": 1.0780220417017942e-05, "feature_x": -75.060001179898165, "feature_y": 38.60211071545578, "nearest_x": -75.06, "nearest_y": 38.6021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060686384764736, 38.602035266311908 ], [ -75.054138266053926, 38.602756291475053 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33540", "slope": 0.0705, "distance": 1.0780220417017942e-05, "feature_x": -75.060001179898165, "feature_y": 38.60211071545578, "nearest_x": -75.06, "nearest_y": 38.6021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060686384764736, 38.602035266311908 ], [ -75.054138266053926, 38.602756291475053 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33541", "slope": 0.0528, "distance": 1.6882197857405673e-05, "feature_x": -75.059991243525289, "feature_y": 38.602568209425229, "nearest_x": -75.059993, "nearest_y": 38.602585 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060731460353708, 38.602490774783192 ], [ -75.054226600561407, 38.60317125308385 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33542", "slope": 0.0736, "distance": 3.1047373405868736e-06, "feature_x": -75.06020029921973, "feature_y": 38.603003090285021, "nearest_x": -75.0602, "nearest_y": 38.603 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060776514707626, 38.602947297681659 ], [ -75.05430823363983, 38.603573595043713 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33543", "slope": 0.0809, "distance": 2.6831077233414269e-05, "feature_x": -75.060361676210931, "feature_y": 38.603444269741679, "nearest_x": -75.060364, "nearest_y": 38.603471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060821615478446, 38.603404285023529 ], [ -75.054379252606239, 38.603964350410109 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.0726, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060866710518724, 38.603861208412738 ], [ -75.054436104067349, 38.604346902239733 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.0688, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060866710518724, 38.603861208412738 ], [ -75.054436104067349, 38.604346902239733 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33544", "slope": 0.075, "distance": 3.9997953798619683e-06, "feature_x": -75.060300301240403, "feature_y": 38.603903988435448, "nearest_x": -75.0603, "nearest_y": 38.6039 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060866710518724, 38.603861208412738 ], [ -75.054436104067349, 38.604346902239733 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33545", "slope": 0.1088, "distance": 2.3857545075894003e-05, "feature_x": -75.060510484389809, "feature_y": 38.604343190645061, "nearest_x": -75.060512, "nearest_y": 38.604367 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060911758304528, 38.604317647120723 ], [ -75.054475756556315, 38.60472733776156 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33546", "slope": 0.0641, "distance": 3.536562634028315e-06, "feature_x": -75.060400184720521, "feature_y": 38.604803531735207, "nearest_x": -75.0604, "nearest_y": 38.6048 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.060956839355512, 38.60477441700079 ], [ -75.054503278593131, 38.605111957902828 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33547", "slope": 0.0735, "distance": 1.6922877864786484e-05, "feature_x": -75.060554297505647, "feature_y": 38.605251091709228, "nearest_x": -75.060555, "nearest_y": 38.605268 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061002049483946, 38.605232488809747 ], [ -75.054527004857036, 38.605501509629683 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33548", "slope": 0.0433, "distance": 1.4540419587156032e-05, "feature_x": -75.060300446372523, "feature_y": 38.605714533566434, "nearest_x": -75.0603, "nearest_y": 38.6057 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061038192066007, 38.605691875025435 ], [ -75.05454778591583, 38.605891216255266 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33549", "slope": 0.0688, "distance": 8.1906549648560961e-06, "feature_x": -75.060585844682663, "feature_y": 38.606160810817791, "nearest_x": -75.060586, "nearest_y": 38.606169 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061064422870473, 38.606151734027655 ], [ -75.05456360034924, 38.606275029662967 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33550", "slope": 0.0672, "distance": 8.6956841243908337e-06, "feature_x": -75.060534953965615, "feature_y": 38.606614304437727, "nearest_x": -75.060535, "nearest_y": 38.606623 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061090640873431, 38.606611362626467 ], [ -75.054572796993583, 38.606645868147901 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33551", "slope": 0.045, "distance": 8.0612435705798477e-06, "feature_x": -75.060099960461997, "feature_y": 38.607108061146612, "nearest_x": -75.0601, "nearest_y": 38.6071 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.061113272717392, 38.607113031201997 ], [ -75.054613008395535, 38.607081148952915 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33552", "slope": 0.0862, "distance": 2.3152799356073e-05, "feature_x": -75.062494366856683, "feature_y": 38.609177542933978, "nearest_x": -75.0625, "nearest_y": 38.6092 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063260085706915, 38.608985469578663 ], [ -75.056784877447299, 38.610609714530206 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33553", "slope": 0.0911, "distance": 2.0909962318948339e-05, "feature_x": -75.062795174244044, "feature_y": 38.609579654518839, "nearest_x": -75.0628, "nearest_y": 38.6096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063363242189922, 38.609444914167817 ], [ -75.056965281848946, 38.61096244992811 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33554", "slope": 0.0354, "distance": 1.7363672161186797e-05, "feature_x": -75.062196266883831, "feature_y": 38.610183042377685, "nearest_x": -75.0622, "nearest_y": 38.6102 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063466201393112, 38.609903474111746 ], [ -75.057110660855287, 38.611302607243637 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33555", "slope": 0.0364, "distance": 1.7689341393488823e-05, "feature_x": -75.062303510250189, "feature_y": 38.610617337558722, "nearest_x": -75.0623, "nearest_y": 38.6106 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06356895860425, 38.610361128457861 ], [ -75.057232843059964, 38.611643970591501 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33556", "slope": 0.0912, "distance": 1.165750844717935e-05, "feature_x": -75.063297879535725, "feature_y": 38.610888536966613, "nearest_x": -75.0633, "nearest_y": 38.6109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06367184663641, 38.610819359476793 ], [ -75.057346527824038, 38.61198943480418 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33556", "slope": 0.0965, "distance": 1.165750844717935e-05, "feature_x": -75.063297879535725, "feature_y": 38.610888536966613, "nearest_x": -75.0633, "nearest_y": 38.6109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06367184663641, 38.610819359476793 ], [ -75.057346527824038, 38.61198943480418 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.1047, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06377647981067, 38.611277367313143 ], [ -75.057450680951206, 38.612336955822961 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.0704, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06377647981067, 38.611277367313143 ], [ -75.057450680951206, 38.612336955822961 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33557", "slope": 0.1084, "distance": 9.1924146581639414e-06, "feature_x": -75.063098481401966, "feature_y": 38.611390933890185, "nearest_x": -75.0631, "nearest_y": 38.6114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06377647981067, 38.611277367313143 ], [ -75.057450680951206, 38.612336955822961 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33558", "slope": 0.0362, "distance": 1.1764653566498819e-05, "feature_x": -75.062701745915277, "feature_y": 38.61191163438238, "nearest_x": -75.0627, "nearest_y": 38.6119 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.063890068031739, 38.611733308652504 ], [ -75.057542832163833, 38.612685807518915 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33559", "slope": 0.0723, "distance": 5.4714034715565526e-06, "feature_x": -75.063307278279879, "feature_y": 38.612280576405617, "nearest_x": -75.063308, "nearest_y": 38.612286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064003334336334, 38.61218795191548 ], [ -75.057620909506369, 38.613037264036556 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33560", "slope": 0.0459, "distance": 6.6432576535149732e-06, "feature_x": -75.063091773715783, "feature_y": 38.612760598047906, "nearest_x": -75.063091, "nearest_y": 38.612754 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064116076112128, 38.612640483895824 ], [ -75.057683708783898, 38.61339477125302 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33561", "slope": 0.047, "distance": 3.9851185201365143e-08, "feature_x": -75.063182995903304, "feature_y": 38.613199960359943, "nearest_x": -75.063183, "nearest_y": 38.6132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064228542814107, 38.613091905938376 ], [ -75.057735673729113, 38.613762926249393 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33562", "slope": 0.0464, "distance": 1.1484200529262275e-05, "feature_x": -75.063601046257148, "feature_y": 38.613611436442092, "nearest_x": -75.0636, "nearest_y": 38.6136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064341111608115, 38.613543731935486 ], [ -75.057782619183413, 38.614143732318027 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33562", "slope": 0.0851, "distance": 1.1484200529262275e-05, "feature_x": -75.063601046257148, "feature_y": 38.613611436442092, "nearest_x": -75.0636, "nearest_y": 38.6136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064341111608115, 38.613543731935486 ], [ -75.057782619183413, 38.614143732318027 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33563", "slope": 0.0319, "distance": 6.3536771058985919e-06, "feature_x": -75.063100515939126, "feature_y": 38.614106332694497, "nearest_x": -75.0631, "nearest_y": 38.6141 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064453811088143, 38.613996076639104 ], [ -75.057825842006153, 38.614536072460986 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33564", "slope": 0.0376, "distance": 7.6367284381157904e-06, "feature_x": -75.063366443391928, "feature_y": 38.614536383582951, "nearest_x": -75.063367, "nearest_y": 38.614544 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064528272131142, 38.614451477089908 ], [ -75.057865760353323, 38.614938373730382 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33565", "slope": 0.032, "distance": 1.0014974555522448e-06, "feature_x": -75.063199933948425, "feature_y": 38.614999000683063, "nearest_x": -75.0632, "nearest_y": 38.615 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064592367066581, 38.61490696542068 ], [ -75.057902939716641, 38.61534911462936 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33566", "slope": 0.0422, "distance": 7.1503463191628209e-06, "feature_x": -75.063900430446793, "feature_y": 38.615407137378234, "nearest_x": -75.0639, "nearest_y": 38.6154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064656335600077, 38.615361549637328 ], [ -75.057938050725724, 38.615766721409017 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33567", "slope": 0.0496, "distance": 4.0944307849679748e-06, "feature_x": -75.06383977319669, "feature_y": 38.615863911855712, "nearest_x": -75.06384, "nearest_y": 38.615868 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064720155213479, 38.615815069755605 ], [ -75.057971836905381, 38.616189455002093 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33568", "slope": 0.0787, "distance": 3.6671928733015322e-07, "feature_x": -75.064023981184619, "feature_y": 38.616306633763713, "nearest_x": -75.064024, "nearest_y": 38.616307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064783835817735, 38.616267596244434 ], [ -75.05800433117949, 38.616615893183749 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33569", "slope": 0.0326, "distance": 1.3090960942673397e-05, "feature_x": -75.063502373830588, "feature_y": 38.61678392402316, "nearest_x": -75.063503, "nearest_y": 38.616797 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064847431464628, 38.616719513236667 ], [ -75.058034595358365, 38.617045759577891 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33570", "slope": 0.0569, "distance": 1.4824910526903195e-06, "feature_x": -75.064299933295459, "feature_y": 38.617198519010387, "nearest_x": -75.0643, "nearest_y": 38.6172 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064910967059248, 38.617170997730241 ], [ -75.058062404224245, 38.617479460580498 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33571", "slope": 0.0604, "distance": 1.9596211468589572e-06, "feature_x": -75.064015916030741, "feature_y": 38.617663042178712, "nearest_x": -75.064016, "nearest_y": 38.617665 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.064974426103831, 38.617621932510716 ], [ -75.05808847529137, 38.617917264985259 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33572", "slope": 0.0448, "distance": 6.9389705976228521e-06, "feature_x": -75.064200287390307, "feature_y": 38.618106933016641, "nearest_x": -75.0642, "nearest_y": 38.6181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065037794346608, 38.61807221632845 ], [ -75.058113524123144, 38.618359244070106 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33573", "slope": 0.0562, "distance": 1.3017676939081135e-06, "feature_x": -75.064095947038638, "feature_y": 38.618562699310097, "nearest_x": -75.064096, "nearest_y": 38.618564 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065110283950162, 38.618521397631703 ], [ -75.058138266896279, 38.618805283589964 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33574", "slope": 0.0573, "distance": 5.6828189066339625e-06, "feature_x": -75.064300230758207, "feature_y": 38.619005678131856, "nearest_x": -75.0643, "nearest_y": 38.619 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065191112213355, 38.618969472878817 ], [ -75.058163421329809, 38.619255076900807 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33575", "slope": 0.0612, "distance": 2.5404458380918817e-07, "feature_x": -75.064202989558908, "feature_y": 38.61946074617007, "nearest_x": -75.064203, "nearest_y": 38.619461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065271803176046, 38.619416781320695 ], [ -75.058189703237133, 38.619708098208946 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33576", "slope": 0.0598, "distance": 3.4476052548325985e-07, "feature_x": -75.064284014491477, "feature_y": 38.61990834445583, "nearest_x": -75.064284, "nearest_y": 38.619908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065352370377909, 38.619863398041595 ], [ -75.058217818654441, 38.620163553187652 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33577", "slope": 0.0624, "distance": 5.8010902300264505e-07, "feature_x": -75.064345025080669, "feature_y": 38.620356579566597, "nearest_x": -75.064345, "nearest_y": 38.620356 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065432846502759, 38.620309504243721 ], [ -75.058248219894708, 38.620620417975005 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33578", "slope": 0.0682, "distance": 7.7682198696001583e-08, "feature_x": -75.064400996538311, "feature_y": 38.620804922394967, "nearest_x": -75.064401, "nearest_y": 38.620805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065513269030092, 38.620755307703931 ], [ -75.058280259850491, 38.621077947631079 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33579", "slope": 0.0611, "distance": 3.9208242432296388e-07, "feature_x": -75.064447981969835, "feature_y": 38.62125360833236, "nearest_x": -75.064448, "nearest_y": 38.621254 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065593648758906, 38.621200868294274 ], [ -75.058313175371296, 38.621536020231474 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33580", "slope": 0.0567, "distance": 1.6345463797427346e-06, "feature_x": -75.064449922306693, "feature_y": 38.621704367301128, "nearest_x": -75.06445, "nearest_y": 38.621706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0656739737463, 38.621646119822557 ], [ -75.058347040597809, 38.621994777867251 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33581", "slope": 0.0588, "distance": 1.2737454577974913e-06, "feature_x": -75.064521937298323, "feature_y": 38.622151727798759, "nearest_x": -75.064522, "nearest_y": 38.622153 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06574365472396, 38.622091514264959 ], [ -75.058382029084541, 38.622454339157983 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33582", "slope": 0.0649, "distance": 1.4272642044149045e-06, "feature_x": -75.064599927086576, "feature_y": 38.622598574599444, "nearest_x": -75.0646, "nearest_y": 38.6226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065807942606, 38.622536781058997 ], [ -75.058418313159237, 38.622914782300484 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33583", "slope": 0.0832, "distance": 6.8905655600262046e-07, "feature_x": -75.064768963394243, "feature_y": 38.623040311916462, "nearest_x": -75.064769, "nearest_y": 38.623041 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06587216978285, 38.622981621804641 ], [ -75.058456064519106, 38.62337615545826 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33584", "slope": 0.0393, "distance": 7.9483209626023312e-08, "feature_x": -75.064600004399381, "feature_y": 38.623500079361364, "nearest_x": -75.0646, "nearest_y": 38.6235 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.065936331028752, 38.623426000324841 ], [ -75.058495454631156, 38.623838484026294 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33585", "slope": 0.0565, "distance": 4.6009232774723377e-06, "feature_x": -75.064781734214193, "feature_y": 38.623940406760084, "nearest_x": -75.064782, "nearest_y": 38.623945 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06600042219705, 38.623869887917984 ], [ -75.058536654960761, 38.624301775513985 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33586", "slope": 0.0412, "distance": 4.1637171682687374e-06, "feature_x": -75.064699748707639, "feature_y": 38.624395843872861, "nearest_x": -75.0647, "nearest_y": 38.6244 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066064449814064, 38.624313329801751 ], [ -75.058580231160178, 38.624765848926508 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33587", "slope": 0.0627, "distance": 6.5001058356757874e-06, "feature_x": -75.064909590652206, "feature_y": 38.624833512796421, "nearest_x": -75.06491, "nearest_y": 38.62484 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066128453668341, 38.624756601554736 ], [ -75.05862726388736, 38.625229932694126 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33588", "slope": 0.0747, "distance": 8.4909238823948905e-06, "feature_x": -75.065027444590484, "feature_y": 38.625276527260851, "nearest_x": -75.065028, "nearest_y": 38.625285 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066192498997694, 38.625200154992378 ], [ -75.05867787713035, 38.625692757496765 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33589", "slope": 0.0593, "distance": 9.7537816788873097e-06, "feature_x": -75.064986342010002, "feature_y": 38.625730268437628, "nearest_x": -75.064987, "nearest_y": 38.62574 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066260925822021, 38.625644088709812 ], [ -75.058731105367755, 38.626153210096057 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33590", "slope": 0.0424, "distance": 5.2866396490690735e-06, "feature_x": -75.064799635248548, "feature_y": 38.626194725958364, "nearest_x": -75.0648, "nearest_y": 38.6262 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066335250186583, 38.626088523196373 ], [ -75.058785991714316, 38.626610628107493 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33591", "slope": 0.0662, "distance": 1.0659172694015925e-05, "feature_x": -75.065149254277358, "feature_y": 38.626622366944922, "nearest_x": -75.06515, "nearest_y": 38.626633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066409744056401, 38.626533965656037 ], [ -75.058841622613329, 38.627064736869826 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33592", "slope": 0.0374, "distance": 6.2800964172784369e-06, "feature_x": -75.06470044188417, "feature_y": 38.627106264531058, "nearest_x": -75.0647, "nearest_y": 38.6271 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066484409425854, 38.626980427975617 ], [ -75.058897131479213, 38.627515615359741 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33593", "slope": 0.0527, "distance": 1.0859953286761833e-05, "feature_x": -75.065191236882413, "feature_y": 38.627524166891632, "nearest_x": -75.065192, "nearest_y": 38.627535 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066559228107877, 38.627427801368718 ], [ -75.058951701542185, 38.62796369901335 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33594", "slope": 0.0279, "distance": 2.7820122145497086e-06, "feature_x": -75.064899805768036, "feature_y": 38.627997224776422, "nearest_x": -75.0649, "nearest_y": 38.628 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066634159176928, 38.627875841093399 ], [ -75.059004568409733, 38.628409819821449 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33595", "slope": 0.055, "distance": 1.0426868640266778e-05, "feature_x": -75.065290278190886, "feature_y": 38.628422598145299, "nearest_x": -75.065291, "nearest_y": 38.628433 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066684635518641, 38.628325840417169 ], [ -75.059055052381112, 38.628855275100996 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33596", "slope": 0.0268, "distance": 2.2058783633280765e-06, "feature_x": -75.064900151290274, "feature_y": 38.628902200684124, "nearest_x": -75.0649, "nearest_y": 38.6289 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066719378089402, 38.628777134427317 ], [ -75.059105682361988, 38.629300552631982 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33597", "slope": 0.0525, "distance": 8.3770555258239015e-06, "feature_x": -75.065407434286271, "feature_y": 38.629320642068002, "nearest_x": -75.065408, "nearest_y": 38.629329 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066754202437608, 38.62922948492124 ], [ -75.059160144177056, 38.629743495207791 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33598", "slope": 0.0285, "distance": 1.2956983038206617e-06, "feature_x": -75.065000084759575, "feature_y": 38.629801292923013, "nearest_x": -75.065, "nearest_y": 38.6298 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06678919426632, 38.629684005075404 ], [ -75.059217590738697, 38.630180373283906 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33599", "slope": 0.0685, "distance": 3.455073434954209e-06, "feature_x": -75.065608786737187, "feature_y": 38.630216551514621, "nearest_x": -75.065609, "nearest_y": 38.63022 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066824405914176, 38.630141374637255 ], [ -75.059274769084482, 38.630608262732522 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33600", "slope": 0.032, "distance": 8.4818589346845915e-07, "feature_x": -75.065100047669219, "feature_y": 38.630700846845293, "nearest_x": -75.0651, "nearest_y": 38.6307 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066859852265324, 38.630601786823902 ], [ -75.059328689237859, 38.631025718646924 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33601", "slope": 0.0506, "distance": 3.425238181874682e-06, "feature_x": -75.065620167239842, "feature_y": 38.631127421152939, "nearest_x": -75.06562, "nearest_y": 38.631124 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066895520630624, 38.631065076700587 ], [ -75.059376605662365, 38.631432631795008 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33602", "slope": 0.0378, "distance": 2.1567175991855919e-07, "feature_x": -75.065199991413948, "feature_y": 38.631599784499215, "nearest_x": -75.0652, "nearest_y": 38.6316 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066931376973116, 38.631530802063288 ], [ -75.059415960695432, 38.63183023376358 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33603", "slope": 0.0641, "distance": 3.3826670786001661e-06, "feature_x": -75.065681100220473, "feature_y": 38.632036381182104, "nearest_x": -75.065681, "nearest_y": 38.632033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066965976235167, 38.631998296607847 ], [ -75.059444278744564, 38.632221244692616 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33604", "slope": 0.0376, "distance": 1.1547463892690602e-06, "feature_x": -75.065299977996077, "feature_y": 38.632498845463275, "nearest_x": -75.0653, "nearest_y": 38.6325 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066844245566259, 38.632469413799093 ], [ -75.05945901080031, 38.632610166446952 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33605", "slope": 0.034, "distance": 7.6726619497306593e-06, "feature_x": -75.065190069574427, "feature_y": 38.632950672346496, "nearest_x": -75.06519, "nearest_y": 38.632943 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066723485849778, 38.632936767010989 ], [ -75.059460075258784, 38.633002633118458 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33606", "slope": 0.0416, "distance": 5.450318184173004e-07, "feature_x": -75.065300000236107, "feature_y": 38.633400545031769, "nearest_x": -75.0653, "nearest_y": 38.6334 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066603794292064, 38.633399980202029 ], [ -75.05945136157797, 38.633403078779345 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33606", "slope": 0.0346, "distance": 5.450318184173004e-07, "feature_x": -75.065300000236107, "feature_y": 38.633400545031769, "nearest_x": -75.0653, "nearest_y": 38.6334 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066603794292064, 38.633399980202029 ], [ -75.05945136157797, 38.633403078779345 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33607", "slope": 0.0373, "distance": 5.0949130564896002e-05, "feature_x": -75.065199668792204, "feature_y": 38.633850948054004, "nearest_x": -75.0652, "nearest_y": 38.6338 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066584972882282, 38.633859953766532 ], [ -75.059436377131362, 38.633813481516306 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33608", "slope": 0.0465, "distance": 3.9902487754381531e-06, "feature_x": -75.065399953586891, "feature_y": 38.634303989978839, "nearest_x": -75.0654, "nearest_y": 38.6343 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066646266937596, 38.634318487618927 ], [ -75.059416855344182, 38.634234392068429 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33609", "slope": 0.0615, "distance": 4.8169101787425631e-06, "feature_x": -75.065145927916149, "feature_y": 38.634751816370787, "nearest_x": -75.065146, "nearest_y": 38.634747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066707316263702, 38.634775184773311 ], [ -75.059394612709696, 38.634665739739695 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33610", "slope": 0.0503, "distance": 4.261636699505075e-06, "feature_x": -75.065114929206317, "feature_y": 38.635202261048654, "nearest_x": -75.065115, "nearest_y": 38.635198 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06675121586008, 38.635229446558299 ], [ -75.059371573631552, 38.635106840085591 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33611", "slope": 0.044, "distance": 4.0482011212135783e-06, "feature_x": -75.065104931981907, "feature_y": 38.63565304762966, "nearest_x": -75.065105, "nearest_y": 38.635649 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066757793332357, 38.635680823014788 ], [ -75.059349771076981, 38.635556335458034 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33612", "slope": 0.0307, "distance": 3.8224440792905377e-06, "feature_x": -75.065099939204458, "feature_y": 38.636103821960575, "nearest_x": -75.0651, "nearest_y": 38.6361 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066764343175151, 38.636130297465606 ], [ -75.059331326715451, 38.636012061227213 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33613", "slope": 0.0449, "distance": 1.026053352059722e-05, "feature_x": -75.065290851901452, "feature_y": 38.636557259464652, "nearest_x": -75.065291, "nearest_y": 38.636547 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066770876377419, 38.636578624076201 ], [ -75.059317908809817, 38.63647103818181 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33614", "slope": 0.058, "distance": 4.1290710116958426e-06, "feature_x": -75.065102947041126, "feature_y": 38.637005128731374, "nearest_x": -75.065103, "nearest_y": 38.637001 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066777404655042, 38.637026606850533 ], [ -75.05930777413198, 38.636930794562957 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33615", "slope": 0.0741, "distance": 1.812762815033039e-05, "feature_x": -75.065586797191997, "feature_y": 38.637461126493626, "nearest_x": -75.065587, "nearest_y": 38.637443 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066783932012882, 38.63747452061866 ], [ -75.059298255081458, 38.637390767234301 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33616", "slope": 0.0496, "distance": 4.5726962834417163e-06, "feature_x": -75.065132956916784, "feature_y": 38.637906572493314, "nearest_x": -75.065133, "nearest_y": 38.637902 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066790455893283, 38.637922189876562 ], [ -75.059289162189742, 38.637851510750806 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33617", "slope": 0.051, "distance": 4.0459377501340553e-06, "feature_x": -75.065131969958273, "feature_y": 38.638357045826218, "nearest_x": -75.065132, "nearest_y": 38.638353 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066796973300654, 38.638369409079736 ], [ -75.059280792521321, 38.63831359871223 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33618", "slope": 0.0349, "distance": 4.4352677622094825e-06, "feature_x": -75.065127977322874, "feature_y": 38.638807435209792, "nearest_x": -75.065128, "nearest_y": 38.638803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066803481666781, 38.638816002024356 ], [ -75.059273452832841, 38.638777501162856 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33619", "slope": 0.0293, "distance": 3.7247845756858895e-06, "feature_x": -75.065114991024771, "feature_y": 38.639257724773763, "nearest_x": -75.065115, "nearest_y": 38.639254 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066809978664168, 38.639261809025406 ], [ -75.059267459786923, 38.639243634529961 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33620", "slope": 0.0344, "distance": 2.9776920314610175e-06, "feature_x": -75.065100002259072, "feature_y": 38.639707977691174, "nearest_x": -75.0651, "nearest_y": 38.639705 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066816462039128, 38.639706675474756 ], [ -75.059263141456256, 38.639712405907943 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33621", "slope": 0.0485, "distance": 2.176229892704831e-06, "feature_x": -75.065093009731441, "feature_y": 38.640158176208132, "nearest_x": -75.065093, "nearest_y": 38.640156 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066826373260483, 38.640150425051893 ], [ -75.059260840380233, 38.640184256170656 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33622", "slope": 0.0528, "distance": 1.3272073246241132e-06, "feature_x": -75.06508601163884, "feature_y": 38.640608327156293, "nearest_x": -75.065086, "nearest_y": 38.640607 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066844442235379, 38.640592906134103 ], [ -75.059261681874091, 38.640659405156605 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33623", "slope": 0.0501, "distance": 4.636717764745635e-07, "feature_x": -75.065085006257206, "feature_y": 38.641058463629555, "nearest_x": -75.065085, "nearest_y": 38.641058 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066862474173803, 38.641034474692646 ], [ -75.059268304991122, 38.641136966582202 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33624", "slope": 0.061, "distance": 3.7624706306643209e-07, "feature_x": -75.065488006874972, "feature_y": 38.641501376184245, "nearest_x": -75.065488, "nearest_y": 38.641501 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066880501616467, 38.641475927609051 ], [ -75.05928185129261, 38.641614796947927 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33625", "slope": 0.0399, "distance": 2.9901587417748707e-07, "feature_x": -75.065083006797138, "feature_y": 38.641959298938609, "nearest_x": -75.065083, "nearest_y": 38.641959 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06689855530793, 38.641918017739428 ], [ -75.059301104340733, 38.642090765470904 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33626", "slope": 0.0557, "distance": 1.5043465877455142e-06, "feature_x": -75.065254959927927, "feature_y": 38.642405496187216, "nearest_x": -75.065255, "nearest_y": 38.642407 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066916654523396, 38.642361217053882 ], [ -75.059324722255568, 38.642563519078628 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33627", "slope": 0.0431, "distance": 1.0826963510860821e-06, "feature_x": -75.065255967656839, "feature_y": 38.642855917786846, "nearest_x": -75.065256, "nearest_y": 38.642857 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06693480817512, 38.642805743740823 ], [ -75.059351368332869, 38.643032383410009 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33628", "slope": 0.0491, "distance": 1.0582797389416309e-06, "feature_x": -75.065120034315967, "feature_y": 38.643311057723224, "nearest_x": -75.06512, "nearest_y": 38.64331 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0669530159402, 38.643251589844525 ], [ -75.059379734897533, 38.643497291684881 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33629", "slope": 0.0461, "distance": 5.5068025406331225e-07, "feature_x": -75.065140018938294, "feature_y": 38.643761550354505, "nearest_x": -75.06514, "nearest_y": 38.643761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.066971268823011, 38.6436985350459 ], [ -75.059408559483884, 38.643958776134184 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33630", "slope": 0.0505, "distance": 3.8793138306646116e-07, "feature_x": -75.065177013955179, "feature_y": 38.644211387680294, "nearest_x": -75.065177, "nearest_y": 38.644211 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06698954898792, 38.644146142582393 ], [ -75.059436635371341, 38.644418021789924 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33631", "slope": 0.0518, "distance": 6.3396924163977214e-07, "feature_x": -75.065200023729048, "feature_y": 38.644661633525004, "nearest_x": -75.0652, "nearest_y": 38.644661 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06700783635894, 38.644593920858362 ], [ -75.059464022807475, 38.644876478753901 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33632", "slope": 0.0466, "distance": 2.8809597555114401e-07, "feature_x": -75.065238011183752, "feature_y": 38.645111287878819, "nearest_x": -75.065238, "nearest_y": 38.645111 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067026128965381, 38.645041821614747 ], [ -75.05949333565728, 38.645334461738628 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33633", "slope": 0.0499, "distance": 1.0132145370179045e-05, "feature_x": -75.06570359556541, "feature_y": 38.645543875929548, "nearest_x": -75.065704, "nearest_y": 38.645554 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067044426268126, 38.645490312661103 ], [ -75.059525903067737, 38.645790661299941 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33634", "slope": 0.0425, "distance": 6.8717837066404136e-06, "feature_x": -75.065573722054182, "feature_y": 38.646000133839685, "nearest_x": -75.065574, "nearest_y": 38.646007 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067062764859415, 38.645939856595234 ], [ -75.059560385756413, 38.646243556890184 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33635", "slope": 0.0474, "distance": 6.8548023451500008e-07, "feature_x": -75.065352972400447, "feature_y": 38.646460315075615, "nearest_x": -75.065353, "nearest_y": 38.646461 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067081155742841, 38.646390676614281 ], [ -75.059595403805915, 38.646692320678333 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33636", "slope": 0.0448, "distance": 1.2056418235566674e-06, "feature_x": -75.065396952589978, "feature_y": 38.646909795290703, "nearest_x": -75.065397, "nearest_y": 38.646911 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067099599604006, 38.646842789475286 ], [ -75.059629631542947, 38.647136761917579 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33637", "slope": 0.0286, "distance": 3.9130231225877271e-05, "feature_x": -75.065398524943291, "feature_y": 38.64736089758059, "nearest_x": -75.0654, "nearest_y": 38.6474 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067118089731196, 38.647296030608047 ], [ -75.059661797668028, 38.647577303576618 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33638", "slope": 0.0576, "distance": 1.1801491241285593e-06, "feature_x": -75.065700041969123, "feature_y": 38.64780117940262, "nearest_x": -75.0657, "nearest_y": 38.6478 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067136612212508, 38.647750058957421 ], [ -75.059690678691112, 38.648015022984268 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33639", "slope": 0.0492, "distance": 3.2782637760561137e-06, "feature_x": -75.06554989105878, "feature_y": 38.648257723546855, "nearest_x": -75.06555, "nearest_y": 38.648261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067155145619623, 38.648204349245923 ], [ -75.059715169581324, 38.648451726534056 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33640", "slope": 0.0394, "distance": 3.0991534675993518e-06, "feature_x": -75.065578903686813, "feature_y": 38.648707902343467, "nearest_x": -75.065579, "nearest_y": 38.648711 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067173666130515, 38.648658317551032 ], [ -75.059735392878366, 38.6488895903884 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33641", "slope": 0.0411, "distance": 2.8095378588845043e-06, "feature_x": -75.065604917396541, "feature_y": 38.649158191676719, "nearest_x": -75.065605, "nearest_y": 38.649161 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067192155023022, 38.649111504981882 ], [ -75.059752729157537, 38.649330326788615 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33642", "slope": 0.0375, "distance": 1.2175122217571686e-05, "feature_x": -75.065500345369642, "feature_y": 38.64961217022271, "nearest_x": -75.0655, "nearest_y": 38.6496 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067210601060864, 38.649563636157083 ], [ -75.059768536851976, 38.649774828924656 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33643", "slope": 0.057, "distance": 3.6833456682546448e-06, "feature_x": -75.06566989677215, "feature_y": 38.650058318101124, "nearest_x": -75.06567, "nearest_y": 38.650062 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067231944235246, 38.650014523631896 ], [ -75.059784016955248, 38.650223338043595 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33644", "slope": 0.0438, "distance": 3.276200216952068e-06, "feature_x": -75.065685907184942, "feature_y": 38.650508725114776, "nearest_x": -75.065686, "nearest_y": 38.650512 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067275352345803, 38.650463677901939 ], [ -75.059800356607155, 38.650675530271734 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33645", "slope": 0.0368, "distance": 3.0776220400083461e-06, "feature_x": -75.065705910346338, "feature_y": 38.65095892368408, "nearest_x": -75.065706, "nearest_y": 38.650962 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067318673103983, 38.650911922630506 ], [ -75.059818712876492, 38.651130495406186 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33646", "slope": 0.0369, "distance": 9.8472282096698443e-06, "feature_x": -75.065700297631949, "feature_y": 38.65140984272923, "nearest_x": -75.0657, "nearest_y": 38.6514 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06736193926281, 38.651359596745039 ], [ -75.059839332149323, 38.651587071063858 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33647", "slope": 0.0413, "distance": 6.0745438512728784e-06, "feature_x": -75.065913808856465, "feature_y": 38.651853928464185, "nearest_x": -75.065914, "nearest_y": 38.65186 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067405177599753, 38.651806977327617 ], [ -75.059861513014994, 38.65204446629722 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33648", "slope": 0.0339, "distance": 3.6873703579880864e-06, "feature_x": -75.065767879063472, "feature_y": 38.652309314613383, "nearest_x": -75.065768, "nearest_y": 38.652313 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067448398140058, 38.652254168117025 ], [ -75.059884865997489, 38.65250236660733 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33649", "slope": 0.0304, "distance": 5.1237609015194865e-06, "feature_x": -75.065805824779403, "feature_y": 38.652758879236039, "nearest_x": -75.065806, "nearest_y": 38.652764 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067491603464418, 38.65270119582145 ], [ -75.059909375554525, 38.65296064197527 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33650", "slope": 0.0304, "distance": 5.2794957594317687e-06, "feature_x": -75.065834811761178, "feature_y": 38.653208723861106, "nearest_x": -75.065835, "nearest_y": 38.653214 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067534794778155, 38.653148072917709 ], [ -75.0599350281325, 38.653419212695006 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33651", "slope": 0.0288, "distance": 4.4887359156157911e-06, "feature_x": -75.065837833180325, "feature_y": 38.653659514365003, "nearest_x": -75.065838, "nearest_y": 38.653664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067577972043921, 38.653594799024631 ], [ -75.059961812227812, 38.653878042152591 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33652", "slope": 0.0436, "distance": 1.1934336523106117e-05, "feature_x": -75.065800462195483, "feature_y": 38.654111925383162, "nearest_x": -75.0658, "nearest_y": 38.6541 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067621133999069, 38.654041361084495 ], [ -75.059989718697693, 38.65433713403354 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33653", "slope": 0.0249, "distance": 2.8868447240280555e-05, "feature_x": -75.065598834960454, "feature_y": 38.654571155071004, "nearest_x": -75.0656, "nearest_y": 38.6546 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067664278056355, 38.654487732335454 ], [ -75.060018741357567, 38.654796533670833 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33654", "slope": 0.0344, "distance": 9.2524591444962325e-06, "feature_x": -75.066047610768081, "feature_y": 38.65500375573157, "nearest_x": -75.066048, "nearest_y": 38.655013 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067707400075136, 38.654933869946291 ], [ -75.060048877954756, 38.65525633366515 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33655", "slope": 0.042, "distance": 3.1831745383046004e-07, "feature_x": -75.066075013970803, "feature_y": 38.655453318010721, "nearest_x": -75.066075, "nearest_y": 38.655453 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06775049397865, 38.655379711056931 ], [ -75.060080131673658, 38.655716684342856 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33656", "slope": 0.0377, "distance": 6.9682672809825457e-07, "feature_x": -75.066113968061302, "feature_y": 38.655902303905606, "nearest_x": -75.066114, "nearest_y": 38.655903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067793558229255, 38.655825239770643 ], [ -75.060112902134819, 38.656177649024492 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33657", "slope": 0.0512, "distance": 1.3188137855154991e-06, "feature_x": -75.066235063104884, "feature_y": 38.656347317303144, "nearest_x": -75.066235, "nearest_y": 38.656346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067828183968473, 38.656270999493898 ], [ -75.060147903252869, 38.656638920228595 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33658", "slope": 0.0473, "distance": 1.2776946874917e-06, "feature_x": -75.066241936337335, "feature_y": 38.656797723892332, "nearest_x": -75.066242, "nearest_y": 38.656799 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067862814903492, 38.656716861228894 ], [ -75.060185259858557, 38.657099880390575 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33659", "slope": 0.0441, "distance": 5.7185493459578741e-06, "feature_x": -75.066210704567894, "feature_y": 38.657250289087067, "nearest_x": -75.066211, "nearest_y": 38.657256 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067897470182885, 38.657163030758475 ], [ -75.060224591018368, 38.657559957637616 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33660", "slope": 0.0438, "distance": 2.077801655990802e-06, "feature_x": -75.066200110720715, "feature_y": 38.657702074849546, "nearest_x": -75.0662, "nearest_y": 38.6577 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.067932160601032, 38.65760964704036 ], [ -75.060265524758009, 38.658018763638474 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33661", "slope": 0.0303, "distance": 5.1882574207697926e-05, "feature_x": -75.066297164245782, "feature_y": 38.658148194980896, "nearest_x": -75.0663, "nearest_y": 38.6582 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06796689281272, 38.658056795732023 ], [ -75.060307698503436, 38.658476052263111 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33661", "slope": 0.0324, "distance": 5.1882574207697926e-05, "feature_x": -75.066297164245782, "feature_y": 38.658148194980896, "nearest_x": -75.0663, "nearest_y": 38.6582 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06796689281272, 38.658056795732023 ], [ -75.060307698503436, 38.658476052263111 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33662", "slope": 0.0386, "distance": 4.7096028212655376e-07, "feature_x": -75.066299973745728, "feature_y": 38.658599529772076, "nearest_x": -75.0663, "nearest_y": 38.6586 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068001670081387, 38.658504518826213 ], [ -75.060350759461841, 38.658931692722895 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33663", "slope": 0.038, "distance": 7.8190286575445288e-06, "feature_x": -75.066405557855504, "feature_y": 38.659045193482378, "nearest_x": -75.066406, "nearest_y": 38.659053 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068036492757273, 38.658952820809915 ], [ -75.060394365139231, 38.659385654610091 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33664", "slope": 0.0581, "distance": 2.8170116072170011e-06, "feature_x": -75.066592839234886, "feature_y": 38.659486187579517, "nearest_x": -75.066593, "nearest_y": 38.659489 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068071358509656, 38.659401671656056 ], [ -75.060438184003416, 38.659838003331515 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33665", "slope": 0.085, "distance": 4.8861878310951196e-07, "feature_x": -75.066721971982773, "feature_y": 38.659930512185127, "nearest_x": -75.066722, "nearest_y": 38.659931 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068106262315268, 38.659851006676675 ], [ -75.06048189637616, 38.660288905487647 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33666", "slope": 0.0662, "distance": 4.9846842989067677e-06, "feature_x": -75.066657713852152, "feature_y": 38.660386023535693, "nearest_x": -75.066658, "nearest_y": 38.660391 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068141196181074, 38.660300722956457 ], [ -75.060525195703406, 38.660738644756755 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33667", "slope": 0.0431, "distance": 1.2074664488434716e-05, "feature_x": -75.066517307644432, "feature_y": 38.660845945201523, "nearest_x": -75.066518, "nearest_y": 38.660858 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068189301556174, 38.660749915864635 ], [ -75.060567790462756, 38.661187649908534 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33668", "slope": 0.0447, "distance": 1.2263286011019642e-06, "feature_x": -75.066499929794531, "feature_y": 38.661298775682624, "nearest_x": -75.0665, "nearest_y": 38.6613 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068248008186544, 38.661198536428934 ], [ -75.060609395361297, 38.661636553884165 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33669", "slope": 0.0486, "distance": 4.6646872642138504e-06, "feature_x": -75.066835732840531, "feature_y": 38.661731342969496, "nearest_x": -75.066836, "nearest_y": 38.661736 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068306689615625, 38.661646958722038 ], [ -75.060649912030826, 38.66208620440581 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33670", "slope": 0.0302, "distance": 8.2049368659080907e-06, "feature_x": -75.066400472252184, "feature_y": 38.662208191334862, "nearest_x": -75.0664, "nearest_y": 38.6622 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068365310568026, 38.662094913194125 ], [ -75.060689703641629, 38.662537432293355 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33670", "slope": 0.0364, "distance": 8.2049368659080907e-06, "feature_x": -75.066400472252184, "feature_y": 38.662208191334862, "nearest_x": -75.0664, "nearest_y": 38.6622 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068365310568026, 38.662094913194125 ], [ -75.060689703641629, 38.662537432293355 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33671", "slope": 0.0332, "distance": 1.1395772812305667e-05, "feature_x": -75.066769336624347, "feature_y": 38.662638623551928, "nearest_x": -75.06677, "nearest_y": 38.66265 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068423838004804, 38.662542147399307 ], [ -75.060729407707939, 38.662990819754853 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33672", "slope": 0.048, "distance": 1.0523759883926382e-05, "feature_x": -75.066849375879684, "feature_y": 38.663085494763408, "nearest_x": -75.06685, "nearest_y": 38.663096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068482248861784, 38.662988485124487 ], [ -75.060769655602201, 38.66344669338406 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33673", "slope": 0.0474, "distance": 1.3247067958367417e-05, "feature_x": -75.066852193699106, "feature_y": 38.663536777493114, "nearest_x": -75.066853, "nearest_y": 38.66355 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068540529702432, 38.663433823732035 ], [ -75.060811064753594, 38.66390516207111 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33674", "slope": 0.0548, "distance": 2.219966418769207e-06, "feature_x": -75.066699860390386, "feature_y": 38.663997784427828, "nearest_x": -75.0667, "nearest_y": 38.664 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068598676764438, 38.6638781345113 ], [ -75.060854239618564, 38.664366133914896 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33675", "slope": 0.0502, "distance": 1.6383649335226775e-05, "feature_x": -75.066927929661063, "feature_y": 38.664434651350511, "nearest_x": -75.066929, "nearest_y": 38.664451 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068656696881405, 38.664321469716569 ], [ -75.06089976847079, 38.664829312427585 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33676", "slope": 0.0456, "distance": 5.3051294136595152e-06, "feature_x": -75.066799638670787, "feature_y": 38.664894707189852, "nearest_x": -75.0668, "nearest_y": 38.6649 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068714609255537, 38.664763976106855 ], [ -75.060948215620868, 38.665294171744797 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33677", "slope": 0.0459, "distance": 1.6224329976783324e-05, "feature_x": -75.067132846354383, "feature_y": 38.665322816737508, "nearest_x": -75.067134, "nearest_y": 38.665339 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06877245074439, 38.665205935335059 ], [ -75.06099999462117, 38.665760005315413 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33678", "slope": 0.0311, "distance": 6.1669288627262173e-06, "feature_x": -75.066700457486135, "feature_y": 38.665806149936422, "nearest_x": -75.0667, "nearest_y": 38.6658 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068830269567897, 38.665647715856586 ], [ -75.06105508492675, 38.666226102200966 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33679", "slope": 0.0401, "distance": 1.9431240787701227e-05, "feature_x": -75.067222499312905, "feature_y": 38.666218626795391, "nearest_x": -75.067224, "nearest_y": 38.666238 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06888810343213, 38.666089605776477 ], [ -75.061113162021087, 38.66669186825365 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33680", "slope": 0.0548, "distance": 1.9799380990336943e-05, "feature_x": -75.067348412736976, "feature_y": 38.666660264344863, "nearest_x": -75.06735, "nearest_y": 38.66668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068941863987675, 38.666532109174199 ], [ -75.061173901267665, 38.667156856613218 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33681", "slope": 0.0559, "distance": 2.133389490832542e-05, "feature_x": -75.067437230559705, "feature_y": 38.667104739610707, "nearest_x": -75.067439, "nearest_y": 38.667126 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.068992912436471, 38.666975264738042 ], [ -75.061236989571867, 38.667620767613855 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33682", "slope": 0.0454, "distance": 1.4167137356392966e-05, "feature_x": -75.06709878847812, "feature_y": 38.667585884760165, "nearest_x": -75.0671, "nearest_y": 38.6676 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06904401955822, 38.667418924082199 ], [ -75.061302124963746, 38.668083416842698 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33683", "slope": 0.062, "distance": 1.2613194935515234e-05, "feature_x": -75.067401108430019, "feature_y": 38.668012564396896, "nearest_x": -75.0674, "nearest_y": 38.668 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069095188305354, 38.667863112816434 ], [ -75.061369016861846, 38.668544714994674 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33684", "slope": 0.0365, "distance": 1.8330667378455771e-06, "feature_x": -75.067000165022179, "feature_y": 38.668501825623551, "nearest_x": -75.067, "nearest_y": 38.6685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069146417543251, 38.668307821071622 ], [ -75.061437386877785, 38.669004657546061 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33684", "slope": 0.0269, "distance": 1.8330667378455771e-06, "feature_x": -75.067000165022179, "feature_y": 38.668501825623551, "nearest_x": -75.067, "nearest_y": 38.6685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069146417543251, 38.668307821071622 ], [ -75.061437386877785, 38.669004657546061 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33685", "slope": 0.057, "distance": 9.7640615617272142e-06, "feature_x": -75.067500897988992, "feature_y": 38.66890972268039, "nearest_x": -75.0675, "nearest_y": 38.6689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069197702274494, 38.668753005447122 ], [ -75.061506970271864, 38.669463323220086 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0375, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069249033554712, 38.669198588283592 ], [ -75.061577518276593, 38.669920881105149 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0327, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069249033554712, 38.669198588283592 ], [ -75.061577518276593, 38.669920881105149 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33686", "slope": 0.0352, "distance": 8.4525744962959618e-06, "feature_x": -75.067199207672573, "feature_y": 38.669391584643037, "nearest_x": -75.0672, "nearest_y": 38.6694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069249033554712, 38.669198588283592 ], [ -75.061577518276593, 38.669920881105149 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33687", "slope": 0.0442, "distance": 2.6318863596648296e-05, "feature_x": -75.067616489702203, "feature_y": 38.669805801126245, "nearest_x": -75.067619, "nearest_y": 38.669832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069300398077161, 38.66964445405835 ], [ -75.061648801634746, 38.670377607161598 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33688", "slope": 0.0307, "distance": 9.6167150281125847e-06, "feature_x": -75.067299067502205, "feature_y": 38.6702904286022, "nearest_x": -75.0673, "nearest_y": 38.6703 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069352170883619, 38.670090404068901 ], [ -75.061720615903425, 38.670833911793387 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33689", "slope": 0.0605, "distance": 5.0621027383262226e-06, "feature_x": -75.067700499115986, "feature_y": 38.670705037436583, "nearest_x": -75.0677, "nearest_y": 38.6707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069409154204308, 38.670535741593113 ], [ -75.061792789422768, 38.671290381256028 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33690", "slope": 0.0298, "distance": 1.0721781049936903e-05, "feature_x": -75.067398923794016, "feature_y": 38.671189332368137, "nearest_x": -75.0674, "nearest_y": 38.6712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069466100590446, 38.670980784858358 ], [ -75.061865785596083, 38.671747544028804 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33691", "slope": 0.051, "distance": 1.3014397463307155e-05, "feature_x": -75.06770133092391, "feature_y": 38.671612946164792, "nearest_x": -75.0677, "nearest_y": 38.6716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069523027154247, 38.671425667607281 ], [ -75.061941282672265, 38.672205105005425 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33691", "slope": 0.0477, "distance": 1.3014397463307155e-05, "feature_x": -75.06770133092391, "feature_y": 38.671612946164792, "nearest_x": -75.0677, "nearest_y": 38.6716 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069523027154247, 38.671425667607281 ], [ -75.061941282672265, 38.672205105005425 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33692", "slope": 0.0336, "distance": 2.1872755097274933e-05, "feature_x": -75.067597723816831, "feature_y": 38.672078246002535, "nearest_x": -75.0676, "nearest_y": 38.6721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069579990948313, 38.671870835705377 ], [ -75.062019981848053, 38.672661861147454 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33693", "slope": 0.0309, "distance": 2.2180497048753689e-05, "feature_x": -75.067702341066578, "feature_y": 38.672522056605736, "nearest_x": -75.0677, "nearest_y": 38.6725 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06963704569209, 38.672316708947022 ], [ -75.062100976526253, 38.673116579965416 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33694", "slope": 0.0449, "distance": 2.9441652510573407e-05, "feature_x": -75.068152862991923, "feature_y": 38.672928725948644, "nearest_x": -75.068156, "nearest_y": 38.672958 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069694225450036, 38.672763553508709 ], [ -75.062183356228189, 38.673568418444198 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33695", "slope": 0.0319, "distance": 2.135494485411738e-05, "feature_x": -75.067802284378601, "feature_y": 38.673421232411172, "nearest_x": -75.0678, "nearest_y": 38.6734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069751548552233, 38.673211512594975 ], [ -75.062266264754953, 38.674016848456255 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33696", "slope": 0.0436, "distance": 2.9461686151424593e-05, "feature_x": -75.068280854905595, "feature_y": 38.673824706667446, "nearest_x": -75.068284, "nearest_y": 38.673854 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069809021155507, 38.673660634275883 ], [ -75.062348896869551, 38.674461594533341 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33697", "slope": 0.0386, "distance": 9.5738353970286747e-06, "feature_x": -75.068001013572442, "feature_y": 38.674309520031258, "nearest_x": -75.068, "nearest_y": 38.6743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069866639836732, 38.674110891757415 ], [ -75.06243049632711, 38.674902598208824 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33697", "slope": 0.0325, "distance": 9.5738353970286747e-06, "feature_x": -75.068001013572442, "feature_y": 38.674309520031258, "nearest_x": -75.068, "nearest_y": 38.6743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069866639836732, 38.674110891757415 ], [ -75.06243049632711, 38.674902598208824 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33698", "slope": 0.0468, "distance": 1.1566745755251424e-05, "feature_x": -75.068501206847017, "feature_y": 38.674711503613679, "nearest_x": -75.0685, "nearest_y": 38.6747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06992439330476, 38.674562196763446 ], [ -75.062510354609998, 38.675340005432837 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33698", "slope": 0.0484, "distance": 1.1566745755251424e-05, "feature_x": -75.068501206847017, "feature_y": 38.674711503613679, "nearest_x": -75.0685, "nearest_y": 38.6747 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.06992439330476, 38.674562196763446 ], [ -75.062510354609998, 38.675340005432837 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33699", "slope": 0.0399, "distance": 2.4559125093876463e-06, "feature_x": -75.068199748980007, "feature_y": 38.675197556949605, "nearest_x": -75.0682, "nearest_y": 38.6752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.069982263241229, 38.675014406110691 ], [ -75.062587810086441, 38.675774175795617 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33700", "slope": 0.0536, "distance": 1.1401693680016175e-05, "feature_x": -75.068601135419911, "feature_y": 38.675611345018311, "nearest_x": -75.0686, "nearest_y": 38.6756 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070075951667377, 38.675463744046489 ], [ -75.062662247509593, 38.676205714404063 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33700", "slope": 0.0622, "distance": 1.1401693680016175e-05, "feature_x": -75.068601135419911, "feature_y": 38.675611345018311, "nearest_x": -75.0686, "nearest_y": 38.6756 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070075951667377, 38.675463744046489 ], [ -75.062662247509593, 38.676205714404063 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33701", "slope": 0.0378, "distance": 4.7676606351417083e-06, "feature_x": -75.068299539418632, "feature_y": 38.676095254638817, "nearest_x": -75.0683, "nearest_y": 38.6761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070178857129136, 38.675912849408427 ], [ -75.062733098054125, 38.676635529449129 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33702", "slope": 0.0545, "distance": 2.6017390895154622e-05, "feature_x": -75.068857567671543, "feature_y": 38.676496096556072, "nearest_x": -75.06886, "nearest_y": 38.676522 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070281855884787, 38.676362356163665 ], [ -75.062799908699105, 38.67706490958178 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33703", "slope": 0.0401, "distance": 7.6898315876354754e-06, "feature_x": -75.068399304178357, "feature_y": 38.676992341714154, "nearest_x": -75.0684, "nearest_y": 38.677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07006584426999, 38.676840922102961 ], [ -75.062862795095128, 38.677495381549157 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33704", "slope": 0.056, "distance": 1.1970502059490147e-06, "feature_x": -75.068900105142646, "feature_y": 38.677401192423673, "nearest_x": -75.0689, "nearest_y": 38.6774 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070121694704824, 38.677293478063845 ], [ -75.062922503791555, 38.677928270849023 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33705", "slope": 0.0359, "distance": 1.0344114809336427e-05, "feature_x": -75.068499113393258, "feature_y": 38.677889693951307, "nearest_x": -75.0685, "nearest_y": 38.6779 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070177456473672, 38.677745309781457 ], [ -75.062979904876158, 38.678364499340795 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33706", "slope": 0.0823, "distance": 7.9536083072879778e-06, "feature_x": -75.069099329992241, "feature_y": 38.678292074662487, "nearest_x": -75.0691, "nearest_y": 38.6783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070233105881258, 38.678196225286612 ], [ -75.063035818936896, 38.678804683685016 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33707", "slope": 0.0776, "distance": 2.0368365701208881e-05, "feature_x": -75.069362299168404, "feature_y": 38.678723702771293, "nearest_x": -75.069364, "nearest_y": 38.678744 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070288625096424, 38.678646080135088 ], [ -75.063091038979621, 38.679249210838677 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33708", "slope": 0.0621, "distance": 7.4354609507862704e-06, "feature_x": -75.069000621279756, "feature_y": 38.679207409459565, "nearest_x": -75.069, "nearest_y": 38.6792 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070344000953924, 38.679094767695062 ], [ -75.063146345309775, 38.679698287792647 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33709", "slope": 0.0853, "distance": 1.95419014489253e-05, "feature_x": -75.069510350181645, "feature_y": 38.679617527865766, "nearest_x": -75.069512, "nearest_y": 38.679637 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07039922457551, 38.679542216075582 ], [ -75.063202514617245, 38.680151972767995 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33710", "slope": 0.0521, "distance": 3.1840571658840458e-06, "feature_x": -75.069199725813149, "feature_y": 38.680096827770249, "nearest_x": -75.0692, "nearest_y": 38.6801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070411944128239, 38.679992051525488 ], [ -75.063260324121387, 38.680610190914201 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33711", "slope": 0.0832, "distance": 2.2870272676511388e-05, "feature_x": -75.069621973672184, "feature_y": 38.680512219671471, "nearest_x": -75.069624, "nearest_y": 38.680535 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070389872259796, 38.680443914498881 ], [ -75.063320551186834, 38.681072736069552 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33712", "slope": 0.0436, "distance": 2.7947236645724587e-06, "feature_x": -75.069200256686827, "feature_y": 38.681002782910745, "nearest_x": -75.0692, "nearest_y": 38.681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070367833730472, 38.680895089322561 ], [ -75.063383968322071, 38.681539258826682 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33713", "slope": 0.0538, "distance": 2.7113466924778768e-05, "feature_x": -75.069502596857291, "feature_y": 38.681426988820292, "nearest_x": -75.0695, "nearest_y": 38.6814 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070345814932523, 38.681345854596081 ], [ -75.063451332953477, 38.682009239861564 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33714", "slope": 0.0417, "distance": 2.7896397188485949e-07, "feature_x": -75.06929997202495, "feature_y": 38.681899722442267, "nearest_x": -75.0693, "nearest_y": 38.6819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070323800211924, 38.681796530794493 ], [ -75.063523370854, 38.682481946101433 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33715", "slope": 0.0909, "distance": 1.1110787967800611e-05, "feature_x": -75.069701168772482, "feature_y": 38.682311049143863, "nearest_x": -75.0697, "nearest_y": 38.6823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070336467042836, 38.682243847634943 ], [ -75.063600870985553, 38.682956335358625 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33715", "slope": 0.0868, "distance": 1.1110787967800611e-05, "feature_x": -75.069701168772482, "feature_y": 38.682311049143863, "nearest_x": -75.0697, "nearest_y": 38.6823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070336467042836, 38.682243847634943 ], [ -75.063600870985553, 38.682956335358625 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33716", "slope": 0.0331, "distance": 7.9881936921566321e-06, "feature_x": -75.069300880776268, "feature_y": 38.682807939488121, "nearest_x": -75.0693, "nearest_y": 38.6828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070408352597283, 38.682685080825415 ], [ -75.063684499592881, 38.683430999206969 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33717", "slope": 0.0522, "distance": 1.7043330915603885e-05, "feature_x": -75.069701963245308, "feature_y": 38.68321692987881, "nearest_x": -75.0697, "nearest_y": 38.6832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070480297319634, 38.683126671659089 ], [ -75.063773946778355, 38.683904362474188 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33718", "slope": 0.0501, "distance": 4.1223084251029203e-06, "feature_x": -75.069499506390571, "feature_y": 38.683695907350923, "nearest_x": -75.0695, "nearest_y": 38.6837 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070552350890679, 38.68356892505313 ], [ -75.063868121610426, 38.684375101836949 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33719", "slope": 0.0734, "distance": 2.2392977056386076e-05, "feature_x": -75.07009722912332, "feature_y": 38.684077779116492, "nearest_x": -75.0701, "nearest_y": 38.6841 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070624543234558, 38.684012024648567 ], [ -75.063965947945817, 38.684842331255261 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33720", "slope": 0.0331, "distance": 3.3898272612050055e-06, "feature_x": -75.069599569235336, "feature_y": 38.684596637653996, "nearest_x": -75.0696, "nearest_y": 38.6846 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070696888195982, 38.684456055387571 ], [ -75.06406640417319, 38.685305515302929 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33721", "slope": 0.0506, "distance": 1.6415813903106581e-06, "feature_x": -75.070000212902571, "feature_y": 38.685001627716794, "nearest_x": -75.07, "nearest_y": 38.685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070769386410404, 38.684901021134777 ], [ -75.064168526506279, 38.685764402344049 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33722", "slope": 0.0353, "distance": 1.4701173643967369e-05, "feature_x": -75.069798065656741, "feature_y": 38.685485426639964, "nearest_x": -75.0698, "nearest_y": 38.6855 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070842027804034, 38.68534686002657 ], [ -75.064271412521052, 38.686218987344631 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33723", "slope": 0.0377, "distance": 2.5677167656981175e-06, "feature_x": -75.070100340875968, "feature_y": 38.685902544989773, "nearest_x": -75.0701, "nearest_y": 38.6859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070914793662268, 38.685793457170476 ], [ -75.064374225187038, 38.686669501017271 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33724", "slope": 0.0328, "distance": 2.6271673806362471e-05, "feature_x": -75.069996498080357, "feature_y": 38.686373962768897, "nearest_x": -75.07, "nearest_y": 38.6864 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.070961147050824, 38.686244220740598 ], [ -75.064476198016678, 38.687116424481907 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33725", "slope": 0.0483, "distance": 3.9948913314171608e-06, "feature_x": -75.070200532627425, "feature_y": 38.686803959225273, "nearest_x": -75.0702, "nearest_y": 38.6868 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071007119369455, 38.686695450567349 ], [ -75.064576642289651, 38.687560531037157 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33726", "slope": 0.0429, "distance": 4.7492354961641201e-05, "feature_x": -75.070306318163063, "feature_y": 38.68724707020921, "nearest_x": -75.0703, "nearest_y": 38.6872 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071050374935183, 38.687147196593017 ], [ -75.064674957934244, 38.688002959183272 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33727", "slope": 0.0481, "distance": 2.1488579086975591e-05, "feature_x": -75.070497149603682, "feature_y": 38.687678701308208, "nearest_x": -75.0705, "nearest_y": 38.6877 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071083981180067, 38.687600165848004 ], [ -75.064771258161386, 38.688444995314207 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33728", "slope": 0.0501, "distance": 3.5148290778208555e-05, "feature_x": -75.070504648363283, "feature_y": 38.688134839561755, "nearest_x": -75.0705, "nearest_y": 38.6881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071351207697404, 38.688021889939968 ], [ -75.064867643358582, 38.688886939925681 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33729", "slope": 0.0345, "distance": 5.7735756524480358e-06, "feature_x": -75.070400760298583, "feature_y": 38.688605723296419, "nearest_x": -75.0704, "nearest_y": 38.6886 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071444304689393, 38.688467095962956 ], [ -75.064965360015293, 38.689327776957214 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33730", "slope": 0.0596, "distance": 9.7865226287588523e-06, "feature_x": -75.0708012794464, "feature_y": 38.689009702527613, "nearest_x": -75.0708, "nearest_y": 38.689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07153747000045, 38.688912623046136 ], [ -75.065063358958696, 38.689766346772267 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33730", "slope": 0.0587, "distance": 9.7865226287588523e-06, "feature_x": -75.0708012794464, "feature_y": 38.689009702527613, "nearest_x": -75.0708, "nearest_y": 38.689 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07153747000045, 38.688912623046136 ], [ -75.065063358958696, 38.689766346772267 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33731", "slope": 0.0363, "distance": 7.0323286786820644e-06, "feature_x": -75.070599090981119, "feature_y": 38.68949302667, "nearest_x": -75.0706, "nearest_y": 38.6895 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071630719525189, 38.689358547185819 ], [ -75.065160529153445, 38.690201978543691 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33732", "slope": 0.0572, "distance": 2.2357091327817328e-06, "feature_x": -75.070999715587121, "feature_y": 38.689897782455269, "nearest_x": -75.071, "nearest_y": 38.6899 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071724056035379, 38.689804881620802 ], [ -75.065255870141939, 38.690634463716414 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33733", "slope": 0.0361, "distance": 2.0466709713106887e-05, "feature_x": -75.070797449632607, "feature_y": 38.690379692813273, "nearest_x": -75.0708, "nearest_y": 38.6904 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07181747169291, 38.690251588854352 ], [ -75.065348482679752, 38.691064025305536 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33734", "slope": 0.0605, "distance": 2.0882407500863876e-06, "feature_x": -75.07109974616499, "feature_y": 38.690797927244056, "nearest_x": -75.0711, "nearest_y": 38.6908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.071910949012349, 38.690698585259469 ], [ -75.06543756319833, 38.691491332715735 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33735", "slope": 0.0361, "distance": 2.2594706575190386e-05, "feature_x": -75.070897328499782, "feature_y": 38.691277563782585, "nearest_x": -75.0709, "nearest_y": 38.6913 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072004459937148, 38.691145736664787 ], [ -75.065522408254708, 38.691917560281993 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33736", "slope": 0.039, "distance": 8.2960812026209805e-06, "feature_x": -75.071100953317398, "feature_y": 38.691708241125482, "nearest_x": -75.0711, "nearest_y": 38.6917 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072097976109376, 38.691592907464404 ], [ -75.065602940859449, 38.692344240533473 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33737", "slope": 0.0375, "distance": 2.5767957573914448e-05, "feature_x": -75.070997118431038, "feature_y": 38.692174393668793, "nearest_x": -75.071, "nearest_y": 38.6922 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072188462517332, 38.692040327601006 ], [ -75.065679980210916, 38.692772749610839 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33738", "slope": 0.0563, "distance": 4.9424315753990738e-06, "feature_x": -75.071299460506324, "feature_y": 38.692595087101012, "nearest_x": -75.0713, "nearest_y": 38.6926 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072272925564121, 38.692488189273014 ], [ -75.06575449230526, 38.693203989343829 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33739", "slope": 0.0379, "distance": 2.8805417481999691e-05, "feature_x": -75.071096917710747, "feature_y": 38.693071359965622, "nearest_x": -75.0711, "nearest_y": 38.6931 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072357325893549, 38.692935712691146 ], [ -75.065827239684069, 38.693638491686464 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33740", "slope": 0.0561, "distance": 6.6892153612137246e-06, "feature_x": -75.071399294711895, "feature_y": 38.693493348070142, "nearest_x": -75.0714, "nearest_y": 38.6935 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072441650627056, 38.693382829582433 ], [ -75.065898939472049, 38.694076537491455 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33741", "slope": 0.0645, "distance": 4.1117172303875323e-05, "feature_x": -75.072110704053202, "feature_y": 38.693873107865066, "nearest_x": -75.072115, "nearest_y": 38.693914 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072525890384398, 38.69382949022588 ], [ -75.065970277452521, 38.694518193918682 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33742", "slope": 0.0482, "distance": 8.0712861322702393e-06, "feature_x": -75.071499159553525, "feature_y": 38.694391972590111, "nearest_x": -75.0715, "nearest_y": 38.6944 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07261003988674, 38.694275666649837 ], [ -75.066041914980929, 38.694963330226365 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33743", "slope": 0.0504, "distance": 1.5074909077393864e-05, "feature_x": -75.071801572847704, "feature_y": 38.694814992632651, "nearest_x": -75.0718, "nearest_y": 38.6948 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072694099240749, 38.694721359437814 ], [ -75.066114489363443, 38.695411613416184 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33743", "slope": 0.0507, "distance": 1.5074909077393864e-05, "feature_x": -75.071801572847704, "feature_y": 38.694814992632651, "nearest_x": -75.0718, "nearest_y": 38.6948 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072694099240749, 38.694721359437814 ], [ -75.066114489363443, 38.695411613416184 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33744", "slope": 0.0333, "distance": 1.56910574201757e-06, "feature_x": -75.071500164787849, "feature_y": 38.695301560428724, "nearest_x": -75.0715, "nearest_y": 38.6953 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07277807580887, 38.695166607643891 ], [ -75.066188607847309, 38.695862483207485 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33745", "slope": 0.039, "distance": 7.1899178527640537e-06, "feature_x": -75.072099237502229, "feature_y": 38.695692850628291, "nearest_x": -75.0721, "nearest_y": 38.6957 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072861986623721, 38.695611501590953 ], [ -75.066264834950644, 38.696315103761904 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33746", "slope": 0.034, "distance": 9.3581175740106885e-06, "feature_x": -75.071698996420338, "feature_y": 38.696190695850795, "nearest_x": -75.0717, "nearest_y": 38.6962 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.072947368681838, 38.696056041838489 ], [ -75.066343582219559, 38.696768350475075 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33747", "slope": 0.0432, "distance": 2.2885412485575013e-06, "feature_x": -75.072100248028832, "feature_y": 38.696602275061039, "nearest_x": -75.0721, "nearest_y": 38.6966 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073036745579955, 38.696500177407728 ], [ -75.066424675327781, 38.697221030180337 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33748", "slope": 0.033, "distance": 9.6189470073313757e-06, "feature_x": -75.071798948866856, "feature_y": 38.697090438658009, "nearest_x": -75.0718, "nearest_y": 38.6971 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073126167268754, 38.696944529930839 ], [ -75.066507406681467, 38.697672168224081 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33749", "slope": 0.0406, "distance": 1.2401422089442283e-05, "feature_x": -75.07210136179549, "feature_y": 38.6975123264262, "nearest_x": -75.0721, "nearest_y": 38.6975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073215658317196, 38.697389221485146 ], [ -75.066591022381346, 38.698121096170652 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33749", "slope": 0.0405, "distance": 1.2401422089442283e-05, "feature_x": -75.07210136179549, "feature_y": 38.6975123264262, "nearest_x": -75.0721, "nearest_y": 38.6975 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073215658317196, 38.697389221485146 ], [ -75.066591022381346, 38.698121096170652 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33750", "slope": 0.0688, "distance": 1.2373998542105026e-06, "feature_x": -75.072700135985855, "feature_y": 38.697901229904971, "nearest_x": -75.0727, "nearest_y": 38.6979 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073305233722408, 38.697834326578239 ], [ -75.066674821266744, 38.69856742575228 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33751", "slope": 0.039, "distance": 4.9472607675369525e-07, "feature_x": -75.072300054172572, "feature_y": 38.69840049175118, "nearest_x": -75.0723, "nearest_y": 38.6984 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073394900618283, 38.698279880642616 ], [ -75.066758148799877, 38.699011002342132 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33752", "slope": 0.0509, "distance": 6.9152654606896851e-07, "feature_x": -75.072800075113832, "feature_y": 38.698800687434996, "nearest_x": -75.0728, "nearest_y": 38.6988 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073484659295971, 38.698725885107621 ], [ -75.066840394849493, 38.699451882665329 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33753", "slope": 0.0418, "distance": 1.1666095929961824e-05, "feature_x": -75.072498748299907, "feature_y": 38.699288401248296, "nearest_x": -75.0725, "nearest_y": 38.6993 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073574503563648, 38.699172309189336 ], [ -75.066920993000849, 38.699890334716692 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33754", "slope": 0.0338, "distance": 3.5820079973093942e-05, "feature_x": -75.07229621744645, "feature_y": 38.699764380196271, "nearest_x": -75.0723, "nearest_y": 38.6998 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073664420247511, 38.699619087414611 ], [ -75.066999421283711, 38.700326859857732 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33755", "slope": 0.0318, "distance": 7.2312346699115648e-06, "feature_x": -75.072400749604341, "feature_y": 38.700207192276984, "nearest_x": -75.0724, "nearest_y": 38.7002 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073754387533882, 38.70006611138345 ], [ -75.067075204645477, 38.700762239254452 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33755", "slope": 0.0314, "distance": 7.2312346699115648e-06, "feature_x": -75.072400749604341, "feature_y": 38.700207192276984, "nearest_x": -75.0724, "nearest_y": 38.7002 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073754387533882, 38.70006611138345 ], [ -75.067075204645477, 38.700762239254452 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33756", "slope": 0.0328, "distance": 9.6906395464226619e-06, "feature_x": -75.072900985060784, "feature_y": 38.70060964044346, "nearest_x": -75.0729, "nearest_y": 38.7006 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073844377939679, 38.700513244532736 ], [ -75.067148216371066, 38.701197458508922 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33757", "slope": 0.0315, "distance": 5.8730400683415622e-06, "feature_x": -75.072599414409495, "feature_y": 38.701094156226951, "nearest_x": -75.0726, "nearest_y": 38.7011 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.073924171477202, 38.700961405494787 ], [ -75.067219120491458, 38.701633302591418 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33758", "slope": 0.0416, "distance": 8.2088358171370676e-06, "feature_x": -75.073000803675754, "feature_y": 38.701508169399659, "nearest_x": -75.073, "nearest_y": 38.7015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074001513992499, 38.701409723165945 ], [ -75.067288601665368, 38.702070115014436 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33758", "slope": 0.0408, "distance": 8.2088358171370676e-06, "feature_x": -75.073000803675754, "feature_y": 38.701508169399659, "nearest_x": -75.073, "nearest_y": 38.7015 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074001513992499, 38.701409723165945 ], [ -75.067288601665368, 38.702070115014436 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33759", "slope": 0.0341, "distance": 1.8313534349630708e-05, "feature_x": -75.072798237103342, "feature_y": 38.701981771513069, "nearest_x": -75.0728, "nearest_y": 38.702 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074078837214202, 38.70185792329324 ], [ -75.067356879601192, 38.702508011074023 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33760", "slope": 0.0436, "distance": 1.6009331523075399e-05, "feature_x": -75.073001517621279, "feature_y": 38.702415937236943, "nearest_x": -75.073, "nearest_y": 38.7024 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074156138169187, 38.702305988647716 ], [ -75.067424150820443, 38.702947041254177 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33761", "slope": 0.0717, "distance": 2.2692211733402274e-05, "feature_x": -75.073502121945921, "feature_y": 38.702822592782454, "nearest_x": -75.0735, "nearest_y": 38.7028 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074233415040979, 38.702753908705724 ], [ -75.067490603845187, 38.703387203023276 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33762", "slope": 0.0434, "distance": 4.7244447036776095e-06, "feature_x": -75.073200436531422, "feature_y": 38.703304704234057, "nearest_x": -75.0732, "nearest_y": 38.7033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074310667213382, 38.703201679900843 ], [ -75.067556420251663, 38.703828443150037 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33762", "slope": 0.0431, "distance": 4.7244447036776095e-06, "feature_x": -75.073200436531422, "feature_y": 38.703304704234057, "nearest_x": -75.0732, "nearest_y": 38.7033 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074310667213382, 38.703201679900843 ], [ -75.067556420251663, 38.703828443150037 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33763", "slope": 0.0602, "distance": 2.1570375865504399e-05, "feature_x": -75.073601972555451, "feature_y": 38.703721479993945, "nearest_x": -75.0736, "nearest_y": 38.7037 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074387895498973, 38.703649306948265 ], [ -75.067621774694388, 38.704270654816938 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33764", "slope": 0.0368, "distance": 2.8250895853127077e-06, "feature_x": -75.073300256042344, "feature_y": 38.704202813462899, "nearest_x": -75.0733, "nearest_y": 38.7042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074465102562996, 38.704096805301475 ], [ -75.067686833931944, 38.704713669225171 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33764", "slope": 0.0285, "distance": 2.8250895853127077e-06, "feature_x": -75.073300256042344, "feature_y": 38.704202813462899, "nearest_x": -75.0733, "nearest_y": 38.7042 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074465102562996, 38.704096805301475 ], [ -75.067686833931944, 38.704713669225171 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33765", "slope": 0.0644, "distance": 1.1172229437549299e-05, "feature_x": -75.073801004520774, "feature_y": 38.704611126978413, "nearest_x": -75.0738, "nearest_y": 38.7046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074542293574524, 38.704544204924751 ], [ -75.067751754802885, 38.705157240821855 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33765", "slope": 0.0661, "distance": 1.1172229437549299e-05, "feature_x": -75.073801004520774, "feature_y": 38.704611126978413, "nearest_x": -75.0738, "nearest_y": 38.7046 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074542293574524, 38.704544204924751 ], [ -75.067751754802885, 38.705157240821855 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33766", "slope": 0.0368, "distance": 8.0938907394459187e-07, "feature_x": -75.073400072228637, "feature_y": 38.705100806159848, "nearest_x": -75.0734, "nearest_y": 38.7051 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074619476587429, 38.704991552501184 ], [ -75.067816615822593, 38.705601061088359 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33766", "slope": 0.0377, "distance": 8.0938907394459187e-07, "feature_x": -75.073400072228637, "feature_y": 38.705100806159848, "nearest_x": -75.0734, "nearest_y": 38.7051 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074619476587429, 38.704991552501184 ], [ -75.067816615822593, 38.705601061088359 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33767", "slope": 0.0595, "distance": 9.6975497353001728e-06, "feature_x": -75.073900858973971, "feature_y": 38.705509659432416, "nearest_x": -75.0739, "nearest_y": 38.7055 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074696659215192, 38.705438892158917 ], [ -75.067881085624364, 38.706044973352881 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33768", "slope": 0.0334, "distance": 7.4771833436410748e-06, "feature_x": -75.073400657531806, "feature_y": 38.706007448216077, "nearest_x": -75.0734, "nearest_y": 38.706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074773841293833, 38.705886222947569 ], [ -75.067944845263838, 38.706489089730788 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33768", "slope": 0.0337, "distance": 7.4771833436410748e-06, "feature_x": -75.073400657531806, "feature_y": 38.706007448216077, "nearest_x": -75.0734, "nearest_y": 38.706 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074773841293833, 38.705886222947569 ], [ -75.067944845263838, 38.706489089730788 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33769", "slope": 0.0406, "distance": 3.3641162021983454e-05, "feature_x": -75.074167061179111, "feature_y": 38.706393487448409, "nearest_x": -75.07417, "nearest_y": 38.706427 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074851016676632, 38.70633350924318 ], [ -75.068007990760108, 38.706933595673206 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33770", "slope": 0.0351, "distance": 3.4631840108067345e-06, "feature_x": -75.073599699190083, "feature_y": 38.706896549904798, "nearest_x": -75.0736, "nearest_y": 38.7069 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074924389663863, 38.706781051632227 ], [ -75.068070678442609, 38.707378619005453 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33771", "slope": 0.06, "distance": 6.3813897319970879e-06, "feature_x": -75.074100551712093, "feature_y": 38.707306357495469, "nearest_x": -75.0741, "nearest_y": 38.7073 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074981936889529, 38.707229869692611 ], [ -75.068133055490733, 38.707824224923051 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33771", "slope": 0.0579, "distance": 6.3813897319970879e-06, "feature_x": -75.074100551712093, "feature_y": 38.707306357495469, "nearest_x": -75.0741, "nearest_y": 38.7073 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.074981936889529, 38.707229869692611 ], [ -75.068133055490733, 38.707824224923051 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33772", "slope": 0.048, "distance": 3.3200431048926323e-05, "feature_x": -75.074353139675722, "feature_y": 38.707737923011521, "nearest_x": -75.074356, "nearest_y": 38.707771 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075039470102809, 38.707678572760251 ], [ -75.068195261423043, 38.708270423986498 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33773", "slope": 0.0727, "distance": 4.066143014174329e-06, "feature_x": -75.074299650536503, "feature_y": 38.708195948902087, "nearest_x": -75.0743, "nearest_y": 38.7082 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075096990129779, 38.708127167281809 ], [ -75.068257428648877, 38.708717174506589 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33774", "slope": 0.0372, "distance": 1.6214866726995273e-05, "feature_x": -75.073898608502745, "feature_y": 38.708683844950066, "nearest_x": -75.0739, "nearest_y": 38.7087 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075154499143423, 38.708575670207644 ], [ -75.068319682135851, 38.709164379562857 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33775", "slope": 0.0575, "distance": 3.3258693649204806e-05, "feature_x": -75.074564148346781, "feature_y": 38.70907986378451, "nearest_x": -75.074567, "nearest_y": 38.709113 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075212000865307, 38.709024110564243 ], [ -75.068382138177057, 38.709611878347744 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33776", "slope": 0.0388, "distance": 1.8226499919024845e-05, "feature_x": -75.073998438326242, "feature_y": 38.709581840526596, "nearest_x": -75.074, "nearest_y": 38.7096 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07526950089364, 38.709472532012263 ], [ -75.068444899552219, 38.710059432336969 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33777", "slope": 0.0366, "distance": 2.6299553308629176e-05, "feature_x": -75.074102251344186, "feature_y": 38.710026203014209, "nearest_x": -75.0741, "nearest_y": 38.71 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075327004175179, 38.709920973129229 ], [ -75.068507719817532, 38.710506881151197 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33777", "slope": 0.0464, "distance": 2.6299553308629176e-05, "feature_x": -75.074102251344186, "feature_y": 38.710026203014209, "nearest_x": -75.0741, "nearest_y": 38.71 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075327004175179, 38.709920973129229 ], [ -75.068507719817532, 38.710506881151197 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33778", "slope": 0.0401, "distance": 2.024307514526196e-05, "feature_x": -75.074098268758888, "feature_y": 38.710479831090872, "nearest_x": -75.0741, "nearest_y": 38.7105 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075384509425035, 38.710369423894171 ], [ -75.068570157738634, 38.710954348229748 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33779", "slope": 0.045, "distance": 7.209991854403977e-06, "feature_x": -75.0744006163725, "feature_y": 38.710907183597115, "nearest_x": -75.0744, "nearest_y": 38.7109 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075441218569537, 38.710817897049566 ], [ -75.068632176284908, 38.711402131716227 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33780", "slope": 0.0465, "distance": 3.0757297125226533e-05, "feature_x": -75.074297368688434, "feature_y": 38.711369355464988, "nearest_x": -75.0743, "nearest_y": 38.7114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075493378895445, 38.71126665932433 ], [ -75.06869399020033, 38.71185049295196 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33780", "slope": 0.0398, "distance": 3.0757297125226533e-05, "feature_x": -75.074297368688434, "feature_y": 38.711369355464988, "nearest_x": -75.0743, "nearest_y": 38.7114 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075493378895445, 38.71126665932433 ], [ -75.06869399020033, 38.71185049295196 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33781", "slope": 0.0481, "distance": 1.3817420427999877e-05, "feature_x": -75.074401184747032, "feature_y": 38.711813766534846, "nearest_x": -75.0744, "nearest_y": 38.7118 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07554552398193, 38.711715284779892 ], [ -75.068755802554875, 38.712299607733613 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33782", "slope": 0.0394, "distance": 3.2640558828972835e-05, "feature_x": -75.074397190051499, "feature_y": 38.712267480617008, "nearest_x": -75.0744, "nearest_y": 38.7123 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075597651184168, 38.712163750667557 ], [ -75.068817807837462, 38.712749586217335 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33783", "slope": 0.0371, "distance": 3.28243903486192e-06, "feature_x": -75.074600284252497, "feature_y": 38.71270327010803, "nearest_x": -75.0746, "nearest_y": 38.7127 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075649759112096, 38.712612045034128 ], [ -75.068880193999433, 38.713200486074001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33784", "slope": 0.0365, "distance": 3.4404741319377437e-05, "feature_x": -75.074496997176112, "feature_y": 38.713165726551473, "nearest_x": -75.0745, "nearest_y": 38.7132 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075701847447974, 38.713060165152484 ], [ -75.068943143605267, 38.713652320252287 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0843, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075753916870909, 38.713508116871211 ], [ -75.069006834185188, 38.714105060150473 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0447, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075753916870909, 38.713508116871211 ], [ -75.069006834185188, 38.714105060150473 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33785", "slope": 0.0454, "distance": 1.3561097390217214e-06, "feature_x": -75.074700119513992, "feature_y": 38.713601350833088, "nearest_x": -75.0747, "nearest_y": 38.7136 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075753916870909, 38.713508116871211 ], [ -75.069006834185188, 38.714105060150473 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33786", "slope": 0.0483, "distance": 3.5500955520157337e-05, "feature_x": -75.075216835422225, "feature_y": 38.714008640372029, "nearest_x": -75.07522, "nearest_y": 38.714044 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075805969069719, 38.713955914725474 ], [ -75.069071437814216, 38.714558634526284 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33787", "slope": 0.0369, "distance": 8.537037689377279e-06, "feature_x": -75.074700770838845, "feature_y": 38.714508502165607, "nearest_x": -75.0747, "nearest_y": 38.7145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075858006834792, 38.714403582725332 ], [ -75.069137119865914, 38.715012924036351 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33787", "slope": 0.0389, "distance": 8.537037689377279e-06, "feature_x": -75.074700770838845, "feature_y": 38.714508502165607, "nearest_x": -75.0747, "nearest_y": 38.7145 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075858006834792, 38.714403582725332 ], [ -75.069137119865914, 38.715012924036351 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33788", "slope": 0.0485, "distance": 3.7217310176559018e-05, "feature_x": -75.075281592361293, "feature_y": 38.714908939020852, "nearest_x": -75.075285, "nearest_y": 38.714946 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075910034225586, 38.714851155797852 ], [ -75.069204036810902, 38.715467750849953 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.051, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075962056838293, 38.715298682087308 ], [ -75.06927230715668, 38.715922878129234 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.0351, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075962056838293, 38.715298682087308 ], [ -75.06927230715668, 38.715922878129234 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33789", "slope": 0.0339, "distance": 2.2116722194575444e-06, "feature_x": -75.074899794529443, "feature_y": 38.715397797892862, "nearest_x": -75.0749, "nearest_y": 38.7154 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.075962056838293, 38.715298682087308 ], [ -75.06927230715668, 38.715922878129234 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33790", "slope": 0.0537, "distance": 4.2085585438992221e-05, "feature_x": -75.075003968519425, "feature_y": 38.715841898059089, "nearest_x": -75.075, "nearest_y": 38.7158 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07601408166029, 38.715746221703206 ], [ -75.069341659974455, 38.716378223175106 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33791", "slope": 0.0304, "distance": 3.6299864359106858e-06, "feature_x": -75.074999652372028, "feature_y": 38.716296386697309, "nearest_x": -75.075, "nearest_y": 38.7163 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076066109911807, 38.716193785141918 ], [ -75.069411776542992, 38.716833984051178 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33792", "slope": 0.0579, "distance": 3.0990683851920925e-05, "feature_x": -75.075203017296289, "feature_y": 38.716730843450016, "nearest_x": -75.0752, "nearest_y": 38.7167 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076124957736454, 38.716640653556375 ], [ -75.069482785548544, 38.717290431760119 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33793", "slope": 0.044, "distance": 1.4505145834141313e-05, "feature_x": -75.075198562158334, "feature_y": 38.717185566294063, "nearest_x": -75.0752, "nearest_y": 38.7172 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076193384741927, 38.717086465109865 ], [ -75.069554948860173, 38.71774776579597 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33794", "slope": 0.0584, "distance": 2.9676404746566925e-05, "feature_x": -75.075302999966155, "feature_y": 38.71762952438317, "nearest_x": -75.0753, "nearest_y": 38.7176 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076261785859074, 38.717532102357183 ], [ -75.069628518889857, 38.718206107170786 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33795", "slope": 0.0389, "distance": 1.5425184147334827e-05, "feature_x": -75.075298407065446, "feature_y": 38.718084657286241, "nearest_x": -75.0753, "nearest_y": 38.7181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076330156804147, 38.717977537396699 ], [ -75.069703740776674, 38.718665515233106 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33795", "slope": 0.0392, "distance": 1.5425184147334827e-05, "feature_x": -75.075298407065446, "feature_y": 38.718084657286241, "nearest_x": -75.0753, "nearest_y": 38.7181 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076330156804147, 38.717977537396699 ], [ -75.069703740776674, 38.718665515233106 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33796", "slope": 0.0353, "distance": 3.9268254971948297e-05, "feature_x": -75.075304149594913, "feature_y": 38.718539048389346, "nearest_x": -75.0753, "nearest_y": 38.7185 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076398495155104, 38.718422754456348 ], [ -75.069780853541531, 38.719125998110258 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33797", "slope": 0.0377, "distance": 1.5933617624688499e-05, "feature_x": -75.075398274322069, "feature_y": 38.718984160107127, "nearest_x": -75.0754, "nearest_y": 38.719 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076466800289779, 38.718867749491174 ], [ -75.069860090267525, 38.719587517850904 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33798", "slope": 0.0373, "distance": 2.8126255749187346e-05, "feature_x": -75.075503126380184, "feature_y": 38.719427951958956, "nearest_x": -75.0755, "nearest_y": 38.7194 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076535073418881, 38.719312530396707 ], [ -75.069941677278763, 38.720049990803588 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33799", "slope": 0.0397, "distance": 2.7345197998237373e-05, "feature_x": -75.07559687741167, "feature_y": 38.719872833673499, "nearest_x": -75.0756, "nearest_y": 38.7199 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076603322574115, 38.71975714950424 ], [ -75.070026082343119, 38.720513159469341 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0504, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076671578506051, 38.720201807144996 ], [ -75.070114345165749, 38.720976185783492 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0458, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076671578506051, 38.720201807144996 ], [ -75.070114345165749, 38.720976185783492 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33800", "slope": 0.0615, "distance": 4.7038094412811502e-06, "feature_x": -75.075800551664358, "feature_y": 38.720304671347741, "nearest_x": -75.0758, "nearest_y": 38.7203 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076671578506051, 38.720201807144996 ], [ -75.070114345165749, 38.720976185783492 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33801", "slope": 0.037, "distance": 2.7122059245457511e-05, "feature_x": -75.075696740432335, "feature_y": 38.72077307452291, "nearest_x": -75.0757, "nearest_y": 38.7208 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076739885613733, 38.720646792552309 ], [ -75.070206643179432, 38.721437699459329 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0631, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07680827588058, 38.72109231406511 ], [ -75.070301907630366, 38.721896457297376 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0359, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07680827588058, 38.72109231406511 ], [ -75.070301907630366, 38.721896457297376 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33802", "slope": 0.0652, "distance": 7.7296748484823498e-06, "feature_x": -75.075999051878284, "feature_y": 38.721192328693824, "nearest_x": -75.076, "nearest_y": 38.7212 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07680827588058, 38.72109231406511 ], [ -75.070301907630366, 38.721896457297376 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33803", "slope": 0.0645, "distance": 3.5707369744580827e-05, "feature_x": -75.076104447551685, "feature_y": 38.721635429303383, "nearest_x": -75.0761, "nearest_y": 38.7216 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07688285256711, 38.721537713677783 ], [ -75.070399048879864, 38.722351645912305 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33803", "slope": 0.0451, "distance": 3.5707369744580827e-05, "feature_x": -75.076104447551685, "feature_y": 38.721635429303383, "nearest_x": -75.0761, "nearest_y": 38.7216 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07688285256711, 38.721537713677783 ], [ -75.070399048879864, 38.722351645912305 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33804", "slope": 0.0387, "distance": 5.1179990007444553e-06, "feature_x": -75.076000643700326, "feature_y": 38.722105077357938, "nearest_x": -75.076, "nearest_y": 38.7221 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.076981964089583, 38.721980666932183 ], [ -75.070497048929923, 38.722802815401579 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33805", "slope": 0.0305, "distance": 2.513789701666175e-08, "feature_x": -75.075700003174063, "feature_y": 38.722600024936703, "nearest_x": -75.0757, "nearest_y": 38.7226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077081210571507, 38.722424217733646 ], [ -75.070594960552185, 38.723249821098008 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33805", "slope": 0.0304, "distance": 2.513789701666175e-08, "feature_x": -75.075700003174063, "feature_y": 38.722600024936703, "nearest_x": -75.0757, "nearest_y": 38.7226 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077081210571507, 38.722424217733646 ], [ -75.070594960552185, 38.723249821098008 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33806", "slope": 0.0399, "distance": 5.6014220405776584e-06, "feature_x": -75.076100706039199, "feature_y": 38.723005556747026, "nearest_x": -75.0761, "nearest_y": 38.723 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077180587788888, 38.722868347181979 ], [ -75.070691907721979, 38.723692797609033 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33807", "slope": 0.0602, "distance": 2.3839334917837052e-05, "feature_x": -75.07640298395647, "feature_y": 38.723423651847561, "nearest_x": -75.0764, "nearest_y": 38.7234 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077280082403874, 38.723312995647518 ], [ -75.070787087112663, 38.72413216274095 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33808", "slope": 0.0309, "distance": 5.1374002814874528e-06, "feature_x": -75.076200635749828, "feature_y": 38.723905097911711, "nearest_x": -75.0762, "nearest_y": 38.7239 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077379671968458, 38.723758062790431 ], [ -75.07087977094136, 38.724568651744974 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33809", "slope": 0.0521, "distance": 1.1370715880512437e-05, "feature_x": -75.076601386862066, "feature_y": 38.724311285822665, "nearest_x": -75.0766, "nearest_y": 38.7243 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077479323301802, 38.724203400311708 ], [ -75.070969312083363, 38.725003385202221 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33810", "slope": 0.0354, "distance": 8.5226925986726807e-06, "feature_x": -75.076398976710465, "feature_y": 38.724791538961789, "nearest_x": -75.0764, "nearest_y": 38.7248 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077578995602067, 38.724648825862793 ], [ -75.071055508245209, 38.725437785347737 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33810", "slope": 0.0359, "distance": 8.5226925986726807e-06, "feature_x": -75.076398976710465, "feature_y": 38.724791538961789, "nearest_x": -75.0764, "nearest_y": 38.7248 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077578995602067, 38.724648825862793 ], [ -75.071055508245209, 38.725437785347737 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33811", "slope": 0.049, "distance": 1.0679975513009527e-05, "feature_x": -75.076701262882565, "feature_y": 38.725210605046186, "nearest_x": -75.0767, "nearest_y": 38.7252 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077678660668212, 38.725094213414849 ], [ -75.071139454320289, 38.725872922867289 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33812", "slope": 0.036, "distance": 2.2001914562931614e-05, "feature_x": -75.076597434846249, "feature_y": 38.725678148129816, "nearest_x": -75.0766, "nearest_y": 38.7257 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077762155617108, 38.725541423546453 ], [ -75.071222271529493, 38.726309129377327 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0505, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077841759359842, 38.7259889531665 ], [ -75.071304144879861, 38.726746415149101 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0346, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077841759359842, 38.7259889531665 ], [ -75.071304144879861, 38.726746415149101 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33813", "slope": 0.0372, "distance": 1.9197394411837166e-06, "feature_x": -75.076899779052937, "feature_y": 38.72609809301759, "nearest_x": -75.0769, "nearest_y": 38.7261 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077841759359842, 38.7259889531665 ], [ -75.071304144879861, 38.726746415149101 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33814", "slope": 0.033, "distance": 3.5025895173187737e-05, "feature_x": -75.07679601540066, "feature_y": 38.726565201489962, "nearest_x": -75.0768, "nearest_y": 38.7266 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.077921339846469, 38.726436346345096 ], [ -75.071385191305126, 38.727184767274075 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33815", "slope": 0.05, "distance": 2.9566685468415112e-06, "feature_x": -75.076999667092352, "feature_y": 38.726997062133186, "nearest_x": -75.077, "nearest_y": 38.727 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078000897697265, 38.726883606574212 ], [ -75.071465527827982, 38.727624169275735 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33816", "slope": 0.0664, "distance": 7.1008494547379265e-06, "feature_x": -75.077400792407971, "feature_y": 38.727407056497192, "nearest_x": -75.0774, "nearest_y": 38.7274 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078080433355382, 38.727330736350218 ], [ -75.071545271586857, 38.728064601060069 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33817", "slope": 0.0356, "distance": 4.1173326416179204e-06, "feature_x": -75.077099543990229, "feature_y": 38.727895907997656, "nearest_x": -75.0771, "nearest_y": 38.7279 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078159947134239, 38.727777737439681 ], [ -75.071624539782306, 38.728506038499269 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33818", "slope": 0.0552, "distance": 4.5450082730819135e-06, "feature_x": -75.07759949971252, "feature_y": 38.728295482609973, "nearest_x": -75.0776, "nearest_y": 38.7283 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078239439276118, 38.728224611209434 ], [ -75.071703449538262, 38.728948452604769 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33818", "slope": 0.058, "distance": 4.5450082730819135e-06, "feature_x": -75.07759949971252, "feature_y": 38.728295482609973, "nearest_x": -75.0776, "nearest_y": 38.7283 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078239439276118, 38.728224611209434 ], [ -75.071703449538262, 38.728948452604769 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33819", "slope": 0.0351, "distance": 1.6243967133915264e-05, "feature_x": -75.077298220455248, "feature_y": 38.728783853802653, "nearest_x": -75.0773, "nearest_y": 38.7288 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078318910024436, 38.728671359032333 ], [ -75.071782117662551, 38.729391808204703 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33819", "slope": 0.0361, "distance": 1.6243967133915264e-05, "feature_x": -75.077298220455248, "feature_y": 38.728783853802653, "nearest_x": -75.0773, "nearest_y": 38.7288 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078318910024436, 38.728671359032333 ], [ -75.071782117662551, 38.729391808204703 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33820", "slope": 0.0856, "distance": 2.7115962089564453e-05, "feature_x": -75.077897039477222, "feature_y": 38.729173046137475, "nearest_x": -75.0779, "nearest_y": 38.7292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078398359712537, 38.729117982787066 ], [ -75.07186066028116, 38.729836061989296 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33821", "slope": 0.0633, "distance": 2.7649443340883061e-05, "feature_x": -75.077903012523649, "feature_y": 38.729627484839789, "nearest_x": -75.0779, "nearest_y": 38.7296 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07847778887421, 38.729564485478647 ], [ -75.071939192305791, 38.730281159722793 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33822", "slope": 0.0352, "distance": 4.720013799398819e-06, "feature_x": -75.077700513840838, "feature_y": 38.730104691960982, "nearest_x": -75.0777, "nearest_y": 38.7301 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078557198382498, 38.730010872019321 ], [ -75.072017826676387, 38.730727032335174 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33822", "slope": 0.0577, "distance": 4.720013799398819e-06, "feature_x": -75.077700513840838, "feature_y": 38.730104691960982, "nearest_x": -75.0777, "nearest_y": 38.7301 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078557198382498, 38.730010872019321 ], [ -75.072017826676387, 38.730727032335174 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33823", "slope": 0.0408, "distance": 3.6592789873708925e-05, "feature_x": -75.07781298485807, "feature_y": 38.730547375172534, "nearest_x": -75.077809, "nearest_y": 38.730511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078636589626754, 38.730457150222875 ], [ -75.072096673297096, 38.731173590491409 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33824", "slope": 0.0344, "distance": 3.7813589368912841e-06, "feature_x": -75.07780041230339, "feature_y": 38.73100375881382, "nearest_x": -75.0778, "nearest_y": 38.731 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078715954716799, 38.730903333184209 ], [ -75.072175837553957, 38.731620717080567 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33825", "slope": 0.0407, "distance": 3.5748975906662479e-05, "feature_x": -75.077911905757844, "feature_y": 38.731446534973394, "nearest_x": -75.077908, "nearest_y": 38.731411 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078795139227452, 38.731349456075399 ], [ -75.07225541826385, 38.732068256852543 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33826", "slope": 0.0391, "distance": 2.8726549457799106e-06, "feature_x": -75.077900314591844, "feature_y": 38.731902855377108, "nearest_x": -75.0779, "nearest_y": 38.7319 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.078874318582919, 38.731795544258688 ], [ -75.072335626110004, 38.732515946237228 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33827", "slope": 0.049, "distance": 3.5690065620020836e-05, "feature_x": -75.078103916355673, "feature_y": 38.732335474539354, "nearest_x": -75.0781, "nearest_y": 38.7323 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.0789535074708, 38.732241680482026 ], [ -75.07241665676176, 38.732963342631329 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33828", "slope": 0.0418, "distance": 8.9406802687833537e-06, "feature_x": -75.078099018120525, "feature_y": 38.732791113399053, "nearest_x": -75.0781, "nearest_y": 38.7328 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07903272079399, 38.732687948702015 ], [ -75.072498332758826, 38.733409932456745 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33829", "slope": 0.0553, "distance": 1.2905814985645496e-05, "feature_x": -75.078401415802389, "feature_y": 38.733212827921264, "nearest_x": -75.0784, "nearest_y": 38.7332 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079111968519541, 38.733134405064348 ], [ -75.072580248299133, 38.733855303243871 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33830", "slope": 0.046, "distance": 2.0768601641712577e-05, "feature_x": -75.078297729516407, "feature_y": 38.733679355879325, "nearest_x": -75.0783, "nearest_y": 38.7337 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079191256740202, 38.733581083885447 ], [ -75.072662023452366, 38.734299182625591 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33831", "slope": 0.0538, "distance": 1.2878535085181147e-06, "feature_x": -75.078600139923552, "feature_y": 38.734101280229687, "nearest_x": -75.0786, "nearest_y": 38.7341 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079270588638835, 38.734028003087481 ], [ -75.072743300180704, 38.73474140745931 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33832", "slope": 0.043, "distance": 3.2597047991103157e-05, "feature_x": -75.078496490529233, "feature_y": 38.734567592421371, "nearest_x": -75.0785, "nearest_y": 38.7346 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079349965203065, 38.734475168224691 ], [ -75.07282373936512, 38.735181904111435 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33833", "slope": 0.0499, "distance": 1.0044256305418381e-05, "feature_x": -75.078798931694976, "feature_y": 38.734990012717631, "nearest_x": -75.0788, "nearest_y": 38.735 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079429385713226, 38.734922575233476 ], [ -75.072903018993259, 38.735620678091912 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33833", "slope": 0.0558, "distance": 1.0044256305418381e-05, "feature_x": -75.078798931694976, "feature_y": 38.734990012717631, "nearest_x": -75.0788, "nearest_y": 38.735 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079429385713226, 38.734922575233476 ], [ -75.072903018993259, 38.735620678091912 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33834", "slope": 0.0443, "distance": 3.3871144542177193e-05, "feature_x": -75.078596451957935, "feature_y": 38.735466315198828, "nearest_x": -75.0786, "nearest_y": 38.7355 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079508848007904, 38.735370211928348 ], [ -75.07298083326441, 38.736057811975073 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33835", "slope": 0.0481, "distance": 4.1707333380530263e-07, "feature_x": -75.078799957099505, "feature_y": 38.735899585138924, "nearest_x": -75.0788, "nearest_y": 38.7359 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079588348508551, 38.735818058141732 ], [ -75.073056892483663, 38.736493471383071 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33836", "slope": 0.0345, "distance": 3.5739682280868173e-05, "feature_x": -75.078696399934515, "feature_y": 38.736364442097674, "nearest_x": -75.0787, "nearest_y": 38.7364 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079667881957036, 38.736266084245585 ], [ -75.073130923710352, 38.736927919624335 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33837", "slope": 0.062, "distance": 1.9288790663980313e-06, "feature_x": -75.078899810155022, "feature_y": 38.736798080486174, "nearest_x": -75.0789, "nearest_y": 38.7368 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.07974744078173, 38.736714247581176 ], [ -75.073202672233435, 38.737361542455432 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33838", "slope": 0.038, "distance": 9.4462650100658234e-06, "feature_x": -75.078499092882495, "feature_y": 38.737290597390761, "nearest_x": -75.0785, "nearest_y": 38.7373 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079827013967261, 38.737162486094036 ], [ -75.073271893585172, 38.737794891876241 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33839", "slope": 0.0398, "distance": 3.9443525908275402e-06, "feature_x": -75.07899963042297, "feature_y": 38.737696072999846, "nearest_x": -75.079, "nearest_y": 38.7377 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079907281553673, 38.737610652325621 ], [ -75.073338154418806, 38.738228884650724 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33840", "slope": 0.0307, "distance": 4.93510624564458e-05, "feature_x": -75.079004522138504, "feature_y": 38.73814914343933, "nearest_x": -75.079, "nearest_y": 38.7381 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079989920432794, 38.738058467905901 ], [ -75.073401486765633, 38.738664730105349 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33840", "slope": 0.0404, "distance": 4.93510624564458e-05, "feature_x": -75.079004522138504, "feature_y": 38.73814914343933, "nearest_x": -75.079, "nearest_y": 38.7381 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.079989920432794, 38.738058467905901 ], [ -75.073401486765633, 38.738664730105349 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33841", "slope": 0.0432, "distance": 6.0739644301853322e-06, "feature_x": -75.079099453231848, "feature_y": 38.738593950695204, "nearest_x": -75.0791, "nearest_y": 38.7386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080072508206626, 38.738506000842172 ], [ -75.073462810244308, 38.7391034202886 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33841", "slope": 0.0419, "distance": 6.0739644301853322e-06, "feature_x": -75.079099453231848, "feature_y": 38.738593950695204, "nearest_x": -75.0791, "nearest_y": 38.7386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080072508206626, 38.738506000842172 ], [ -75.073462810244308, 38.7391034202886 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33842", "slope": 0.0502, "distance": 2.937160198509361e-05, "feature_x": -75.079302612904044, "feature_y": 38.739029255148871, "nearest_x": -75.0793, "nearest_y": 38.739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080155021203225, 38.738953122872239 ], [ -75.073523237901654, 38.739545436158473 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33843", "slope": 0.0364, "distance": 1.689843369539317e-05, "feature_x": -75.079298504992778, "feature_y": 38.739483167827984, "nearest_x": -75.0793, "nearest_y": 38.7395 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080237448047356, 38.73939977237233 ], [ -75.073583811015325, 38.739990738021767 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33843", "slope": 0.0402, "distance": 1.689843369539317e-05, "feature_x": -75.079298504992778, "feature_y": 38.739483167827984, "nearest_x": -75.0793, "nearest_y": 38.7395 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080237448047356, 38.73939977237233 ], [ -75.073583811015325, 38.739990738021767 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33844", "slope": 0.0563, "distance": 1.8707578212764509e-05, "feature_x": -75.079501655076868, "feature_y": 38.73991863422129, "nearest_x": -75.0795, "nearest_y": 38.7399 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080319792165781, 38.739845967929085 ], [ -75.073645505296426, 38.740438772834878 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33845", "slope": 0.0382, "distance": 2.0533725163495893e-05, "feature_x": -75.07957517681416, "feature_y": 38.74036554737517, "nearest_x": -75.079577, "nearest_y": 38.740386 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080402076880702, 38.740291835932226 ], [ -75.073709194293386, 38.740888452201752 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33846", "slope": 0.0385, "distance": 1.67404228457621e-05, "feature_x": -75.079601492908836, "feature_y": 38.740816673721248, "nearest_x": -75.0796, "nearest_y": 38.7408 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080484348226236, 38.740737625829894 ], [ -75.073775176018188, 38.741338342510552 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33847", "slope": 0.0357, "distance": 1.98634922245291e-05, "feature_x": -75.079646224346192, "feature_y": 38.741266216032329, "nearest_x": -75.079648, "nearest_y": 38.741286 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080566655610454, 38.741183605338747 ], [ -75.073842870534875, 38.741787079568851 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33848", "slope": 0.0364, "distance": 1.9074951942892867e-05, "feature_x": -75.079655297690252, "feature_y": 38.741719001159687, "nearest_x": -75.079657, "nearest_y": 38.741738 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08064903359309, 38.741629961708675 ], [ -75.073911348912262, 38.742233663097899 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33849", "slope": 0.0332, "distance": 1.9049552831699096e-05, "feature_x": -75.079661311870382, "feature_y": 38.742172025393771, "nearest_x": -75.079663, "nearest_y": 38.742191 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080731503915487, 38.742076812725976 ], [ -75.073979734904583, 38.742677502987867 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33850", "slope": 0.0444, "distance": 4.2875857476510146e-06, "feature_x": -75.079999624986812, "feature_y": 38.742595728845984, "nearest_x": -75.08, "nearest_y": 38.7426 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080814077726259, 38.742524218777142 ], [ -75.074047210465068, 38.74311835901419 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33851", "slope": 0.0332, "distance": 3.3251719579755059e-05, "feature_x": -75.079797147374677, "feature_y": 38.743066870868049, "nearest_x": -75.0798, "nearest_y": 38.7431 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.080912504238952, 38.742970831670689 ], [ -75.074113011975271, 38.743556310453648 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33852", "slope": 0.0432, "distance": 5.4736492643076182e-06, "feature_x": -75.080099542126973, "feature_y": 38.743494545534986, "nearest_x": -75.0801, "nearest_y": 38.7435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081019107312343, 38.743417352978739 ], [ -75.074176427430288, 38.743991759187338 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33852", "slope": 0.0434, "distance": 5.4736492643076182e-06, "feature_x": -75.080099542126973, "feature_y": 38.743494545534986, "nearest_x": -75.0801, "nearest_y": 38.7435 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081019107312343, 38.743417352978739 ], [ -75.074176427430288, 38.743991759187338 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33853", "slope": 0.0443, "distance": 3.9678712953071914e-05, "feature_x": -75.080203220856376, "feature_y": 38.743939547772953, "nearest_x": -75.0802, "nearest_y": 38.7439 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081125839110214, 38.743864407741953 ], [ -75.074236794205021, 38.744425466495741 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33854", "slope": 0.0297, "distance": 1.0716733087019735e-06, "feature_x": -75.080100084184195, "feature_y": 38.74440106836169, "nearest_x": -75.0801, "nearest_y": 38.7444 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081232658667943, 38.744311824359364 ], [ -75.074293541070972, 38.744858609260355 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33855", "slope": 0.0496, "distance": 1.5911578811375318e-05, "feature_x": -75.080896790169589, "feature_y": 38.744793134482336, "nearest_x": -75.080898, "nearest_y": 38.744809 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081339511502449, 38.744759374617395 ], [ -75.07434672790788, 38.745292611694993 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33856", "slope": 0.0279, "distance": 9.1354257572561213e-07, "feature_x": -75.080199932551665, "feature_y": 38.745299088950738, "nearest_x": -75.0802, "nearest_y": 38.7453 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081446338969698, 38.745206812886337 ], [ -75.074397142354314, 38.745728690912173 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33857", "slope": 0.0486, "distance": 1.2738929578022888e-05, "feature_x": -75.081091081633204, "feature_y": 38.745687294216701, "nearest_x": -75.081092, "nearest_y": 38.7457 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08155308418894, 38.745653900934514 ], [ -75.074445676052804, 38.746167620355735 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33858", "slope": 0.0256, "distance": 2.9109601418098993e-06, "feature_x": -75.08029979362702, "feature_y": 38.746197096364497, "nearest_x": -75.0803, "nearest_y": 38.7462 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081659700265277, 38.74610044236605 ], [ -75.074493142328464, 38.746609798273454 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33859", "slope": 0.0462, "distance": 1.0053458277733758e-05, "feature_x": -75.081231293543098, "feature_y": 38.746583971393818, "nearest_x": -75.081232, "nearest_y": 38.746594 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081766152927358, 38.746546293665176 ], [ -75.074540322653519, 38.74705531132529 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33860", "slope": 0.0139, "distance": 5.0009006961323021e-06, "feature_x": -75.080399648979039, "feature_y": 38.747095011433871, "nearest_x": -75.0804, "nearest_y": 38.7471 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081872424172786, 38.746991379461157 ], [ -75.074587972891678, 38.747503950598698 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33861", "slope": 0.0282, "distance": 1.177663344219664e-05, "feature_x": -75.081250168791726, "feature_y": 38.747487252736995, "nearest_x": -75.081251, "nearest_y": 38.747499 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081955105063386, 38.74743737313014 ], [ -75.074636821943329, 38.747955197364114 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33862", "slope": 0.0179, "distance": 7.2684684547799311e-06, "feature_x": -75.080499481779839, "feature_y": 38.747992750028857, "nearest_x": -75.0805, "nearest_y": 38.748 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.081982967474104, 38.747886712061884 ], [ -75.074687580216121, 38.74840817852165 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33863", "slope": 0.0455, "distance": 1.2741006884872008e-05, "feature_x": -75.081328080923157, "feature_y": 38.748385292185311, "nearest_x": -75.081329, "nearest_y": 38.748398 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082010821735039, 38.748335913808106 ], [ -75.074740684169143, 38.748861717434913 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33864", "slope": 0.0168, "distance": 9.4954396880644488e-06, "feature_x": -75.080599308030173, "feature_y": 38.748890529807149, "nearest_x": -75.0806, "nearest_y": 38.7489 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08203869130476, 38.74878535668028 ], [ -75.07479586050971, 38.749314577198241 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33865", "slope": 0.0621, "distance": 1.3463021469815237e-05, "feature_x": -75.081478012745478, "feature_y": 38.749278573225418, "nearest_x": -75.081479, "nearest_y": 38.749292 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082066591998043, 38.749235295703393 ], [ -75.074852390748362, 38.749765747213758 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33866", "slope": 0.0197, "distance": 4.1469666986989279e-06, "feature_x": -75.080599695695739, "feature_y": 38.74979586421329, "nearest_x": -75.0806, "nearest_y": 38.7498 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082094532852395, 38.749685876598505 ], [ -75.074909568385081, 38.750214534252308 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33867", "slope": 0.0138, "distance": 1.5962772162794368e-05, "feature_x": -75.081111835680929, "feature_y": 38.750211079746983, "nearest_x": -75.081113, "nearest_y": 38.750227 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082122517880705, 38.750137164052191 ], [ -75.074966720850114, 38.750660499388857 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33868", "slope": 0.0131, "distance": 6.1628662836812352e-06, "feature_x": -75.08069955649367, "feature_y": 38.750693853112743, "nearest_x": -75.0807, "nearest_y": 38.7507 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082150547337349, 38.75058916213856 ], [ -75.075023207178489, 38.751103409480514 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33869", "slope": 0.0302, "distance": 1.0990450374580659e-05, "feature_x": -75.081609225836701, "feature_y": 38.751082036849418, "nearest_x": -75.08161, "nearest_y": 38.751093 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082178618637897, 38.751041829154921 ], [ -75.075078416285592, 38.751543210216354 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33870", "slope": 0.0348, "distance": 1.2358768271829405e-05, "feature_x": -75.081454154890821, "feature_y": 38.751546670160437, "nearest_x": -75.081455, "nearest_y": 38.751559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082206726973311, 38.751495087527864 ], [ -75.075131765333822, 38.751980018015196 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33871", "slope": 0.0255, "distance": 1.3712534048814755e-05, "feature_x": -75.081318097212076, "feature_y": 38.752009317216512, "nearest_x": -75.081319, "nearest_y": 38.752023 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082234865630127, 38.751948828979451 ], [ -75.075182697879455, 38.752414129906391 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33872", "slope": 0.0223, "distance": 8.8770088497997737e-06, "feature_x": -75.081529441729103, "feature_y": 38.752449140563236, "nearest_x": -75.08153, "nearest_y": 38.752458 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082273678246978, 38.752402243046234 ], [ -75.0752306815792, 38.752846052303127 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0445, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082312668001109, 38.752855884870336 ], [ -75.07527520538008, 38.753276551443001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.093, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082312668001109, 38.752855884870336 ], [ -75.07527520538008, 38.753276551443001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0458, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082312668001109, 38.752855884870336 ], [ -75.07527520538008, 38.753276551443001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33873", "slope": 0.0853, "distance": 2.8321933590457266e-05, "feature_x": -75.081101689936162, "feature_y": 38.752928271470388, "nearest_x": -75.0811, "nearest_y": 38.7529 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082312668001109, 38.752855884870336 ], [ -75.07527520538008, 38.753276551443001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33874", "slope": 0.0245, "distance": 1.4131872057975371e-05, "feature_x": -75.080999203498166, "feature_y": 38.75338589059205, "nearest_x": -75.081, "nearest_y": 38.7534 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082351659571643, 38.753309541977103 ], [ -75.075315776517201, 38.753706730423133 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33875", "slope": 0.0177, "distance": 1.0583390532882531e-05, "feature_x": -75.081462437094913, "feature_y": 38.75381243158985, "nearest_x": -75.081463, "nearest_y": 38.753823 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082390633936612, 38.75376299305411 ], [ -75.075352568109039, 38.754137861458453 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33876", "slope": 0.015, "distance": 1.6894711744238214e-05, "feature_x": -75.081099150219359, "feature_y": 38.754283126673187, "nearest_x": -75.0811, "nearest_y": 38.7543 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082429581204067, 38.754216123022346 ], [ -75.075386708346429, 38.754570818755745 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33877", "slope": 0.0267, "distance": 1.8565248128487242e-05, "feature_x": -75.081892113618395, "feature_y": 38.7546964559237, "nearest_x": -75.081893, "nearest_y": 38.754715 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082468499103811, 38.754668905482333 ], [ -75.075419035269618, 38.755005860254684 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33878", "slope": 0.0365, "distance": 1.6210021269463518e-05, "feature_x": -75.081641261968727, "feature_y": 38.755160806788481, "nearest_x": -75.081642, "nearest_y": 38.755177 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082507386890228, 38.755121331772955 ], [ -75.075449799382298, 38.755442992505195 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0249, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0276, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0279, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0316, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0319, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.033, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0242, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33879", "slope": 0.0249, "distance": 2.7822718779379172e-05, "feature_x": -75.081301214625171, "feature_y": 38.755627796193373, "nearest_x": -75.0813, "nearest_y": 38.7556 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082546243668006, 38.755573391491183 ], [ -75.075479252333707, 38.755882201603789 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33880", "slope": 0.0348, "distance": 1.4828764679743284e-05, "feature_x": -75.081657375379592, "feature_y": 38.756064184396358, "nearest_x": -75.081658, "nearest_y": 38.756079 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082585068452559, 38.756025073196817 ], [ -75.075507647624434, 38.756323454661903 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33881", "slope": 0.0298, "distance": 1.406275014787725e-05, "feature_x": -75.081657424505508, "feature_y": 38.756515949030359, "nearest_x": -75.081658, "nearest_y": 38.75653 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082609046640727, 38.756476972837106 ], [ -75.075535240805095, 38.756766699203339 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33882", "slope": 0.0329, "distance": 1.8107394942320938e-05, "feature_x": -75.081299274790638, "feature_y": 38.756981907133365, "nearest_x": -75.0813, "nearest_y": 38.757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082624780833925, 38.75692877738814 ], [ -75.075562289390049, 38.757211860496653 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33882", "slope": 0.0335, "distance": 1.8107394942320938e-05, "feature_x": -75.081299274790638, "feature_y": 38.756981907133365, "nearest_x": -75.0813, "nearest_y": 38.757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082624780833925, 38.75692877738814 ], [ -75.075562289390049, 38.757211860496653 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33883", "slope": 0.0433, "distance": 1.2999160876010166e-05, "feature_x": -75.081834486661393, "feature_y": 38.757412010978982, "nearest_x": -75.081835, "nearest_y": 38.757425 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082640500417057, 38.757380156540428 ], [ -75.075589052480908, 38.757658836542362 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33884", "slope": 0.0444, "distance": 1.2917773244376887e-05, "feature_x": -75.081867493329, "feature_y": 38.757862092167102, "nearest_x": -75.081868, "nearest_y": 38.757875 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082656206174434, 38.757831132831669 ], [ -75.075615790054485, 38.758107490197361 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33885", "slope": 0.0421, "distance": 1.2504548000492619e-05, "feature_x": -75.081913509562753, "feature_y": 38.758311505073351, "nearest_x": -75.081914, "nearest_y": 38.758324 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082671899196598, 38.758281737590295 ], [ -75.075642761833407, 38.758557637626417 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33886", "slope": 0.0545, "distance": 1.2033723612948268e-05, "feature_x": -75.081979525394914, "feature_y": 38.758759975639144, "nearest_x": -75.08198, "nearest_y": 38.758772 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082687581490433, 38.758732028455043 ], [ -75.075670304887723, 38.759009002443896 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33887", "slope": 0.0551, "distance": 1.206127946856357e-05, "feature_x": -75.082032520702768, "feature_y": 38.759208948247569, "nearest_x": -75.082033, "nearest_y": 38.759221 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082703262371226, 38.759182272905406 ], [ -75.075699721233732, 38.759460803172672 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33888", "slope": 0.0576, "distance": 1.2074038967316863e-05, "feature_x": -75.082116519152507, "feature_y": 38.759656935539688, "nearest_x": -75.082117, "nearest_y": 38.759669 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082718957633219, 38.759632924433866 ], [ -75.07573183986338, 38.759911406684765 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33889", "slope": 0.0633, "distance": 1.192004496406868e-05, "feature_x": -75.082106530585946, "feature_y": 38.760109089201435, "nearest_x": -75.082107, "nearest_y": 38.760121 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082734679477923, 38.760084333353632 ], [ -75.07576566615802, 38.760358987715513 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33890", "slope": 0.0387, "distance": 1.4478374940483572e-05, "feature_x": -75.082047447113737, "feature_y": 38.760563532185458, "nearest_x": -75.082048, "nearest_y": 38.760578 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082738392734285, 38.76053712775888 ], [ -75.075799772409553, 38.760802286528957 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33891", "slope": 0.049, "distance": 1.2180040513270321e-05, "feature_x": -75.082133559812192, "feature_y": 38.761012827916296, "nearest_x": -75.082134, "nearest_y": 38.761025 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082715154086245, 38.760991795304584 ], [ -75.075832791677115, 38.761240687122601 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33892", "slope": 0.0286, "distance": 1.1427295289858328e-05, "feature_x": -75.082135620206472, "feature_y": 38.761465579017795, "nearest_x": -75.082136, "nearest_y": 38.761477 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08269188354997, 38.761447081027583 ], [ -75.075863415499228, 38.761674155014425 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33893", "slope": 0.0399, "distance": 1.3710611769682263e-05, "feature_x": -75.082006594563879, "feature_y": 38.76192229538411, "nearest_x": -75.082007, "nearest_y": 38.761936 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082668595134834, 38.761902710818504 ], [ -75.075890384437486, 38.76210323679674 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33894", "slope": 0.0484, "distance": 1.3689655910836762e-05, "feature_x": -75.081976652899627, "feature_y": 38.76237531474515, "nearest_x": -75.081977, "nearest_y": 38.762389 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082645305658204, 38.762358355643869 ], [ -75.075912469889516, 38.762529121175334 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33895", "slope": 0.0518, "distance": 1.2775563096760067e-05, "feature_x": -75.082020732606466, "feature_y": 38.762826227235493, "nearest_x": -75.082021, "nearest_y": 38.762839 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082622034355254, 38.762813639185197 ], [ -75.075928447495997, 38.762953767179518 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33896", "slope": 0.0466, "distance": 1.3404560225263257e-05, "feature_x": -75.081499774686904, "feature_y": 38.763286597333519, "nearest_x": -75.0815, "nearest_y": 38.7633 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082598803715072, 38.763268121484515 ], [ -75.075937066286187, 38.763380112388916 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33897", "slope": 0.07, "distance": 1.7825704826415669e-05, "feature_x": -75.081898748695238, "feature_y": 38.763731176066692, "nearest_x": -75.081899, "nearest_y": 38.763749 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082575622424329, 38.763721632629156 ], [ -75.075931815208946, 38.763815305579449 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33898", "slope": 0.0393, "distance": 8.0156926829533768e-06, "feature_x": -75.081299879495745, "feature_y": 38.764191985213174, "nearest_x": -75.0813, "nearest_y": 38.7642 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082564186292913, 38.764172976056166 ], [ -75.075905652870091, 38.764273088708869 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33899", "slope": 0.0674, "distance": 2.3015468626357049e-05, "feature_x": -75.081776485198475, "feature_y": 38.764635990289541, "nearest_x": -75.081777, "nearest_y": 38.764659 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08257789321263, 38.764618060204185 ], [ -75.075864846935033, 38.764768252728629 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33900", "slope": 0.0447, "distance": 2.5427170626609827e-06, "feature_x": -75.081399902902405, "feature_y": 38.765097459137522, "nearest_x": -75.0814, "nearest_y": 38.7651 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082591255013128, 38.765051932303791 ], [ -75.075825280959464, 38.765310490099608 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33901", "slope": 0.0719, "distance": 3.9376428975149799e-05, "feature_x": -75.081705499219382, "feature_y": 38.765527703063029, "nearest_x": -75.081708, "nearest_y": 38.765567 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08260414610794, 38.765470514923209 ], [ -75.075805165722301, 38.765903188808679 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33902", "slope": 0.0378, "distance": 6.3311852343150379e-06, "feature_x": -75.081399383481667, "feature_y": 38.765993698903934, "nearest_x": -75.0814, "nearest_y": 38.766 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082616590981559, 38.765874603631971 ], [ -75.075836598514059, 38.766537978649694 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33903", "slope": 0.0573, "distance": 2.2244258527535801e-05, "feature_x": -75.081723991445259, "feature_y": 38.766401042193465, "nearest_x": -75.081721, "nearest_y": 38.766379 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082632677244348, 38.76627772035507 ], [ -75.07596488049208, 38.767182637053814 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33904", "slope": 0.0601, "distance": 1.7972757693285528e-05, "feature_x": -75.081784989502879, "feature_y": 38.766845722383913, "nearest_x": -75.081782, "nearest_y": 38.766828 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.082832456682311, 38.766669030232343 ], [ -75.076184645092113, 38.767790417284992 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33905", "slope": 0.0532, "distance": 0.00012360673947885321, "feature_x": -75.081805094862943, "feature_y": 38.767310430034797, "nearest_x": -75.081782, "nearest_y": 38.767189 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083040009399255, 38.767075560778501 ], [ -75.0764387191889, 38.768331064764176 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33906", "slope": 0.0337, "distance": 4.9004641072942909e-06, "feature_x": -75.082200955654841, "feature_y": 38.767704806378291, "nearest_x": -75.0822, "nearest_y": 38.7677 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083254339809713, 38.767495361427407 ], [ -75.076675177821144, 38.768803499824166 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33907", "slope": 0.049, "distance": 6.6960184053306729e-06, "feature_x": -75.082598698589379, "feature_y": 38.768093431667417, "nearest_x": -75.0826, "nearest_y": 38.7681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083407480833486, 38.767933184330268 ], [ -75.076858924036358, 38.769230676698001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33907", "slope": 0.0556, "distance": 6.6960184053306729e-06, "feature_x": -75.082598698589379, "feature_y": 38.768093431667417, "nearest_x": -75.0826, "nearest_y": 38.7681 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083407480833486, 38.767933184330268 ], [ -75.076858924036358, 38.769230676698001 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33908", "slope": 0.0425, "distance": 1.8800887111862152e-05, "feature_x": -75.082803569204827, "feature_y": 38.768518458985163, "nearest_x": -75.0828, "nearest_y": 38.7685 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083504467147307, 38.768382934291225 ], [ -75.07700220241783, 38.769640203551049 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33909", "slope": 0.0387, "distance": 1.5926348636989405e-05, "feature_x": -75.082797069038833, "feature_y": 38.768984345670006, "nearest_x": -75.0828, "nearest_y": 38.769 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083601673646228, 38.768833699499524 ], [ -75.077134777680399, 38.770044496831765 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33909", "slope": 0.0337, "distance": 1.5926348636989405e-05, "feature_x": -75.082797069038833, "feature_y": 38.768984345670006, "nearest_x": -75.0828, "nearest_y": 38.769 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083601673646228, 38.768833699499524 ], [ -75.077134777680399, 38.770044496831765 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33910", "slope": 0.0444, "distance": 1.1126037779882243e-05, "feature_x": -75.083001972638215, "feature_y": 38.76941094976781, "nearest_x": -75.083, "nearest_y": 38.7694 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083699075400801, 38.769285364314875 ], [ -75.07726169893273, 38.770445079758311 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33911", "slope": 0.0408, "distance": 4.1924068919574888e-05, "feature_x": -75.083092885947266, "feature_y": 38.769858683927964, "nearest_x": -75.0831, "nearest_y": 38.7699 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083796583621137, 38.769737516979781 ], [ -75.077382115510233, 38.770841999137502 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33911", "slope": 0.0413, "distance": 4.1924068919574888e-05, "feature_x": -75.083092885947266, "feature_y": 38.769858683927964, "nearest_x": -75.0831, "nearest_y": 38.7699 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083796583621137, 38.769737516979781 ], [ -75.077382115510233, 38.770841999137502 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33912", "slope": 0.0382, "distance": 3.1761968920168364e-06, "feature_x": -75.083200512309247, "feature_y": 38.770303134607779, "nearest_x": -75.0832, "nearest_y": 38.7703 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083894115718721, 38.770189774513838 ], [ -75.077495260982417, 38.771235580754308 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33913", "slope": 0.0476, "distance": 3.2551314394395311e-05, "feature_x": -75.08340495685971, "feature_y": 38.770732171689581, "nearest_x": -75.0834, "nearest_y": 38.7707 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.083991495488007, 38.770641800629363 ], [ -75.077600446424469, 38.77162650283293 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33914", "slope": 0.0425, "distance": 7.0348698232898857e-06, "feature_x": -75.083301005085815, "feature_y": 38.771206962700333, "nearest_x": -75.0833, "nearest_y": 38.7712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08405948107206, 38.771097474509297 ], [ -75.077697052439206, 38.772015909389587 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33914", "slope": 0.0398, "distance": 7.0348698232898857e-06, "feature_x": -75.083301005085815, "feature_y": 38.771206962700333, "nearest_x": -75.0833, "nearest_y": 38.7712 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08405948107206, 38.771097474509297 ], [ -75.077697052439206, 38.772015909389587 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33915", "slope": 0.0616, "distance": 3.2057225051091147e-05, "feature_x": -75.083428277179095, "feature_y": 38.771645770606177, "nearest_x": -75.083424, "nearest_y": 38.771614 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084127247026956, 38.771551670443017 ], [ -75.077784519561874, 38.772405572354735 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33916", "slope": 0.0371, "distance": 4.0929306403659229e-06, "feature_x": -75.083400509209042, "feature_y": 38.772104061131294, "nearest_x": -75.0834, "nearest_y": 38.7721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084194805146666, 38.772004467533982 ], [ -75.077862586091243, 38.772798439207271 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33916", "slope": 0.0411, "distance": 4.0929306403659229e-06, "feature_x": -75.083400509209042, "feature_y": 38.772104061131294, "nearest_x": -75.0834, "nearest_y": 38.7721 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084194805146666, 38.772004467533982 ], [ -75.077862586091243, 38.772798439207271 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33917", "slope": 0.0524, "distance": 3.1172818987560263e-05, "feature_x": -75.083532628357503, "feature_y": 38.772541960937737, "nearest_x": -75.083529, "nearest_y": 38.772511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08426224352668, 38.772456456270575 ], [ -75.077932316148647, 38.773198269703883 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33918", "slope": 0.0717, "distance": 4.1588670330692229e-05, "feature_x": -75.083375568894212, "feature_y": 38.773013336941176, "nearest_x": -75.083371, "nearest_y": 38.772972 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08432959991724, 38.772907889689897 ], [ -75.077996002909913, 38.7736079302326 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33919", "slope": 0.0476, "distance": 3.2073851366099191e-05, "feature_x": -75.083703372025568, "feature_y": 38.773431896102977, "nearest_x": -75.0837, "nearest_y": 38.7734 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084396846686417, 38.773358582623402 ], [ -75.078056025234815, 38.774028928218158 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33920", "slope": 0.046, "distance": 1.2961205017110807e-05, "feature_x": -75.083698672819125, "feature_y": 38.773887106923311, "nearest_x": -75.0837, "nearest_y": 38.7739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084463953361094, 38.773808330870068 ], [ -75.078114641431497, 38.774461913062744 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33920", "slope": 0.0534, "distance": 1.2961205017110807e-05, "feature_x": -75.083698672819125, "feature_y": 38.773887106923311, "nearest_x": -75.0837, "nearest_y": 38.7739 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084463953361094, 38.773808330870068 ], [ -75.078114641431497, 38.774461913062744 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33921", "slope": 0.0449, "distance": 3.1488567685280261e-05, "feature_x": -75.083803202392829, "feature_y": 38.77433132530247, "nearest_x": -75.0838, "nearest_y": 38.7743 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084530889974758, 38.774256933634611 ], [ -75.078174073072105, 38.77490679247979 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33922", "slope": 0.0903, "distance": 3.8067376161965603e-05, "feature_x": -75.08367391998614, "feature_y": 38.774799865008077, "nearest_x": -75.08367, "nearest_y": 38.774762 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084597633596672, 38.774704237283935 ], [ -75.078236537739187, 38.775362771609906 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33923", "slope": 0.0556, "distance": 3.1491168926848984e-05, "feature_x": -75.083903338805669, "feature_y": 38.775231313672684, "nearest_x": -75.0839, "nearest_y": 38.7752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08466417644496, 38.775150189715987 ], [ -75.078304233748327, 38.775828315625212 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33923", "slope": 0.0769, "distance": 3.1491168926848984e-05, "feature_x": -75.083903338805669, "feature_y": 38.775231313672684, "nearest_x": -75.0839, "nearest_y": 38.7752 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08466417644496, 38.775150189715987 ], [ -75.078304233748327, 38.775828315625212 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33924", "slope": 0.0627, "distance": 1.2687220891913409e-05, "feature_x": -75.083898598064579, "feature_y": 38.775687390473799, "nearest_x": -75.0839, "nearest_y": 38.7757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084748171335747, 38.775592934358173 ], [ -75.078379277345135, 38.776301032185167 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33924", "slope": 0.0664, "distance": 1.2687220891913409e-05, "feature_x": -75.083898598064579, "feature_y": 38.775687390473799, "nearest_x": -75.0839, "nearest_y": 38.7757 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084748171335747, 38.775592934358173 ], [ -75.078379277345135, 38.776301032185167 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33925", "slope": 0.0743, "distance": 1.9871887205644441e-05, "feature_x": -75.084102302930802, "feature_y": 38.776119737994094, "nearest_x": -75.0841, "nearest_y": 38.7761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084853169000056, 38.776032130682559 ], [ -75.078463366789805, 38.776777660965259 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33926", "slope": 0.0916, "distance": 2.3352657705658595e-05, "feature_x": -75.084149160403626, "feature_y": 38.776569820627394, "nearest_x": -75.084152, "nearest_y": 38.776593 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.084958025348783, 38.776470730371223 ], [ -75.078556325411739, 38.777254972648599 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33927", "slope": 0.0546, "distance": 7.1367525273471432e-06, "feature_x": -75.084300907248888, "feature_y": 38.777007078851327, "nearest_x": -75.0843, "nearest_y": 38.777 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085062904235045, 38.776909418808543 ], [ -75.078656418934528, 38.777730495059387 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33927", "slope": 0.0733, "distance": 7.1367525273471432e-06, "feature_x": -75.084300907248888, "feature_y": 38.777007078851327, "nearest_x": -75.0843, "nearest_y": 38.777 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085062904235045, 38.776909418808543 ], [ -75.078656418934528, 38.777730495059387 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33928", "slope": 0.063, "distance": 2.3156264545258688e-05, "feature_x": -75.084293940407733, "feature_y": 38.777465046754415, "nearest_x": -75.084297, "nearest_y": 38.777488 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085167890782103, 38.777348552038816 ], [ -75.078761974641239, 38.778202439628835 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33929", "slope": 0.056, "distance": 5.1783023901898697e-06, "feature_x": -75.08449929376232, "feature_y": 38.777894870083436, "nearest_x": -75.0845, "nearest_y": 38.7779 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08527303722083, 38.777788348509766 ], [ -75.078871463755803, 38.778669655707873 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33930", "slope": 0.0242, "distance": 1.0451499983219754e-05, "feature_x": -75.084801460642723, "feature_y": 38.778310348931093, "nearest_x": -75.0848, "nearest_y": 38.7783 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085378371254649, 38.77822892406941 ], [ -75.078983450945358, 38.779131499773342 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33931", "slope": 0.0637, "distance": 2.7074271481650451e-06, "feature_x": -75.084599615067148, "feature_y": 38.778797320076777, "nearest_x": -75.0846, "nearest_y": 38.7788 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085483899231107, 38.778670305236787 ], [ -75.079096602279535, 38.77958774957574 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33931", "slope": 0.053, "distance": 2.7074271481650451e-06, "feature_x": -75.084599615067148, "feature_y": 38.778797320076777, "nearest_x": -75.0846, "nearest_y": 38.7788 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085483899231107, 38.778670305236787 ], [ -75.079096602279535, 38.77958774957574 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33932", "slope": 0.0339, "distance": 2.0846318591669129e-05, "feature_x": -75.084729005300062, "feature_y": 38.779237369906177, "nearest_x": -75.084732, "nearest_y": 38.779258 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085589609468698, 38.779112443123161 ], [ -75.079209692610448, 38.780038562840069 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33933", "slope": 0.0904, "distance": 1.8324719842710057e-05, "feature_x": -75.085190356367164, "feature_y": 38.779628866975905, "nearest_x": -75.085193, "nearest_y": 38.779647 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085695475065805, 38.779555225184211 ], [ -75.07932161291717, 38.780484477318161 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33934", "slope": 0.0561, "distance": 6.6076693891022099e-07, "feature_x": -75.085100095252812, "feature_y": 38.780100653865311, "nearest_x": -75.0851, "nearest_y": 38.7801 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085801455555597, 38.779998482146617 ], [ -75.079431378955562, 38.780926452651748 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33935", "slope": 0.0496, "distance": 1.8825014442662957e-05, "feature_x": -75.08522929743431, "feature_y": 38.780540369989062, "nearest_x": -75.085232, "nearest_y": 38.780559 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.085907983853673, 38.78044191622849 ], [ -75.079538143528154, 38.781365958196012 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33936", "slope": 0.0811, "distance": 1.6650575205860192e-05, "feature_x": -75.085583622220469, "feature_y": 38.7809475200783, "nearest_x": -75.085586, "nearest_y": 38.780964 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086017821237363, 38.780884872357063 ], [ -75.079641715035521, 38.781804838797278 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33937", "slope": 0.0902, "distance": 1.6425222517305315e-05, "feature_x": -75.08571666582894, "feature_y": 38.781386741476688, "nearest_x": -75.085719, "nearest_y": 38.781403 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086127638038647, 38.781327739843043 ], [ -75.079744029319514, 38.782244208971868 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33938", "slope": 0.0519, "distance": 9.6329406577925138e-06, "feature_x": -75.085398637195524, "feature_y": 38.781890463946851, "nearest_x": -75.0854, "nearest_y": 38.7819 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086237451534515, 38.781770588362512 ], [ -75.079846790292038, 38.782683882538734 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33939", "slope": 0.0815, "distance": 1.6436119655201908e-05, "feature_x": -75.085916685980379, "feature_y": 38.782274727589531, "nearest_x": -75.085919, "nearest_y": 38.782291 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086347280793902, 38.782213494814528 ], [ -75.079949751497651, 38.783123256055703 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33940", "slope": 0.087, "distance": 1.5945511971800391e-05, "feature_x": -75.086027768134613, "feature_y": 38.782717211455768, "nearest_x": -75.08603, "nearest_y": 38.782733 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086457139795073, 38.782656515565648 ], [ -75.080052513549063, 38.783561872222066 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33941", "slope": 0.0537, "distance": 6.6504103565769283e-06, "feature_x": -75.085899075911414, "feature_y": 38.783193414104602, "nearest_x": -75.0859, "nearest_y": 38.7832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086567038332262, 38.783099690106766 ], [ -75.080154714590506, 38.78399942428004 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33941", "slope": 0.0671, "distance": 6.6504103565769283e-06, "feature_x": -75.085899075911414, "feature_y": 38.783193414104602, "nearest_x": -75.0859, "nearest_y": 38.7832 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086567038332262, 38.783099690106766 ], [ -75.080154714590506, 38.78399942428004 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33942", "slope": 0.0771, "distance": 1.5901102297428269e-05, "feature_x": -75.086164810404114, "feature_y": 38.783614250373844, "nearest_x": -75.086167, "nearest_y": 38.78363 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086676983100816, 38.783543045431053 ], [ -75.080256022226678, 38.784435721191898 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33943", "slope": 0.0502, "distance": 5.1642372971848697e-06, "feature_x": -75.085999296673862, "feature_y": 38.784094883880456, "nearest_x": -75.086, "nearest_y": 38.7841 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086786978490125, 38.783986599231476 ], [ -75.080356128175808, 38.784870664795207 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33944", "slope": 0.092, "distance": 1.4576350671152744e-05, "feature_x": -75.086409040709185, "feature_y": 38.784496555929302, "nearest_x": -75.086411, "nearest_y": 38.784511 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.086890637150759, 38.784431228951838 ], [ -75.080454744892791, 38.785304236624214 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33945", "slope": 0.0378, "distance": 1.770975349437908e-05, "feature_x": -75.086197655625185, "feature_y": 38.78498244610369, "nearest_x": -75.0862, "nearest_y": 38.785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08699107100675, 38.784876483130404 ], [ -75.080551603710902, 38.785736493053179 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33945", "slope": 0.0469, "distance": 1.770975349437908e-05, "feature_x": -75.086197655625185, "feature_y": 38.78498244610369, "nearest_x": -75.0862, "nearest_y": 38.785 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08699107100675, 38.784876483130404 ], [ -75.080551603710902, 38.785736493053179 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33946", "slope": 0.0501, "distance": 1.25337916843689e-05, "feature_x": -75.086401630591709, "feature_y": 38.785412427272618, "nearest_x": -75.0864, "nearest_y": 38.7854 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087091543581266, 38.785321903274436 ], [ -75.080646454248637, 38.786167568255159 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33947", "slope": 0.0544, "distance": 3.0375089337492854e-05, "feature_x": -75.086396124022613, "feature_y": 38.785869873220356, "nearest_x": -75.0864, "nearest_y": 38.7859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087192051130685, 38.785767472781032 ], [ -75.080739064976086, 38.786597685259636 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33947", "slope": 0.0643, "distance": 3.0375089337492854e-05, "feature_x": -75.086396124022613, "feature_y": 38.785869873220356, "nearest_x": -75.0864, "nearest_y": 38.7859 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087192051130685, 38.785767472781032 ], [ -75.080739064976086, 38.786597685259636 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33948", "slope": 0.0384, "distance": 1.2926996543772102e-05, "feature_x": -75.086501615717125, "feature_y": 38.786312825626602, "nearest_x": -75.0865, "nearest_y": 38.7863 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087292591460084, 38.786213181913993 ], [ -75.080828813332857, 38.787027460804076 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33949", "slope": 0.0612, "distance": 1.8424102976927273e-05, "feature_x": -75.08665774411736, "feature_y": 38.786749714525875, "nearest_x": -75.08666, "nearest_y": 38.786768 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08739315466886, 38.786658986777915 ], [ -75.08091498175196, 38.787458200276369 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33950", "slope": 0.0479, "distance": 8.4223975624448777e-07, "feature_x": -75.086700101262636, "feature_y": 38.787200836130182, "nearest_x": -75.0867, "nearest_y": 38.7872 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087493703890331, 38.787104723939194 ], [ -75.080997945292225, 38.787891416887547 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33951", "slope": 0.0631, "distance": 1.7339272566137342e-05, "feature_x": -75.086868943874336, "feature_y": 38.787636783068791, "nearest_x": -75.086871, "nearest_y": 38.787654 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087594188941978, 38.78755017094398 ], [ -75.081078817964169, 38.788328266720818 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33952", "slope": 0.0584, "distance": 1.1134693009373695e-06, "feature_x": -75.086800131008886, "feature_y": 38.788101105735301, "nearest_x": -75.0868, "nearest_y": 38.7881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087694565655781, 38.787995132011616 ], [ -75.081158634074896, 38.78876951727247 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33952", "slope": 0.036, "distance": 1.1134693009373695e-06, "feature_x": -75.086800131008886, "feature_y": 38.788101105735301, "nearest_x": -75.0868, "nearest_y": 38.7881 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087694565655781, 38.787995132011616 ], [ -75.081158634074896, 38.78876951727247 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33953", "slope": 0.0495, "distance": 2.2477343369821903e-05, "feature_x": -75.086897357379172, "feature_y": 38.788545678541261, "nearest_x": -75.0869, "nearest_y": 38.788568 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08779479443578, 38.788439431638494 ], [ -75.081238378221613, 38.789215640856625 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33954", "slope": 0.0657, "distance": 1.507833412267006e-06, "feature_x": -75.08690017849824, "feature_y": 38.789001497230771, "nearest_x": -75.0869, "nearest_y": 38.789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087894840286921, 38.788882914724667 ], [ -75.081319007759802, 38.789666878389156 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33954", "slope": 0.0425, "distance": 1.507833412267006e-06, "feature_x": -75.08690017849824, "feature_y": 38.789001497230771, "nearest_x": -75.0869, "nearest_y": 38.789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087894840286921, 38.788882914724667 ], [ -75.081319007759802, 38.789666878389156 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33955", "slope": 0.061, "distance": 1.815874372213552e-05, "feature_x": -75.087221818568082, "feature_y": 38.789418972761489, "nearest_x": -75.087224, "nearest_y": 38.789437 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.087994673911211, 38.789325451431445 ], [ -75.081401466392208, 38.790123279306904 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33956", "slope": 0.0415, "distance": 2.3573293357641038e-06, "feature_x": -75.087000289542118, "feature_y": 38.789902339480065, "nearest_x": -75.087, "nearest_y": 38.7899 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088133773653539, 38.789762055581804 ], [ -75.081486689982015, 38.790584721554879 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33957", "slope": 0.048, "distance": 2.1078552586491326e-05, "feature_x": -75.087302665230155, "feature_y": 38.790320909374152, "nearest_x": -75.0873, "nearest_y": 38.7903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088277006076197, 38.790196714235982 ], [ -75.081575605059157, 38.791050913696694 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33957", "slope": 0.0543, "distance": 2.1078552586491326e-05, "feature_x": -75.087302665230155, "feature_y": 38.790320909374152, "nearest_x": -75.0873, "nearest_y": 38.7903 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088277006076197, 38.790196714235982 ], [ -75.081575605059157, 38.791050913696694 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33958", "slope": 0.0428, "distance": 8.962703994633554e-06, "feature_x": -75.087198826554257, "feature_y": 38.790791114444978, "nearest_x": -75.0872, "nearest_y": 38.7908 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088419747360106, 38.79062987698655 ], [ -75.081669119737199, 38.791521379560251 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33959", "slope": 0.0754, "distance": 1.9821736311714812e-05, "feature_x": -75.087719300654172, "feature_y": 38.791177362923776, "nearest_x": -75.087722, "nearest_y": 38.791197 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088561991355832, 38.791061525229338 ], [ -75.081768105961402, 38.791995424249237 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33960", "slope": 0.0363, "distance": 2.4023828735728937e-05, "feature_x": -75.087613586977071, "feature_y": 38.791648219848156, "nearest_x": -75.087617, "nearest_y": 38.791672 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088703768888735, 38.791491752560823 ], [ -75.081873371228738, 38.792472078671388 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33961", "slope": 0.0358, "distance": 7.1633855443809056e-06, "feature_x": -75.087698937117295, "feature_y": 38.792092915907055, "nearest_x": -75.0877, "nearest_y": 38.7921 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088845203043078, 38.791920932529436 ], [ -75.081985709452653, 38.792950116813728 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33962", "slope": 0.0387, "distance": 2.6056358150612238e-05, "feature_x": -75.087840965551678, "feature_y": 38.79252925787447, "nearest_x": -75.087845, "nearest_y": 38.792555 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.088994595277967, 38.792348454641413 ], [ -75.082105380641053, 38.793428170473277 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33963", "slope": 0.0375, "distance": 2.0568782691318516e-05, "feature_x": -75.087896684797172, "feature_y": 38.792979700141586, "nearest_x": -75.0879, "nearest_y": 38.793 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089181898576925, 38.792769809792908 ], [ -75.082231658401383, 38.7939048647984 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33964", "slope": 0.0365, "distance": 2.7974769731565945e-05, "feature_x": -75.088075322535076, "feature_y": 38.79341041904528, "nearest_x": -75.08808, "nearest_y": 38.793438 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089369131561554, 38.793191001465217 ], [ -75.082363431104312, 38.794379100952497 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33965", "slope": 0.0372, "distance": 2.7568355970845676e-05, "feature_x": -75.088196236318609, "feature_y": 38.793850846333754, "nearest_x": -75.088201, "nearest_y": 38.793878 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089556383311418, 38.793612230050385 ], [ -75.082499668670621, 38.794850219053977 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33966", "slope": 0.0376, "distance": 2.7760465972540754e-05, "feature_x": -75.088305061487034, "feature_y": 38.794293682339763, "nearest_x": -75.08831, "nearest_y": 38.794321 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.089743701838415, 38.794033603548939 ], [ -75.082639426722878, 38.795317921259041 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33967", "slope": 0.0399, "distance": 2.676791740467112e-05, "feature_x": -75.088425114568523, "feature_y": 38.794734681680119, "nearest_x": -75.08843, "nearest_y": 38.794761 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.08993109051994, 38.794455129552674 ], [ -75.082781854008246, 38.79578223193738 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33968", "slope": 0.0276, "distance": 3.2217799030756988e-06, "feature_x": -75.088400601486526, "feature_y": 38.795203165135021, "nearest_x": -75.0884, "nearest_y": 38.7952 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090118502954027, 38.794876703677481 ], [ -75.08292620474306, 38.796243492286379 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33969", "slope": 0.0444, "distance": 9.6438020193157829e-06, "feature_x": -75.088701837798411, "feature_y": 38.795609467070001, "nearest_x": -75.0887, "nearest_y": 38.7956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090305834534902, 38.795298090620797 ], [ -75.083071857894623, 38.796702388964199 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33969", "slope": 0.0393, "distance": 9.6438020193157829e-06, "feature_x": -75.088701837798411, "feature_y": 38.795609467070001, "nearest_x": -75.0887, "nearest_y": 38.7956 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090305834534902, 38.795298090620797 ], [ -75.083071857894623, 38.796702388964199 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33970", "slope": 0.0353, "distance": 1.0188281371857484e-05, "feature_x": -75.088867979774292, "feature_y": 38.796040994076797, "nearest_x": -75.088866, "nearest_y": 38.796031 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09049299488278, 38.795719087091548 ], [ -75.083218518979507, 38.797160122682577 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33971", "slope": 0.0321, "distance": 3.6048715260493231e-07, "feature_x": -75.0888999285648, "feature_y": 38.796499646661637, "nearest_x": -75.0889, "nearest_y": 38.7965 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090680014926434, 38.796139762673846 ], [ -75.083366715837002, 38.797618308488765 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33972", "slope": 0.0174, "distance": 7.5496338429870029e-06, "feature_x": -75.089112527198154, "feature_y": 38.796922393553743, "nearest_x": -75.089111, "nearest_y": 38.796915 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.090874099607404, 38.796558526565491 ], [ -75.083517411453855, 38.798078109835465 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33973", "slope": 0.0142, "distance": 2.8118602209661692e-05, "feature_x": -75.089194184169742, "feature_y": 38.797372489421882, "nearest_x": -75.0892, "nearest_y": 38.7974 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091073800946262, 38.796975132009557 ], [ -75.08367140497522, 38.798540023824096 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33974", "slope": 0.0363, "distance": 3.4143944194218055e-06, "feature_x": -75.089399276491321, "feature_y": 38.797796663141533, "nearest_x": -75.0894, "nearest_y": 38.7978 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091272874863876, 38.79739042335504 ], [ -75.083829443935102, 38.79900433263014 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33975", "slope": 0.0229, "distance": 9.9176137932598046e-06, "feature_x": -75.089602157757369, "feature_y": 38.798220680038561, "nearest_x": -75.0896, "nearest_y": 38.798211 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091471160249, 38.797804064560623 ], [ -75.083992250156243, 38.799471172933501 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33976", "slope": 0.0356, "distance": 1.032992788104306e-05, "feature_x": -75.089769312854557, "feature_y": 38.798652067676684, "nearest_x": -75.089767, "nearest_y": 38.798642 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091668516448578, 38.79821576227841 ], [ -75.084160532959189, 38.799940576688449 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33977", "slope": 0.0232, "distance": 9.2046904137331595e-06, "feature_x": -75.090067125714256, "feature_y": 38.799051955873182, "nearest_x": -75.090065, "nearest_y": 38.799043 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.091864822806514, 38.798625264888905 ], [ -75.084334999143948, 38.800412500282356 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33978", "slope": 0.0201, "distance": 7.8026621331351344e-06, "feature_x": -75.090183862703711, "feature_y": 38.799493577062179, "nearest_x": -75.090182, "nearest_y": 38.799486 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092059978847928, 38.799032362882677 ], [ -75.084516360440134, 38.800886844965341 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33979", "slope": 0.0421, "distance": 5.6131119154154195e-06, "feature_x": -75.090355388107298, "feature_y": 38.799921438766731, "nearest_x": -75.090354, "nearest_y": 38.799916 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092253905046249, 38.799436890457677 ], [ -75.084705338926966, 38.801363470554925 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33980", "slope": 0.0443, "distance": 2.369653967425725e-06, "feature_x": -75.090531608239957, "feature_y": 38.800347290262884, "nearest_x": -75.090531, "nearest_y": 38.800345 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092446544167899, 38.799838728321568 ], [ -75.084902670674751, 38.801842203682128 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33981", "slope": 0.0076, "distance": 3.6531062638490855e-06, "feature_x": -75.090641975644672, "feature_y": 38.800792520412315, "nearest_x": -75.090641, "nearest_y": 38.800789 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.092728705696715, 38.80021420546516 ], [ -75.085107992561603, 38.802326204719542 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33982", "slope": 0.0241, "distance": 3.7694234783402545e-06, "feature_x": -75.090868052445288, "feature_y": 38.801210619518237, "nearest_x": -75.090867, "nearest_y": 38.801207 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093058398430529, 38.800573733844665 ], [ -75.085321165926118, 38.802823484600182 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33983", "slope": 0.0356, "distance": 1.2032591141142692e-05, "feature_x": -75.091030540722102, "feature_y": 38.801651499849413, "nearest_x": -75.091027, "nearest_y": 38.80164 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093382634180159, 38.800927306949944 ], [ -75.085546609011459, 38.803339963542228 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33984", "slope": 0.0364, "distance": 7.2367546052191591e-06, "feature_x": -75.091197732012986, "feature_y": 38.802093127820427, "nearest_x": -75.0912, "nearest_y": 38.8021 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09369572967303, 38.801268727614513 ], [ -75.085792104443939, 38.803877116873863 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33985", "slope": 0.0081, "distance": 2.4267776339233479e-05, "feature_x": -75.09144219208828, "feature_y": 38.802506843262861, "nearest_x": -75.091434, "nearest_y": 38.802484 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.093992434626713, 38.801592271113499 ], [ -75.086065896512906, 38.804434899173572 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33986", "slope": 0.0066, "distance": 1.2022096892002994e-05, "feature_x": -75.0914955809248, "feature_y": 38.802988819544368, "nearest_x": -75.0915, "nearest_y": 38.803 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.09426817591158, 38.801892951348698 ], [ -75.086377016586127, 38.805011932149348 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33987", "slope": 0.0523, "distance": 1.8357902574427287e-05, "feature_x": -75.091875417824085, "feature_y": 38.803334792512402, "nearest_x": -75.091868, "nearest_y": 38.803318 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094519374831535, 38.802166866743292 ], [ -75.086735408262925, 38.805605309621065 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33988", "slope": 0.0225, "distance": 5.9539350841125161e-06, "feature_x": -75.092231336070185, "feature_y": 38.803668675263303, "nearest_x": -75.092234, "nearest_y": 38.803674 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094743876437391, 38.802411668280804 ], [ -75.087151641670062, 38.806210012076541 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33989", "slope": 0.0276, "distance": 1.7376870399767527e-05, "feature_x": -75.092711355531037, "feature_y": 38.803909925890366, "nearest_x": -75.09272, "nearest_y": 38.803925 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.094943818222788, 38.802629687460133 ], [ -75.087638709990543, 38.806818908776343 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33990", "slope": 0.0202, "distance": 1.1991967931250991e-05, "feature_x": -75.092793370155206, "feature_y": 38.804390007380078, "nearest_x": -75.0928, "nearest_y": 38.8044 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095133998516317, 38.802837061018863 ], [ -75.088217418422403, 38.807426032966461 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33991", "slope": 0.0357, "distance": 3.3652372785235048e-06, "feature_x": -75.093689058346669, "feature_y": 38.804314662335621, "nearest_x": -75.093687, "nearest_y": 38.804312 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095327430331281, 38.803047978492813 ], [ -75.08889359490324, 38.808022206238739 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33992", "slope": 0.0169, "distance": 4.8812543479784127e-06, "feature_x": -75.093603285227417, "feature_y": 38.805003610252733, "nearest_x": -75.0936, "nearest_y": 38.805 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095520749837064, 38.803258771932967 ], [ -75.089655040910557, 38.80859640041178 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33993", "slope": 0.0163, "distance": 5.337489161274975e-06, "feature_x": -75.094103937165244, "feature_y": 38.805203603820246, "nearest_x": -75.0941, "nearest_y": 38.8052 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095727072397011, 38.803430332348682 ], [ -75.090498210519357, 38.809142851807884 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33994", "slope": 0.0117, "distance": 5.5823413041664907e-05, "feature_x": -75.094454918575551, "feature_y": 38.805567077080724, "nearest_x": -75.0945, "nearest_y": 38.8056 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.095933830970097, 38.803541999146084 ], [ -75.091451174628702, 38.809680110151859 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33995", "slope": 0.0138, "distance": 9.5810897441709945e-06, "feature_x": -75.095190537239617, "feature_y": 38.805288507899434, "nearest_x": -75.095199, "nearest_y": 38.805293 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096076653728389, 38.803619134875866 ], [ -75.092584320000526, 38.8101984139983 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33996", "slope": 0.0092, "distance": 0.00028781150071941343, "feature_x": -75.09537310107973, "feature_y": 38.806090836447517, "nearest_x": -75.0951, "nearest_y": 38.806 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096177412056178, 38.803672663983711 ], [ -75.093894045306627, 38.81053763880098 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33997", "slope": 0.0811, "distance": 0.00018732900126724902, "feature_x": -75.096014813152536, "feature_y": 38.805371751349703, "nearest_x": -75.0962, "nearest_y": 38.8054 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096263114130338, 38.80374398949823 ], [ -75.095217653236219, 38.810597612773059 ] ] } }, +{ "type": "Feature", "properties": { "id": "region_29_33998", "slope": 0.0677, "distance": 3.0504915044627863e-05, "feature_x": -75.096430504015643, "feature_y": 38.805500234247056, "nearest_x": -75.0964, "nearest_y": 38.8055 }, "geometry": { "type": "LineString", "coordinates": [ [ -75.096443428245379, 38.803817220926369 ], [ -75.096392057713246, 38.810506771608587 ] ] } } ] } From 3dc0318051a39099931c116f267d9e176e553c63 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 28 May 2024 11:43:52 -0700 Subject: [PATCH 04/99] #256 #257 address comments and edit for the coastseg manuscript --- paper/paper.bib | 7 +++++++ paper/paper.md | 16 ++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 7277439d..bff6b72c 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -19,6 +19,13 @@ @article{mclean202350 publisher={Elsevier} } +@misc{CoastSeg, + title={{CoastSat v2.4}}, + author={Fitzpatrick, S. and Buscombe,D. and Lundine, M. and Warrick,J. and Vos, K.}, + year={2024}, + publisher={GitHub}, + howpublished = {\url{https://github.com/kvos/CoastSat/releases/tag/v1.2.5}} + } @article{vos2023benchmarking, title={Benchmarking satellite-derived shoreline mapping algorithms}, diff --git a/paper/paper.md b/paper/paper.md index 045baa31..1f422101 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -40,7 +40,7 @@ bibliography: paper.bib # Summary -`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection and coastal landcover mapping workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository. +`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection and coastal landcover mapping workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. @@ -48,7 +48,7 @@ So-called `instantaneous' SDS workflows, where shorelines are extracted from eac The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original CoastSat codes, addresses the lack of pip or conda installability of CoastSat, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@alley2017pytmd] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. -The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. +The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring 2 to 5 adjustments to achieve the best quality shorelines. `CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction and coastal landcover mapping using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. @@ -58,7 +58,7 @@ The third and final aim of `CoastSeg` is to implement a method to carry out SDS Coastal scientists and resource managers now have access to extensive collections of satellite data spanning more than four decades. However, it's only in recent years that advancements in algorithms, machine learning, and deep learning have enabled the automation of processing this satellite imagery to accurately identify and map shorelines from imagery, a process known as Satellite-Derived Shorelines, or SDS. SDS workflows [@garcia2015evaluating; @almonacid2016evaluation] are gaining rapidly in popularity, and in particular since the publication of the open-source implementation of the `CoastSat` workflow [@coastsat] for instantaneous SDS in 2018 [@vos2019coastsat]. Existing open-source software for SDS often require the user to navigate between platforms (non-reproducible elements), develop custom code, and/or engage in substantial manual effort. -We built CoastSeg with the aim of enhancing the CoastSat workflow. Our design streamlines the entire shoreline extraction process, thus facilitating a more efficient experimental approach to determine the optimal combination of settings to extract the greatest number of accurate shorelines. CoastSeg achieves these improvements through several key advancements: it ensures reproducible sessions for consistent comparison and analysis; introduces additional filtering mechanisms to refine results; and provides an interactive user webmap that allows the users to users to view the quality of the extracted shorelines. Further, `CoastSeg` has been designed specifically to host alternative SDS workflows, recognizing that it is a nascent field of coastal science, and the optimal methodologies for all coastal environments and sources of imagery are yet to be established. Therefore `CoastSeg` provides a means with which to extract shorelines using multiple methods and adopt the one that most suits their needs, or implement a new methods. +We built CoastSeg with the aim of enhancing the CoastSat workflow. Our design streamlines the entire shoreline extraction process, thus facilitating a more efficient experimental approach to determine the optimal combination of settings to extract the greatest number of accurate shorelines. CoastSeg achieves these improvements through several key advancements: it ensures reproducible sessions for consistent comparison and analysis; introduces additional filtering mechanisms to refine results; and provides an interactive user webmap that allows the users to view the quality of the extracted shorelines. Further, `CoastSeg` has been designed specifically to host alternative SDS workflows, recognizing that it is a nascent field of coastal science, and the optimal methodologies for all coastal environments and sources of imagery are yet to be established. Therefore `CoastSeg` provides a means with which to extract shorelines using multiple methods and adopt the one that most suits their needs, or implement new methods. We summarize the needs met by the `CoastSeg` project as follows: @@ -86,7 +86,7 @@ At a high level, `CoastSeg` is designed to be an accessible and extendable hub f `CoastSeg` is installable as a package into a `conda` environment. `CoastSeg` notebooks are accessed from GitHub. We also created a pip package for the `CoastSat` workflow we named `CoastSat-package` in order to a) improve the `CoastSat` method's software implementation without affecting the parent repository, and b) to install as a package into a `conda` environment, rather than duplicate code from CoastSat. -`CoastSeg` is built with a object-oriented architecture, where elements required by the `CoastSat` workflow such as Regions of Interest, reference shorelines, and transects are represented as distinct objects on the map. Each class stores data specific to that feature type as well as encompassing methods for styling the feature on the map, downloading default features, and executing various post-processing functions. +`CoastSeg` is built with an object-oriented architecture, where elements required by the `CoastSat` workflow such as regions of interest, reference shorelines, and transects are represented as distinct objects on the map. Each class stores data specific to that feature type as well as encompassing methods for styling the feature on the map, downloading default features, and executing various post-processing functions. ## Sessions @@ -96,11 +96,11 @@ SDS workflows require manipulating various settings in order to extract optimal ### Accessibility -`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276] as well as transects, themselves providing beachface slope metadata [@buscombe_2023_8187949] available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. +`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. ### Performance -`CoastSeg` improves upon the Google Earth Engine-based image retrieval process adopted by `CoastSat` by offering a more reliable and efficient download mechanism. Like `CoastSat`, we limit image sources to only the Landsat and Sentinel missions, which are publicly available to all. `CoastSeg` supports downloading multiple regions of interest in a single session, and ensures downloads persist even over an unstable internet connection. This is important because SDS users typically download all available imagery from an ROI, which may amount to several hundred to thousand individual downloaded scenes. Should a download error occur, `CoastSeg` briefly pauses before reconnecting to Google Earth Engine, ensuring the process doesn't halt completely. In cases where image downloading fails repeatedly, the filename is logged to a report file located within the downloaded data folder. This report file tracks the status of all requested images from Google Earth Engine. `CoastSeg`'s reliable image retrieval process enhances coastal monitoring by facilitating easier data management and collaboration. +`CoastSeg` improves upon the Google Earth Engine-based image retrieval process adopted by `CoastSat` by offering a more reliable and efficient download mechanism. Like `CoastSat`, we limit image sources to only the Landsat and Sentinel missions, which are publicly available to all. `CoastSeg` supports downloading multiple regions of interest in a single session, and ensures downloads persist even over an unstable internet connection. This is important because SDS users typically download all available imagery from an ROI, which may amount to several hundred to thousand individual downloaded scenes. Should a download error occur, `CoastSeg` briefly pauses before reconnecting to Google Earth Engine, ensuring the process does not halt completely. In cases where image downloading fails repeatedly, the filename is logged to a report file located within the downloaded data folder. This report file tracks the status of all requested images from Google Earth Engine. `CoastSeg`'s reliable image retrieval process enhances coastal monitoring by facilitating easier data management and collaboration. We added helpful workflow components such as image filtering options; for example, users can now filter their imagery based on image size and the proportion of no data pixels in an image. Additionally, the user can decide to turn off cloud masking, which is necessary when the cloud masking process fails and obscures non-cloudy regions such as bright pixels of sand beaches. Finally, we replaced non-cross-platform components of the original workflow, for example the pickle format was replaced with JSON or geoJSON formats which are both human-readable and compatible with GIS and webGIS. @@ -112,7 +112,7 @@ The CoastSat methodology for applying tide correction to shoreline positions inv In contrast, CoastSeg introduces a significant improvement to this process by leveraging the pyTMD API [@alley2017pytmd] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES14 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, CoastSeg calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. -![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow.](figs/coastseg_figure_2.png){#sylt width="100%"} +![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow. Each session has distinct settings that influence the quality of the extracted shoreline. In this example, the reference shoreline buffer size varies between sessions in both the CoastSat and Zoo workflows.](figs/coastseg_figure_2.png){#sylt width="100%"} @@ -126,7 +126,7 @@ As we noted above, we have developed a notebook that carries out an alternative We intend `CoastSeg` to be a collaborative research project and encourage contributions from the SDS community. As well as implementing alternative SDS waterline detection workflows, other improvements that could continue to be made include more (or more refined) outlier detection methods, image filtering procedures, and other basic image pre- or post-processing routines, especially image restoration on degraded imagery [@vitousek2023future]. Such additions would all be possible without major changes to the existing `CoastSeg` toolkit. -Integration of new models for the deep-learning workflow are planned, based on non-dimensionalized water index (NDWI) and modified non-dimensionalized water index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs [@planet]. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. +Integration of new models for the deep-learning workflow are planned, based on normalized water index (NDWI) and modified non-dimensionalized water index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs [@planet]. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. It would be also be possible to incorporate automated satellite image subpixel co-registration in `CoastSeg` using the AROSICS package [@scheffler2017arosics]. This would co-register all available imagery to the nearest-in-time LandSat image. Further, future work could include accounting for the contributions of runup and setup to total water level [@vitousek2023model; @vos2023benchmarking]. In practice, this would merely add/subtract a height from the instantaneous predicted tide, then apply horizontal correction. However, the specific methods used to estimate runup or setup from the prevailing wave field would require integration with observed or hindcasted databases of wave conditions. From 902091956aa80594f370cc0a2a6a45478ff8f6d1 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick <61564689+2320sharon@users.noreply.github.com> Date: Wed, 29 May 2024 12:47:19 -0700 Subject: [PATCH 05/99] Update README.md with updated transects zenodo link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f2402748..fbb0d4c8 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ CoastSeg comes with a collection of pre-processing script utilities for common i # Data Sources -The CoastSeg transect and slope database is [available](https://zenodo.org/records/8187949) +The CoastSeg transect and slope database is [available]([https://zenodo.org/records/8187949](https://zenodo.org/records/11390980)) * Buscombe, D., & Fitzpatrick, S. (2023). CoastSeg: Beach transects and beachface slope database v1.0 (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8187949 From 17762d622b98a141e58d6f1b2b70ec2a891ece31 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 17:32:07 -0700 Subject: [PATCH 06/99] close issue In SDS_zoo_classifier.ipynb the instructions and default settings are inconsistent #253 --- SDS_zoo_classifier.ipynb | 81 ++++++++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 16 deletions(-) diff --git a/SDS_zoo_classifier.ipynb b/SDS_zoo_classifier.ipynb index 2d3e48f7..c313300d 100644 --- a/SDS_zoo_classifier.ipynb +++ b/SDS_zoo_classifier.ipynb @@ -17,24 +17,45 @@ "id": "9300e21d-fb60-463a-b3af-19626827ffcf", "metadata": {}, "source": [ + "### Available Image Types\n", + "\n", + "1. **Red Green Blue (RGB)**\n", + " - These files are generated by default.\n", + "\n", + "2. **Normalized Difference Water Index (NDWI)**\n", + " - `NDWI = (Green - NIR) / (Green + NIR)`\n", + " - Uses the green and NIR bands to enhance the appearance of open water features.\n", + " - [Read more here](https://eos.com/make-an-analysis/ndwi/)\n", + "\n", + "3. **Modified Normalized Difference Water Index (MNDWI)**\n", + " - `MNDWI = (Green - SWIR) / (Green + SWIR)`\n", + " - Uses green and SWIR bands to enhance open water features and diminish built-up area features that often correlate with open water in other indices.\n", + " - Reduces vegetation effects better than NDWI and is more suitable for enhancing and extracting water information in regions with a background dominated by built-up land areas.\n", + " - [Read more here](https://www.tandfonline.com/doi/full/10.1080/01431160600589179)\n", + "\n", + "\n", "## How to Run Image Segmentation Models on the Downloaded Imagery\n", - "---\n", - "1. Select whether your imagery is type **RGB**,**NDWI**,**MNDWI** or **RGB+MNDWI+NDWI**(which is 5 band imagery).\n", - " - If you choose a **NDWI**, **MNDWI** or **RGB+MNDWI+NDWI** the **RGB** will automatically be converted to these the selected type.\n", - "2. Select the model you want to use.\n", - "3. Select **Ensemble** or **Best** (Ensemble is recommended because it uses multiple models to create more accurate predictions).\n", - "- **Best:** Uses only the best model available on the images.\n", - "
- Using only the best model typically means each prediction takes less time because only a single model is used to make the prediction. However the resulting segmentation may not be as accurate as with the ensemble model.\n", - "
\n", - "
\n", - "- **Ensemble:** Uses all the models available on the images.\n", - "
- Ensemble modeling uses multiple models to create more accurate predictions, this means it takes longer to make a single predicition but the resulting segmentation will generally be more accurate.\n", - "4. Select a directory of imagery to run the model.\n", - " - Select an ROI directory under the `data` directory\n", - " - Always select a directory with 'RGB' as the name.\n", + "\n", + "1. **Select Imagery Type**: Choose the type of imagery you have: **RGB**, **NDWI**, or **MNDWI**.\n", + " - If you select **NDWI** or **MNDWI**, the **RGB** directory will automatically be converted to the selected type and saved to a new folder named after the selected type. For example, if you choose **NDWI**, a new directory called **NDWI** will appear next to the **RGB** directory.\n", + "\n", + "\n", + "\n", + "2. **Choose a Model**: Select the image segmentation model you want to use.\n", + "\n", + "3. **Select Performance Mode**: Choose between **Ensemble** or **Best** (Best is recommended for faster performance).\n", + " - **Best**: Uses only the best model available on the images. This option is faster since it involves a single model making the prediction.\n", + " - **Ensemble**: Utilizes all available models to create more accurate predictions. Although it takes longer to make a single prediction, the resulting segmentation is generally more accurate.\n", + "\n", + "\n", + "4. **Select Imagery Directory**: Choose the directory of imagery to run the model on.\n", + " - Select an ROI (Region of Interest) directory under the `data` directory.\n", + " - Always select a directory named 'RGB'.\n", + "\n", + "\n", "## Need More Help?\n", - "Check out the CoastSeg Wiki\n", - "https://github.com/Doodleverse/CoastSeg/wiki" + "\n", + "Check out the CoastSeg website: [CoastSeg Models](https://satelliteshorelines.github.io/CoastSeg/models/)" ] }, { @@ -49,6 +70,34 @@ "models_ui = UI_Models()\n", "models_ui.create_dashboard()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "dc3ca973", + "metadata": {}, + "outputs": [], + "source": [ + "models_ui.model_dict" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c204a92c", + "metadata": {}, + "outputs": [], + "source": [ + "models_ui.weights_directory" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "eb41b9ae", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { From 7f0e302bdde70e610eddaaa1d0515752ddd6d505 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 17:42:29 -0700 Subject: [PATCH 07/99] fix the test_coastseg_map and test_import test so that it won't attempt to import models_UI if running on MAc OS --- tests/test_coastseg_map.py | 8 +++++--- tests/test_imports.py | 5 +++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/test_coastseg_map.py b/tests/test_coastseg_map.py index 29a42dc5..01e7b6c8 100644 --- a/tests/test_coastseg_map.py +++ b/tests/test_coastseg_map.py @@ -12,8 +12,7 @@ import pytest import geopandas as gpd from ipyleaflet import GeoJSON - -# def test_set_roi_settings(): +import platform def test_imports(): @@ -23,7 +22,10 @@ def test_imports(): from coastseg import extracted_shoreline from coastseg import factory from coastseg import map_UI - from coastseg import models_UI + + # if mac os then don't run this test because it will always fail due to tensorflow not being installed + if platform.system() != 'Darwin': # 'Darwin' is the name for the macOS operating system + from coastseg import models_UI def test_init_coastseg_map_no_map(): coastsegmap=coastseg_map.CoastSeg_Map(create_map=False) diff --git a/tests/test_imports.py b/tests/test_imports.py index 507242e2..e0a45755 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -1,5 +1,5 @@ import os - +import platform from coastseg.file_utilities import load_package_resource import importlib @@ -111,7 +111,8 @@ def test_import_map_UI(): def test_import_models_UI(): try: - from coastseg import models_UI + if platform.system() != 'Darwin': + from coastseg import models_UI except ImportError: assert False, "Failed to import models_UI" From afa7a239044e94b31de100f586ec28c6435a12a5 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 18:59:10 -0700 Subject: [PATCH 08/99] fix test_imports.py to not import zoo_model if Mac OS is used --- tests/test_imports.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/test_imports.py b/tests/test_imports.py index e0a45755..4f4517e7 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -161,7 +161,8 @@ def test_import_transects(): def test_import_zoo_model(): try: - from coastseg import zoo_model + if platform.system() != 'Darwin': + from coastseg import zoo_model except ImportError: assert False, "Failed to import zoo_model" From fdc5b29da91111d13fd7c4e9c3e46b2db8160ffe Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 22:08:40 -0700 Subject: [PATCH 09/99] #257 add the sayre2019 reference for the reference shorelines used in CoastSeg --- paper/paper.bib | 11 +++++++++++ paper/paper.md | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/paper/paper.bib b/paper/paper.bib index bff6b72c..2030c8e7 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -9,6 +9,17 @@ @article{vos2019coastsat publisher={Elsevier} } +@article{sayre2019global, + author = {Roger Sayre, Suzanne Noble, Sharon Hamann, Rebecca Smith, Dawn Wright, Sean Breyer, Kevin Butler, Keith Van Graafeiland, Charlie Frye, Deniz Karagulle, Dabney Hopkins, Drew Stephens, Kevin Kelly, Zeenatul Basher, Devon Burton, Jill Cress, Karina Atkins, D. Paco Van Sistine, Beverly Friesen, Rebecca Allee, Tom Allen, Peter Aniello, Irawan Asaad, Mark John Costello, Kathy Goodin, Peter Harris, Maria Kavanaugh, Helen Lillis, Eleonora Manca, Frank Muller-Karger, Bjorn Nyberg, Rost Parsons, Justin Saarinen, Jac Steiner and Adam Reed}, + title = {A new 30 meter resolution global shoreline vector and associated global islands database for the development of standardized ecological coastal units}, + journal = {Journal of Operational Oceanography}, + volume = {12}, + number = {sup2}, + pages = {S47--S56}, + year = {2019}, + publisher = {Taylor \& Francis}, + doi = {10.1080/1755876X.2018.1529714} + @article{mclean202350, title={50 Years of Beach--Foredune Change on the Southeastern Coast of Australia: Bengello Beach, Moruya, NSW, 1972--2022}, author={McLean, R. and Thom, B. and Shen, J. and Oliver, T.}, diff --git a/paper/paper.md b/paper/paper.md index 1f422101..dabcfe52 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -96,7 +96,7 @@ SDS workflows require manipulating various settings in order to extract optimal ### Accessibility -`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. +`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines [@sayre2019global] for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. ### Performance From cfbae62627b787802f16c19e45a32cb03e7901ce Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 22:16:56 -0700 Subject: [PATCH 10/99] update paper.bib with new references --- paper/paper.bib | 1 + 1 file changed, 1 insertion(+) diff --git a/paper/paper.bib b/paper/paper.bib index 2030c8e7..33c9b949 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -19,6 +19,7 @@ @article{sayre2019global year = {2019}, publisher = {Taylor \& Francis}, doi = {10.1080/1755876X.2018.1529714} + } @article{mclean202350, title={50 Years of Beach--Foredune Change on the Southeastern Coast of Australia: Bengello Beach, Moruya, NSW, 1972--2022}, From 017b0138e3df89f153cec1ba2b74e5d976cd32d9 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 29 May 2024 22:21:13 -0700 Subject: [PATCH 11/99] update the paper.pdf for coastseg with new reference shoreline reference --- paper/paper.pdf | Bin 436079 -> 438122 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index dc57644d4a7c50c19fdd4e7f04acb04849afee90..94ea2e335d05497ae823d18ae615fc9d8ba588c0 100644 GIT binary patch delta 59679 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 Cz^EJm delta 57850 zcmZU(LvSt()3v)}+qP{dJI0P}+jertwr$(CZQHh;|9QVNJd;&jU8{Q9)vK?I9qii~ z?7A0dAof%OByb8)c4lUdR0Bb9RKPXgcnt}c=- zRbklq?c-I(ujhyJ>sdzXx`-A0$MOyI?S}vN`Z8Bwe0YezM>lh`c8*x>XHjYrsF6+R z)7_pPy4Gk=QfhodG1!}~HtF%WpA5;H;pceQw`}koU@&B5bVG$@FG^G`fGZp)B$oy& zL<8}cN!k;so9_)Y5*gKS0U!l6mW0lD{_q;5@n*&6U66F~{W!1rscN-0d0NO+BC!5) zUv2Z_8-P$1#dqqc`Uy-BO4cq@ahO~`v8n2`&c8a<44V=J`)Y=_-^qeg`8!GW9*9OI zag0fy6->s)LZ7sAbxN-4gF3#xqtqWn-pJEBYmqb_%YGOIwYU?k3fNtKEzT7&lltIc zt0GD6W zrs9=A~ZVIl%<8R)Ock>Rl&C^OO z;Q4xtquCdr>Pnunmv`?TssWeh2DRk#*Ge7TSE%T|jy>4}UHy__77GVGU0kfCi4_rbMm!^2P`364L1Oe-n-&f|ujb`kp+$N}&=LgktP?N&7=87u|7)iMmdj zsKoqR@TqVY4fwk-*~5^3$w*q z@Svg8ryJ1EXYRu<&X%y?~Ux+#!YWTkZP(|0i8-2$K*@-@tks1(0 z@~YdRH4}q94PCQuRu=2eVx~*t)5p!JyM2@RGtrFlk+0o-5&?opk-8JJ2bZ<ciU1am%or8o8Se}XW2#q+x{egyCx|)^}v%3SqTkCpg$+rqs@eg?G^Fkk)-)yrz9YrYGpV9IB^!b%qpErv(D~NH_TRbXVvkLGmdZZIXMjYoM6) z(SnV%{$_ts>KV#v{ZBmtLm0sH^nW6d<@VpCY}jqgGF@ehnYru24#0O&!lzXSA8dLP zlT}4`q?q{{Q8&Rds5E?vczhSf7BS@CaMO9%Ms9kx8NDkYnS-C46T>9z27&afOnVC~ z&@>ErUR__%^2yz`A>~QeIkFjuwanNfZ(us@J6$n5D%YlSkHQN__@9x3qwXX z<%?{DPaJ*eaD>-6vzOMCbS4+hEZ9ih+X>L!wy^SLjbe3YF2IuNiyIs<)ggoc&YwnU zm8w#3vRn`QPrN?`4zsoc=QBtA+_u6)p!f2zD8Z#x|3Y<{j56?gsxA9az<--yrMO2)Q)u)4hjs zaigJ1aC$@Oe9w*5&bl!QNnKK2r z4*Px*LD9UwNP3tZOpCl9x+-a@ml|U^)wTLeeInxinP7N=G6ou^a1B;EyJ9MEwf0%Y z3lxO$LfN|g15R0|QbzZY^zKysQH`?#E7Uil*O5Ik4?!(B_0aWOZ5xOf#r@Q~>vh;} z^0X6Uc}e%Vs{6^~U!)PW$!yQF3)$S~m?Hx7zJ_x$d3nv1#%k9cni_1c;F-NA*t5mRZvo2w~cU4+&9@b z545X~urPJGo?E5<%yd2xkdh6;WJ5^>D&~UV3GjbE+ufZA>_46gH|zgsT>NlS;`!M= zp7-5`_IiILOB_kfiVMvxOM1x&x1uweg!W6z1Y8&jdbCf5t+T5IgfTW+bX~~^=4;z% z0G@ifQ2urEkYq@nUB$43PXHy8Vlr6)|1|gNeSW&_>>hGjkPMUL594VqO5|tdYmwzT z*t=%Ajg2_1b4}AEbt`4k$7C||3qwslXGP@}b6qN1E(4i(_2f*qdA08T%>zOkjc!wT z;ZLeD;elR|`+YX5$Bu6eulVDfdJ@yv3lO!KXq}_DqOc?K?2gPmN#g4!MRf6DuP-ro zllF~Uciy$(d2aJ!ue)QO;p@CnRQ}dy4-_`hjB$+kL??UlzB=|NLV9dyWa)$w?1LIr=LM)vzF%+jD6m{*+?`Z6kN)?uFqa2;IOP;5FNt*@WUBXd{EDN%uP$n05?C^JUQmGsG& zQF}vTOHa%=`H=fp^lnAFNfmjxLatbgsD9S}j{}Mzwl_rax0JQLk+n4kC zs*#FvZeYy4#y4C=>K)OATU@S&)(qnb0=HiurX;H9=+Lh7AINZD3xz|bL{{I>{C}2Q z>#rG~y+c$-rN1xx4M(P^8i{>6^BbqUdZJaZUW}4hs-^R@FWuztf>oWA(TY+q=W9>x z^2f9^d+xm`2bR4kk52ed0gkVHsFp(^+F3pJbR)#jtdU?8(z-?B(@&*Q-gh$gO?zTSmN2}excfve>SuXvXikG0 zI4~-f{uU3*Lc65uH|HWOblO5k>Oq;T@-NSoqSIQX6qkuD2O(X00t!UPG=lb)k^?&W zI8*R6DXjA{pch&P{mL#KTk9SO)9+m9oDFaD6NB&Sb=^}jU)87i@+H#WnTenWQpLA3 z%u?7r`l&URS9G9m9FSHS#ubL#JcqXTcF$c*;o&(xQ3s5EkY8@^5yfVUH_#a;?Q^ znrsvUxWwx-rMgDB5C8I3>+iOp+zi7kcH#nu+Yn=Z(Y60LIF_I9RR_%vnpote+O} zQ^0HT6_4qCe-7+zJ+;bx^>JkW71x&hsWo?mDX%uzV4s%iobPF@FUUa+JQ3-JmI<$z zh$NOf8eO|%xDK~q5c43B(;xRg*64zNh=c|<& zyKJ_&BYc6i1{}t10ef|#EPY6$8&=PxK|(51U#C&%k+dMkK>9h%tL=uZiRN*?6gG`f z=$SKZ2}gRCh$h!_t9u?okIifs{Vhx~T6fe*Np6*1wVZfz3Fbi>d{~*`Sb(AUhJ6b> zVLcdJqZDF<@y>&3Q}Xf7Y({PX;1*}DVc>!7@WU3%01`pHt}jxFJ3XXEw&sNJNqJ(D zg-TKl-gtp(^B-oaU{PB_#{gFqcTeg*3doM3zf8%(_O* z)5n9*n}|&lG#>Su9LybAu=OPnQ`unBUpkf&I)%baM}&+B@DJMT7sy$a%Tzn%rer6d zGsD&`08v6l=kP1+PV6ZAb|Sq8HuQK$4>$9wnsw7cVvmAAxi^lq%9~3bZjTwNpazb` z)el+F!B%Xc;yvB_TV+(sMjL8l3FCeX0rz$Gty;sSr}U&Ytb?oS=b8JXIIJl8jCkp$ zE3F-?OLfhpa|s+-9Cq4+LJ9;LpXpteify_Was|*_i*4rSAfTC%9LAY z)vgk2A{g3eY*&2)%aXjRH?|aP1vQ%QtT%QeL0!^~V}zm~z{Yui zTmVS>%g^kFfB$2-E~5Q33aluS;#(oZqkNtAe4pQ*76erJ*WlKSO3a7(aOPWhHbmW$?jb(mCSqQ_m`4ML$tw+rhnH+12 z7fC=spnjfM4Lnz9xW!p1H^!1GfLeqQcV0k>!P^I>pZA!0h3bglkH#yioL~!cBm%v- zwLr?huaxb_OPnARB5HTLPDM{mq0I&~g-| z_R(2$*MNX*-lDx16|WStI@i!5C{k3JKq1VMB|h#WQT;p@*5Br^o6)Oic6uaaEdg zDn@oPlTLC%C*j>y1!-<70WRVwpN=8JWH?A@&s%F)W`auEU({a$)FgUOy8DjMgZ!4w ztff_(gKU{9eEtE%^}WnxRMpK+&{+JB_%ylYPQh2myQ`~UFKkw~%t8N{70S=g{)v0L z205Dgq$cFM0Gsi}(xHzgQ~)$kj?cbJ>9l7Q>QZ$fJ^zc{kf?Af0x&V%Ck$+&U9u4o zoqG20nA%btvu(1`Z88668hwGLwe=76ky6)$%d>TESF#q6p!7C?$-XJ$X zj+~g~KA3tFukb}vv=zX?HbpB@+cFjgZ|=DPw@u>U4Ks~oT2)wa<~)22D-#WySdbVD zFVd7%=0|pu-!d!*WcpgyG%h*BN9#SNzt+c=O?H|=hSzpBytV~2#*1gWu>YB45>$6w zf0BLlc|swTZ^`@|_vTaV;l~w>*%lstaD3A3ktLcNfjM3@B&Tpj%^$^QBe0xMY-ON- zv4PlpUiy>eK%8!Ns0J!W>MjbUp#xP2+pN^h#KF~_DLMNAfRCxP*a#bRcNs-`OmxE~ z^7wQZzx*bhTrG~P@)bK>lwC`6$7bRha30KCq>>N3VMWEk8;l6l8>PS7_^j+7)ve6@ zxek}eT$$Xi*@Yk9xJcoMJlf^Ym3r5TyZc&nd0WkjD}417oR=6jnCbUVhbRxNbgeemFWo*kXu|2j)1~80osR-WBQI=yQa;k;FpnT*`7#!# zR~Ry1nqml@bG8G&+*`om;V{FM#!}13{q8{IGD{V6uk0oP$UeFUl@!v!|2p~H2{vS+ zH^*fI0K^EAK%vj!B{lgbHq#N4-8~xSYb#f>lLI++WC7rc{on{hU7-HSc?XYt63M^9I}b)ln(p1$P}^e3fITyR^BC z5|XS_un5W3O>s^T7`l*carI85@vO0Cj%m-%;~PDJhc7~pyJOm?`>0Rdb;6LZ&D#dj z1>G4lXBTF>BmQ^@||%7O7Lx2M))RJh@-${9W!(gPUXQ~XVS?D};1-^++YZBI9~5}X^UsNb|U ztY3{uX2{M)*f<&QxH{Ji_bKmv9$ji3*^dgg`A5jU&X|Tpc|(8EhszxY9B)|4vGEKR z*)(d!>M-r}m{aFm$({_=?znlD@P#}8S0v`imgnJBRm~FezY=DG9hWOxTr;Rgs+d8= zfu)QM!&*(H834;9av@HRcGUqbTzV9RmyxC|sg~^X)7ENRI`B9YpS0Sj0ohG7S*V=b z<=HV`!z&7m)|U72qz=3To0;>8mnm|4v0sg7uOKW(S?Ro!Cu41i8=dUP667MlgFYGu ze_Si{o0#XSHO#8IBvod#djzXDhqd7~1kOk2-NL#iM?+Icl*)Q90?D_4D~ATfJ5KlQ z13h3~jxiOqcC`L^ngqk3qtIkAXO)YFroDXEjA75ALwkW4XmgyXN;ePj80QsgA1Fpb z#z6cwGt6<~6%UGgjfAYd&PNE)*#EjSMn2IA$M4uzI1@)Ny*gLe_+ddy2>S^8i8{ObJ(Kido&Mr>DoyZD> z$McWg*AXCtpxg19j?cv_eS4VW8R;i+W_uEr6PIpxf&Cc1(Q3aEa^t~}GiI!3OjsU} zYaa+dYON`HuZ~PzhRJf?sC=%0+;i75cQLhON$emL|?G=8O3FvNNkITK+nQ)fK9j6N_k}7s8AK?L@CEEnl zJd+JDUk>UEtN(Kh!QX!m!w&uAfZgJNJ|>XLv>HSu>1R?_D-?$bFJr#w8+uW6>qmN zF8c4Wq)6LZ*$(h~mk^8X;P_RsDD-k+(G zeG!|t(VuQ&2fy)-dCI$ z!$dHL)!>1$`CK>?wi3Od-K5+?$3y?faOcl+?e9mZ_vc40>#JR-Q?MxJ>&u{5JtcH$ zn@DNaxIXef*gC#e_2Zo`)yUKqVJQlU^fcX@!_Wt6A0wHcB;9ksheDc}=lWNrY;Ojr z!lOj(?T<|R2ms^l2bES1!%UceMF7`u3?**vu zqL&wk(?&}N;yqZv>nebPadSz~umhhg@!6E&6(V*!UvyTk+!K!g_t(%0OAWxmK} z4AeK>H#rvWKoEvemSN<=f&hWnJh$S`c1VnJ1vs9}PkeL@ZscazNoZAbCcM`{R$Kaa zTED(TkuD2zn^ZLkj|>j!8mEeI$xf(PHqaQ5^Ckw{Sx=$Ac1`L`Wqk!>Li9#f&)0L; zNm_kCOks}b0n>SDRyR22P404pqa@y=NyuF;Ke1ae!uevLvUh~dFg``rr4$a5F!56U zCkdU3MFv_u6g8dse!b8#dCHR%B$ipHBoEEUAGb$r&pJkEZ@dF675i2`~(gc}s+Do8bSmW#(@Of5kq@V{&_|N>TZ*)1!4aS+t_&qpXJg+k%IA zoKwnk?HUgYCH3jx(AWYeEPyqseJTMEF6C^K`qD>_l1|J2QLU46N^G4qC3;XIW}i|^ zY0Y*iLZ(ZnfKa~=!2lk=etj|vPcff&E4XUW>!+xjPpg_wD>tX8SMwk_X3?`zm;_n~ z+IdC``&I%$;#ZwCT&eB?y?boJ!z)<}`SCrw(=_uTr08#Vqbc6KX79bI;qnJSa_;YL zkT`reAz-wqS|-Zn;!MXNQ?L>I0 zV{$Wg$V&U}3RqF(6MHSJ4ZHxfx>MwAfOled*ZVSQ%IJ6Q{g5=#peI8{Mnju5cuA;w zbFGIO3Gd{2ZrO*{rx#ByIWH;y10Eg_aALSq^p@;@e88Ri)# zLKF1^Kon~53bjVZS33^HEiN!<94yLQZ#sykgvqH1gg$*AD(q6wl1>2DilF^WT)8Q^ zrm|EnY`CH1Aj zybL~Q1EI(Jr1`j9aUAE433oJv?Dx(5WK>rpL9_bjWx+q5ktC71DVt#Il&MykNqlhu z9Os>{-PR%CbTBYo62z#*fMAg+JaUReP6zB!N{)4<*KGc}MFa~|efbO`SJ(KpV4=PL zZsihjYEY#t?wO^dPu0$#L+W<_T%`j><>IrmM-fKO7x6ye=?@F6f7BT|X3o2tFl5v( z9~x~Eq^RY=5-$V!l~?GLB4eWA_M_V}w8?Ft=Wk_|qnuWQvRWB%fV$g)RtKiXGY+&5 zQW5lPV1j2>p6r7CaKwTUvl3r!%WjEgP@La!NahuC&~b~#eWM7ly*pv^{m>4uIgbkp z4op2R?`a;go_jkri|m@lxsJ{;L?`?RI7yjS;mb{C)=q+gOA~O2lQ<%6t|`qdfhmU{ z^kIg2m+l&wn;2Akz=&T2ji3lZJLILe1)F==6nDj_n;H{s*VpkwzQv6)D1!&{+y*JVf=tS1mfpgTwJR%AOOJtW8)XiE zH6IJ9B)q8tVD6KcJq5aX7&c zue21Ydau=_!?wbh>tfNqh-CRnn|v8IA1lfDQrSox_1B2u&m1lFK|8O6Hs$C;idbzD zRf$-IZb%wI^>uz&*1J_q4Ez34Ifm3*24oJOV{8|bwI?uYG?7LZl?=LHK+&?=IJ~6Z@6(HV}pjoU$lRXL0M_;F{bnx2wS|m15ft7e@7^TMQMj6ki886 zP9}6pYGIi}KxQz1a8c|g7zhCAljz?1a%(NZFe_0V!fM~(X@5IBB}iP1d0j%KDK%lz z&v+8#*M_+vj30~_F2jQSk{rt7m=0Mn;0@w=w524POb!#047KeGf_+b^j@8FcoIot* zRl1ktKbAj(c2)jj!f!!)!FB%8V?>c3#JE%jq4u({FrTzg>UxQPo;8KhV zbhAJ=v|~kX2&}DFqOXMd6Zk9SykwyF1`yCsf~#B%O@IXj6bPGtfMbyFW${SZo{{bW zi^=&nxPckSlPHDct=``c(WLgq$M%4H}J57-Kfr04~l+QUP1k|+y#EAc^xVcooE ztTkLE&EzW)BSz|;#3O(ao;FWGj5F$hhzo8#zim38l)-{PWu5L54R)NVHtxl% zmZ(-QRFWq1m0nl7u(@dNv+j6CgZ=T`BXLOv1n8G6WDhO6~I*E-6v z@&_egV$A$TvkOt?a!v0g+@17WQ{T+rQ?)Prc9mSc&2w>iJ|q-A_3=}| zJm+bBr-q`{LEOG!i!w!XN>AtzzO9)bOBv20E_zD{_s>kc12KTy-e^Z{Dl7YQZ}l6L zz3Fy@j6MN=*qJDM6i--ugA6)4+LX`(Rz{mJ4yzFklLEQCM2C>8^IU&Wjf-B8mdTRu z^6YNNDiBb~BeUjr5a7!~AI4ewytSjqSYf2?YE$F4G91AM)4WMV=68kArK-0!*CU04 zn#$ZIp|l&Fb=-Ak-WR^Qyp?E;0WqT;=B=C~1Ej$qDD8o={f~?ZId0Yx3}2H{Kzrs1-IulC)pt(j4Bu$a`R^E zg52uBdgWjCa5|TfVc9AZKhLnB!M`M9M60%VVSI28R>SJS#H_7onYlS5QD6z;rII%A zN!x~5SPD6(T~6J!nI|oCRaNn`At(9S)a*ODdVBXL+pgJ;y_lBv+(B5wY>aZrjlzHj zFB>3w);}bH7$zdo5&>)veNi$KN7kupq)Or?VgQ2DK}xBLBDQR{ibud8g%YLH1nJ#~ zfo7s@b3Oz+KxNs1udi7dkWGvbOEnvvgeMbctPUKoGe=bW0k@t4gSO*9Zk1YJV!FBy z^a}i!2~^n;@`V`{Sja2WkFNg%rG*!-0TPg(=b;Q#Ltb0}7I)N`4J}qCca(wV?WHbU z*?3lNh%~7jYUluOdTzKI^<;*l`t%v8EL5*qb|f8JHRhwZ(IHAbQPuWaYqlf|ALVP- zQm*5)J+;mZE*V?ku)MpPrrz!9_>xH?6IbD7kKO!PHMQ>}v=gUA~IigWr(&hNAN5iMWri}K?rTCWtDdw;@PZxkD7p>zhyqej2z&qT@lGf zEvdP_)WxJa;M(?sRoI;^(U~Ki{yVa0>b3cm8-Jq`-0u;UWF|>?O=t| zxtqO%W^;PxB(eCtE|2;!G#EZ9`)=0UD9S8hzG3U9#a|T#WhTtgfAh8lcgy^by%J@p zS;6wRq(T(D4A{*WXB9QdJlg=o%UaSAI*$aEtwp>dLq!{odv)p=1+s8FN?j^gHShWn z-H^(6`(uvC8hx<#8yh-N?TW+)`00^EI8S`yVlz~>E-^;fe&(F30p?{(8UpmdiFZ9` ze=(bd9BrkL1-|f1jM;cb*HU~a;BFM>(mwpD0?rB75FB@qCF>)@iIB2};0 z3Fg%M(MZ}>mfYdX;Vumwc&()zY+CTdH zY`$BcsmC!|KUu-P{m0{LT@7x>;ExC-*w4aE2T2c<&4QT~|Zn?=%XYqYZZ}vPS6g1(KZD9FA;tWReh* z7Ui(^(m(AF6|Ckp1>$I%=r&8MHk9bA&Q8k<_)@&{CE%1%TrI#^ZxcNJ+_?S4UjFtz zG@mx!TSC&PVs8e=f9r_$1IMoLgK0Y*9HBkA3?7$+BUjcy#g>^h+Ol15W=p~6Y%Q3a z!Hk)P4xQ(sVO1;G+ki_3MKS*0OjVXfwHc01ZLw07`}4}UQZ8eULqlxOy?XTIjR5#| zKm}e?C`WlJr8mG8bEa$}->#HszoW@*^4MrbKrF{!H;U!da{tg{RV4t+-tjgk2o8#2_3);#WCf1zEn^+EJGmiS0Ttv z6IBE8Rokm7@cjhb=O>tk>A9Vd^9*6u7fB?LgH@fYN@rV>j070V<2c6!J|(c4c!$iM z!gWjs8OTXmFaSHGe6nCzRg4p_Q($UiX4J<=uN(WzB$vLcA<|g*Ui*xECm)9fouwIU zM~y+=ToGVC1>;^<&+FUYLr@vtl`WO=VkG@x)%m#$Nqn6pj9cy6$mkXnbU0nSnspD!oy zoU-LfTdts7sSfL8|Mm@qxtb-f2Xy!DCKxm25CIsoBq2I4llBGLlZt=Jc}Rs7XbH@4 z!!;7qmspc?@%?hy8s(UmBTLl#8ONn6Z9d>RNQj`&NFQ^>$ST9I3la2)XMfjy$>C$x z@ocR?#x03x`_;jj%>nn*hB&73zCh`M($TF`b8RqFXY4F)gAQE`!Mo=nEFUW)q8nrA zzJM|W0W7g~QAt^5YDQB#F(U|v=82%{CnoRwQ%}Ir@uRA?V#e^tz4LfZ&aqeki;^Xs zn7GB&!pb~0)Xt9DT|jiFww0EUrfG96NW@0arN9u`3eFG z1iGaIv+VOn@jWB&T@-7XPr*#H)kNbS?!p5q4wgp=abELAjoLX)qJ9ot7!dXt> z#h%k#LKElWjXA5zaxr=Ev=jl{+Drh~mmex~pv+52DoPu^pRg{R*^sK)355>=AHXfI zviZyG=&ddp{h~Kf4|n(=E8Q~v90fwTzBHro;7kcw>^(-O>fXAf9V46bQ@Olb*ZIgp zoLZnUR8|i^;O@%9@WO9nZ1| zDVpnOXyjP4RDKY~q{ntoNJJ^Bep0@sF6t z793tEWN%n%3(T?BapAl{G9AHqH1g{Q+iyL3cM&uf?_V~5|Fu*xtvNOU4 zv*}_A*65`?zf5{F>-jMIq>-oYwC-Pv%HMBOQ&PA4*L$0OWs1HG;{s4eYE+oU{F-$SQLrMy~bp7cz?uv^J_1*Dyo z>x-F6$Fh`~_vMCs+IP;G4FI0pPucNUd9PoeC5ZXpiMwP@;?a*Helr1a_VRENK$pCj zMP9aUL64_ku!k~{>fD^BYqFKH)>C74Z!$*I;%*T=^y}!S^A4GD$ z_oW1m_hQQo7e!sjV(W>jQf)>5k#eK4zn??_u*}&XqYwbvZ$}!c1E`L*u=~4b z!3c+wU;;behnEW@c(q=bqS)BRMyO{cH|g>DKX#wD>*snFP`3C?;Bm7{FoPD{^z(!i zfSNH#6@Jv*3MQ>s#QAb6I#nAuPfQ7s*YNt4+keEI2Dl>o9sS7?H2*#gt#4>z&L!YZ zX6X5PDmVJMIiTpN{B<+GQTFXf@PF8oebL2Ycu5hUYf34nBjKpZeOS>-ZdcAMvM@|QqJ*0 zqoa)#1c0sONqc0FQk1AW-hsHgEZxmp-@O^nt&$K#r$yGar%udHN2+>IU4BtV8Kx~0 z{fDG2WZCY_isN)McL(?L2W!px+xL7{?M%S|i0d>!*J{wYNmf5v$*S`QcUqC;VXR3|=HE(MTtVPAHRc%EKkg;~awLT?ez|>oUgFsN$`PhdulN8hbs=@f7{80o z5Vr&fSlnB?Y1_SkSf?^P%$tu+fiQ$(lS@6*%1x8UpXXJ2IkTg_o^vaR z(}Jj1hXmo};5noIHIyTH90Hlk2LSmzM+c5R27lv6y4Hw0zBMqid6_6QGPqn#ZoKLfPg8=<0_+68DYROh6vcNqG*1?kz}mPksC>aIdYO8w!JK9$)HRw| z@E)r+R4ZCh8<@~$Sd?XW;RU4Y)mfw*Xt%VYJPuVK^d)Q#VrPGA{j^lL7NQX|H8HJ56ps=u*4cg?DGR(Y0mmUuUTz zn~|>O>=Jllsr?c;`hR>q`(%6#@jj)@Pi(sLr7Z{Qp*tH0W@s)2<=`&;GW|hZqC`f{ zIRz`=G*MD4*v2_eG>KAUgMhE8-P#f$Qs40@4bCHU$LxmzQI6OM(ugtxg>3wOE{RNU z>LQuX7>?oud33ej3uC|w1{TbY5lDBcLq602g}I!UwJ_M*kP??KC0=sx!NXm{aQmsz|ab?ma60%eYWO2{qtRnowZ`#<3pqr-AVqUB_Gqu3{KvGMHs z6`HRwVgj$-2bmI%v_vCdZ{>|yg& zdCx7=E+}N|Ly8rIiwB0#QyMT{YqXb{DBdg$vCFZ=@Ff`g%ha>&<-mgp{fimqB9Y!2 zt7k-R^B*H$Kmb@5%x8FjnI_|={2ky3`M_Otk3FtZB{t49-IzfVj1=}vB+5ARB5rCtKJHi5{z7|E8Y=pUE zU-+PGTMtM*yaS7&@wd{@G|*mta7tpFX@GE&5)Cjjk@4`DK10c5MtkecDN?u!Pt-8lZ3`mO_++oiV4=<(oE{)b!a8Rmx(n zj|d&y3W`})vLm^W9JAQoWs#hJa5NUVkrwc0qzz1EHkvCX9~m{K2n9<0?IH^hWPDOF zsQXnT#iyjHEyRK58y<$U)Dq4N6eOBy-2qHy2}mxRR$F=!!url}U6{b}9RmguIBcd*(Y#o)l+jYMWGMdK778LQ-iby^sn%ZE9vB*l{Yn6I~0D27ii4$QKK6 zM;%&Z95Vh2a9t-4sMneTqd<;(jM3AwLS4z|Q&P!TC#F#3fNvZlEpktydiP%-3^~Z7 zZ?XK{Y-Jf8u4fyQq7fmc#lV#li$OZYVpcdX?q`i%-(T#iMP7L#GWA;Avja z3}pI}1L>MSGUWM3djgy?B@!{X5}MB!%q$>+o^K^yo75>nX5qQw96Z%<>|Ram6Ig%+ z$q2_T$2UE{xU0CoLOP+&XSO6!^2adrR~}ArHmf znZ%3Q7ApI;4|I!VQNVIAfrlqH4K`x2L-td^9j^PI{qx2O_z3K=<+~D zN>Lq)r_WLI0@|eIa)DT=_@=m+x|JJ+$SD>XassVXsS2s6YJ8B>l*&?D z=wR|JN>04%7tXOiHy|WF#PO55k`TDC3`K&{b|j>}(u^C4=7dN!N=qa*wUqA~{p28h zjnA(=-c`GJAvv+A5}+J0I-<^3Z9=k@%3}gCZR^yD^vx|rfmF*1>u`R<*9jDVRh*vGXR1rivg4B%N{7bMRN!f zLuCO5obBih@xEG>-nEZ3!3Xgo|317fA&8_taV|*^?)1g`kg@_U=Rl(8fjom$S_=^Fm&zYx z=(wDJ31?Of_5koP7_y6O)fR-UwX4YB+mRv}?#RUB0lm42FuUodalwJp%fADFq=%u94+OJw7*2@CrMV7Of|DlD(Y zet6^WCy`6%t9Pj4b4uL64W!U0V&YoyAzoap2aP&f1At^aX*HDoEvd=Af(Ahz=Wrs@ zi{$c_5fja0OZ6s1YpV@VcB_7LhM6eFM6u+$Rz`;XRZ}R4CEarR$ZT;AjMK~_lIya4 zN`c=UaahhI!+CJHDNq0e*&#lhZ>j{B=rPvoID9AF%ygSGzqYYg9Pj%`oXGP$V%7@< zS|a8>Ea2uaej`D%dow!Evwc2G93)d=w4FS!SAhl6LZ@#3^i%R^EP(~ND(kdy86nj$ zpA|xUBS{5c?<@iP;#xQmRLdCz^glFbh3tlvJy$_MK%}xO1F>QCCy%IBnvDCxA}@6+ zwh&5(pKPI&%W|a>v7wSf7I_{=W+6+X_?eWH4X|V<_!qoedOeYES@9AKE0!V6bMPRy zCEC78TqWL7(!9KvW{IvaOmnu-ut_eY8fVB@J(5JS?k-xyYGLYB;KRq0)zf1=Ots&= zkgOdHTuX=!Jv>QeR09i}uHe~?nYTLu;q_00bfS^2X}y>ywfF}HYMGLTe~R$}{}3{m zC%_N;9akb+T#ikx+9+_Y5Y#}gB`L?=beU;o{vvH-B5w7(J#GH{yi4%@MjH*$6P~NJC1nYq z&K`-!4vWy9if&0abpqQBMO?E3Dww)0?bfa8b8)x9b70)Caj=6xT<4?sq=(1jdHUp? z4~x6%c40HIuP!#>ao#hzem<+HjEQ2ZW$vNy|ClZP%LGn%cIFscqY~`_{IN zscqY~ZQE}D`S$*Gkdqu{Wo0GLbKO@Kl6Z%VNIzuJa5`MefXT#$hv*Yw0bvN&5ne%! zloAFj^s)JmUPbJ8SM+R|H#Y;w>~b}bKApN5jSdr|@4%9K;-ZqAxFV|M*_r8<00ryU zWGIgYo`LZ*9f|7fpoELER{W?8-c(IGGoO@959(8%J`n#*SG9mG-{g+`yV+uf`E2iH zm_Nx@IX~|$pWi(XKYFrE0ILY+cQczeu_o(E>aTC#_Zj@2mXExN+fgTXkJ@rbm@NzUq=yzw?L04qm%gA4ej4Ltc z(GGnd?H^ z=*0%`nF#);{vb;`HUzkO{SI2=6b+#%#y!C{-DUajjZNgsM^v9^+Qle{jqa$>_G* zKM(C4j;YlOxlbB7!d3i?_qvtzw0fM=n1%9OGKuRf)1}JerR)%m8&ebf+lI=VT?Kv4 zz9|Q)e(zeEKO+v498~QZSbn6I3X$fYumv9n#M5**TZEJS_RN-X;Ez2(zP9ZWsnQ|9 z+92%zRYjzBhX5l2u2W@?CpjdXGSU~=P)Zi05+F7I+6*z3#Z!=fKY!5^3aVO5#L$YK zaWYcI?e2#TfvoDxGxZTIBuMmm>nk3J8P7A2q9x`~22%TD71#%3-J~f_LMPEUtv@9h z(Sa2cJ+$T%!qzvM&Vd)h1z}Azj&SbM9ZI333tBO`L!>JLB$8;SRiC4b=AlRAMY)ul zLBL?l2;9ljf;;tj8cH#|jnN&6gEU5?w-t${!%Nen^PIaw&5{Hmvy8{{2_dcVp>cb4 znapOLpq%v=k$D~T;Y)AQUD03WLV;X3%qiMeA3!dF1`7UAQ%DOkny*@!;+FLa2%l2W zr9+VlXsLn$26)oY1oHK*^0*CKmY?!|I|n?{(s%+-n&)Yo^Fs&-E0UO(3hYys5a8D? zI<7$PN`h-f`btDo)0OHXvJfQfn7!E79yA8%0MZ`ka^cD)U%eg=aW(AeTRp2i??Hq=_|WYzULGo zlkAbHfP?rN)ZRsAuw*j|Va)H#ah1!2km-p0mMVncF?O0SFbX08O|LD=BwXE&#Hi#j z7`mAPgodEitTk9H*@en{k<;Zi?D$^reiU{MoToKLxbd3z*) z(_On@yJrJv=>R%DhfEW=M>u*n7e|*YZi}0Mt5XN`RYILZT^h8VnW43>UXG59qm{N{ zmPqcKr262QYR1r_$}?Wg9NYNwX80SDU!B_=vkMzt)(^teYIN77Co0wIri3=vS{@^5 zxeT){o>wbTF8uh{3+EQ!teQfpC zftTEr45J@o4}Zfv=b+hz(0)kYmkoykG988@+>SV7YBJiZ&Rt;;NSD0zWHQ$Z^<>7T z&Z|GGuwf@sr`W?#UU&XXpk;OFlZ2{0rjy7JfaHYAA>gjKfQBE&D`HjolGG&ma>vUu zWh--?IWwIlWw?ZokfzgxJ4!^zDS9XDC!*#SzLE@)Q}RjN{dY-0wuupQY+a2{4TzX#Zf zHoj;pU?zWUiP49n<~f2J;C}Q=_qTiq%u8QIA%8tvTFI?uerxbR`)(6*=dH5abVW=M z^0PSP8;NcaiyH$C7z>Z0NSVTN{sD&lU$@bU00gmlqap7IUWy^gWA$6hs#d|U2FPu5 zQg_BQxjj~-;|M4vEqz64qE;kS1FmW$SzctfSy*m$@sH&%HCVDEfW`;OfQmMuYD>Sp zj03p?(QPut_=sT+!bap8;j}M zV!o5aS(qOPTW$$LyNV!R`1GA0!H&LFQi`GJP@N2uQU0Gx$5^n>dFhhQuF?$p!M0yl z{!(t7#IZxD-f5qzfHyt!Gz-3kY7*kub%l%oFPU&E;M{|`g%19*aaVU8|HtyOlC9F% zkgxI_)rI}XVg_wgtFn`;x@y7YCU-qCV>R__P(DYgGDcd?XTgxQ#j9V#=BsqiRr_gm zH`)CXF0PA0;Y%XWq$MU=(SHV-i69+9&1=Q4p-o~;!N=!q0Ad|@%~RHzIv}#SQ$X!b zOm=$+)UZ9FiGLaUezPN)SUrfuVx zw}IUJcqBO)+9qpI=cs&VtgkSYk9M`SPk{`I_{DI>Q-bj;!tZIX%@|f&mo220VmUSsts@gCDd$CE}ykW18Iw;rCbW4`8|p_y#W1L*(XS&Ad@scC+fL zeSKTr?;Kx!f?AV;wB+hvQ2qPz-rT zSEBXk4Y1rHvA|zut{v%Cv(t-RZbz#^HB+IcrO3ND?$(Cq>GarW9NRo$EGMo5SC;sQ zOqabtOvs9+s3&9yeRdaD9^x^@qH2&+qhR1Gdz7XbUY49zIIq>>oWoA{^~nQJzj*V= z`HcVdPwkMToeJ)G$P~kQQw!a{(C-Mpvw>wR4KT**j=qQ7$gBzogyXgkdu&wlfYZ~* zbGFm1O#Rh5#C1(HJ^W2%pTt<8BezcX?u^ujC-gDk$qJQ519t%e|B$jB_XCxMEf=D8 zbZEL_ZvV%wOlAN}`7ynZtv>hIu8(k$&Q!n%cIDBakFB@jyOhdGsKIdME(AJ^-PyDr z9pC`L=3gbfV!~T`9(kMru_#^fZLKW(%z$)y00!9uQYVI(rRp9kFWzd;VI~D0h2xXA zU~uNAFmzo1J2FM9sBQycCge+JL$&a-DVL@9p;9Ms z3jR)`S|D%wVt|Fg`SR>Ws=YatiO1l$YzGGDnt6qTxC}1?Y zyxr2W@*Fg-?Ytd#N;1O4%~q#a3g4u&&BbPjo1Xm30Gh2sf8&iPcLBkvIXKy%Bc$Qf z7mh8QHnh8lHAz_W{4UP=F@q$4RB;;&K3~-Q(EE?hjns{W$`DTwXxMI=RO}VxM*dU! z^;pF@eU9K?kuikAxbBLadmc#zRlq1;YkOg1+?t-IIqO>krNpDsypZa)#IN+%!Nxe3 ziAF>pzs)0c=~bH;(LXfZVU99|n1jx5DpHXQJj8qK*4KKJf0LkgrmM&Aey%2K_d`vG zEuW0f+c%IO11pGC;djWT*_A_yktVy#rI3(rhfJP+fa9m?%KuM06z>0}gc#Xa|06R4 zWo2RepX3jqNoOpExGTQ02E0@b*y&H=!+CcBqXt!h^D(F5#U&DQM5 z0p1XWGzc4IdsN=<&VHUBYI?pqF;|~fy6V1~-3FqsV3j|*OPWsGu+S&lElkN&cW8v)GZHA}}u zR||l`B1AHo#N?-u!ZN1R$A@hG8)*&CaPD+k&v+c68}a>c1J6)tqBydzEVqq`{%9>{ zswW2aR_LJ*TA2iyAm2S{K!rXhX&As`XMgC0R zOsAfdYkQ(CgZTzBA1m7{t+ngU#f#bF7HE03?8@ zaz;RI{Pte|k+SL#F@Z{;p`d7|@X4EiXzEkVa=T>3x8z69dC2bDdv5md`je#1_K(E2 zwJy(I_z*Fj(e}DJZB8_g7=sz6s_`~ZJG#VS#4!SW*>a6eDIVDG-~4{EUHN~tQ8ST% zk5OrJ?A`7P70v@t7f#Ts3x{+B4|f5`U3-(oNEStZL&u#=XeWRlD@n^qCe?cj@H--q zCW^Ydsj;BHL|WMTQiqH+cEIpNL(rp0`j&|r0`6c1C!rt4Ptvzg&H~=#4J2$N5%8Xb*eJV zT|>lOi__@8U8^l6!Icagc7gzw*?+-DaAvk9w>g0^Ag3kj6p0=jN?Wn zN>3}T6E|b}+i(q=jB))5287!)A*k_*K@I{Do;RyhY-G^2k1jcJQZ&orU z`2)LtVOBrOoRpO#le_KKcC~Gs>fYlz_Qb0WKvbVelt0jH3O0fe2|0_AvwD5+ah(xk z`dkcxn{WJLb2Ntif<6Ru!sx|hy3q&!>^z3w4;{z8MbYb<0VCLBs~IM0NNS)2?P#=6 z7M@ZQl&F4QlxG6iSQ-!=&Ffn-shk^OQZb0H-Z+2J!8m_W6bHYQrNUMB(`@cilHk+g!q%XgA6-K7SX7qem z+%Jh01#SANx2<0+>;Yb3i<~T{U4q{;MUdK4X^76W;Y|QP!zRb4sLl3`O9i!>9(mQs zR~u)GIPcZ2EHnoKii?|E?OpKVD$Xzowl(m?YqWMgDF&wYZ88Z6&aC>eTrjDj(}!=)4oou~qG)*47+SKj zmcTX<_PNceOynf@V99|;wa#zivM-$B_;Bpqf*pYP-eIQ?>OIg+4UuG*gu-nzsvSUW1?Dkb6m4uo93bFsr(PhCZcAl z@Quxk)QEsj3}|aU6T~Ku%#2h0Ja&sHsKB5`GWH<>FI->DHvv}IUa5#N0X#zdGgOE> zxiz3okJZq`aTk>(?UyB!M_OmEL0UV=;#G&Ku_Us>aYi7~Gu_Bt+2K|1nv+Fw*Ju;- zD&Wy}q5r`a^@ow|hp}onQgG~6*84I_nmRWls&lLpCgQj~FJ2T$tLLJrU=H64BW!33 zMQSq(uCj{^4MoYzv(fFNaxcr8zq4AbaR+c>ildAZ%g=%L{mqx-^-oL0=LZblX7NA< zz2xFqz3-^d@W<;L33URzEhFrGLUYOUr_cG*V>(oG=L@3HNudoX0@m$b>Q;FznFB9yDAN%?kNU4B(Rr|2zWDSpw+=)0T^c5@ekmJ zo7G*WeXsoDWS7~T%KaL39QHO%QD;Q+7#qj1>sPV=18$j9iRn-dDg$z#9>&D2m~@ut z9bFG17x;dy)vIEHRQd928MCda_s(zQo(qB#dSpR9{X77P)(^uTEo~qNDNmVyGP$qJBwoJ`nrAmvW-g)s zR{#eEfrH?TG=@3G%S(pF#7jBDUy>&kDX02#B_lkZgV}11`1n17jL~M2$f=wJZOftC z*R%`$_{K`8%@%-vX`Q((jKQ>&<|XAkwpZAJ2x}!` zrNKN1@iNWe;i*|Gii|*o{R~mo5woUvGl#WceZzZ3mqQ_Ukkl@{f2%aSo49udDfPm{ zb7bt;v|ULAEZCr~@h|qRLsz>NHvqch%Z0A=Rd$iBZY;; zTFmzdte{qGZpP)DLzt0P8=&ea+8;O)eh-=ISugTHtECA;7#eRnr((8optEmuZy~)R8!0% z5neBE6ZzW9+6(U81OfyH5#|qt3RI3}ynm*#a`^*)2-*-7;}PGUfhxx&rsnt}B<||5 zT%^Ks`JgDNeEk-=gS)uipr&OnaB=q~%c@!Q+@gnzll|(&(Wfd2adca8lRxtMtZNGK zG5y?a5A%zwIro;jiL$t?Y1eTWU>LAIwv{YVz`JWH2q8|ogmRz2?gH|3+*+MYlN_{FThIQQFi z6&f#6SxI%TQ7I(q)PlecYQva6{0 zTxOcc3tkz>3;+gU533uoP{_D}Z28lw_35#mjjAOUB=Et1zI!XJN&fS{E1s+3GX zKoNrqIAv}2(Hng|f96c+vdDs`dA*?4AdKF-D$sPmRmuG`fM zm*--6jRDK~i;wl$8dB!nb+~QC54z}>!WR=-9tLEhexf{Sev9KIq3(sjHMGEMBev>9 ztPg$B{MFFo1qXRI!46rmWO0r5nF)4ec%&q;idh6zhE;s?uM|IlFC?%Bjj|wR|1x~h ze;iyogMR74WrhOv5;aA(C%L z0Yy@&J+21?e@214#$gCiS3#`%$mSp7;}))`vT<3 za%j!&7@i20blad>#~$fk3-f4&e>*Oxdg16W9Ul#j zO9oHm!Sa&rF^u#Lg0Ff9%VhUi2+#N2C3ndeBp6UV1i$4^b5CnT1;FP(itIsd1_DlI ztCu^r6ThQF6H{JCK3@G6oEp}godzX-U%n}zLQV1 zbcCGE0*SA}fKl(4$B9r@5AqZk`h=zSPjGXC?mv&&N^|%KxtKveIa%`?;vC_1e>ixy zT?xKJtNdzp+?xYtQ9Yj`_nA4o54y1jl7IXSRGJEpmj+a{Xquc()Ph8`q6pYwUi25Q zmXeqvS-a=UK4k`XM3@|cLOLOubE62EAJT~c9>-4I9;(+$`f|7AMx}HSEdnoYyn!eR z^Eh>VBJeA%1Qyu)twlOys*@!de@DjTT&mk3PPnn%xoLBEK|p8-N2fk?S|73`2Ap?k z3#;DaVgB@Lk&caVnCtZy{T<*pfo89;L;x6OP>HSI0zeb^@hx!!t9 zBfbmgn=IjK@Uoi$;nK41wf5eTfgpE0Aoswybd9A9#%r^$H}pQc)r}b-L7*QUvlC51JsQdjsHj886<~s*Iet;n!9l1`%jtbvfhk3Mr?%eA@T6%g_TEIKsfG zxO)5NzCO9SWHno&9~>R$)INJRDJakE3ww!(_{H}dN`~J=a#6^`*f*P$hP=E6cZkTD zDrKh{I2L4NpK(skR=19>;-HCG5dBkivZA6Wt>54n*OdJ&X93TyP}}i1l*25va#RkF zg$aRSg!ACNorAJY5c1d!!49w9HH0t((mh!lBPC^<{1G+y2aIM?7Rc{f2is#R67kqA-oLga3(^o26+@+V*3QyLcZmOtUWWai z6x|W}r+G|r;jmfF{+vAVCK5hum3@_y_1IkqDCy&O-mxbFJO@1L(3{Uq1l|%RKsxXH@^t zeto`?u$kzYt;q3++JO*0x}bByNbeQyR2c z-2ng>Ug&bY^ye}UZ-};`P_$WoCjmBP%jXh!YpsdXs08<$*s7$K<8-{IUp^xq+MkpK zN4fe6N{A(4E41+-_+niyF>}UgZ=KLNeU(|B2ERwvFe(NILX;S<(`mtt*fAhBh}^G_ zLLxbj9r?enwqpnjqc^a0oGG7Fa@Df$D*=*hb`;EW|mz^C2=7V|rEx>k5j|QITo2EwWUACt4#Vbys-) zZwRGpg{p;?=5KWVS=kx0SME01aM=wwN&!`y&XaNZ?Ki8aA4ppde&F#` zh!S8P5GIa9f?w!>D$R))YIgXo7qvx%Mk0m9Ukuo#-OYiE5LRL=oomje~+vIYmRT7-7wg;cqe zvjEP}FPsK_A;Q5+$j8Q)`YM8()(TR6*3ufbT+&`xU{^dPVYfSInkEE1V`Kf-?huDW zmHDB)I@m|G*q2nZJ0_;VJ3DyC*dF6~df`-jLLX3MVXmTMQE8*SFX_s7HUw?oM@dH( zgqYljl*l9Xc3tG`5N>z(z-a?I{?fpg!n58Q(lA6J<{czOPtD&BOn2ufC#rQisnC%=q{ z77Z{8`+Qn-HIl6vhASGtlz0|}T^q?JD^g+S?HE;1X_^)f1MUFbwH8o6)Tpo)V%-uS zwyFkIV%cT!-uC^1mSd7Zy$g?Z`^XlrdNlU1Y-tM3)g6r;6}xH^f^p5%DSt-dO07}| z=giy~jIiG~udULOE`D5g(JAdIH>m;jKwx-)Q1v>QGWbD37lygth2s1sRx`SV%0`*%WPMAF2Lp*)8D`@X#LUjyoY9z7KO_!vWYB)BuBA?kf*%1mJJMr72e`})I6T>)gBF6-rap< z$(|MWyHHVBL1Ta!VS!|wNlD6T`ju$LSUnD>UUP!8U^KhTWNZyp?K}&;fCiwq@^EUh z>Z`+EQ6FGru+>znyA5&$#Hm`f5^r3A)k(YXbxV3xIaL(?FGgRc;sWd&GFvHG#*L5n*oJ+>#E6@{T8a*`_=rMt zv(2sW1#j(+mL@@F?hWK?M*Yw0`A}%kj%`FX_P0Ea3CxQxEAmF{zW7UcsrG zgj(lJD?^ni_Iu9>rgtD{Bf5vB{bQd}Y98qwYxe#_jNErGT4ePfh>$y)^@9#5MiK=Pte3kIbJ* zm1Fw--x$amnG~>nO@*FCPmDWH@x!7gR?AHtFw$+-#&1nx=6R?wH?T$%)J0TD;Ne$c zfA`Fhn7i)EyzXyL`38TG@QIxv@!?xmO}{P@AP(#M=oujgOxs^h)wcZt1E$V&w83iT zuVc{<-~r>PgJ%KMgOwa9DpjegnrG7h8WLImob-EusHN+j3#VjM8iR`>TV*aNZgSa` z|DxK`j62!hnI-JA6jFS+)}cncr2X^LT)b9lRd4Ww_UeafKDE6j5!F00Z!TO9Ucok) zaBSuL*PwXl7c;q?`!P%*G+d{ztqTUP-wRI4*tCt7eUAh{Aw3Ov_qGAo^f=HF{A$P2 zU;4AbI$h|-m9_NP9pmPe#r2Qq3(&2&neVlv-(!F2c2em_mqRP&`ko>EIH(mWQh!Y5 zdKGV-jde?6vUPYnDOpG|Y2}fIqet7uEk10D*!c9ZN%>WT%B@b^vR~`bTCTMbvq4^Z z&Xw8&sGbMF9LXjKHmH=`fvL2yrK%@Rs0?w=uswD!`Xp&fav(OhHnN$9`u%w`0NTTaH~86$2SEM{NeD`68#}>5d)3{G_IjdD-iby6a5tn zRe{j}Hr*=~iSK7%9;bxS`CW7brml|lE8Q!L&Y7M$X?DUFR_*8`o105>!kKpKj|!|g z&c5$TYQ>`dyXZ>-tI4$-k&#lV{?IQNzDm^P(0uaVSPYs?FJ)8z{J$nW>*XjF!CEGk z8zv0*U24nBc3t+rATb6si)GD1oG1Laqr2k(hdZOe>Z=wz&sVq29UW_~cFeCTFo*1j zm0Vn^rLy#(ta_(ue-HniPH0m44tk}v$TlUR5R`UyZcDK2K%7}29lqZS<2ehGqAIJ6 z+Hv6NceZ-`<@xWciuiR)R+HJJ$l!xlBqc7{;d^) ze@Vy;$BE3q*?F3?>k`$o>6@CKp_iYSnHk0-NZ5&7kHeQC3fkF1j~@CT@3$gd_-3j0 ze2Bc0f@jH9%zRH^k(WW~wvYZfX$5A$*z1OUrS&UonCnpyu3QO>O)1*srY?6(hQqKI z&YCBrHSH#+tY*bnECzw$S&{6dA@_>`k8DAwkreSGQDJxbjplO&W~j$_+8xW-vsL7g zn=RDdDB^v&#Jq&9{1N#IA>_|xBlhvNqK{Mhb zXOfY5=$LXWqarjz8dwHaGlp(ud`hO@^cuTFH0~q%*{Us8)UB@tW5;^y&{%TnGI7a2 zvo+xaCm~-$fhw<9qp8Wmi4q8jWl}2GP|ph8g1E2ZgI;kli`4li54fGQ+y7-9{(saVHD4LT{C`}iEj10msD&Wxod1n} z7imt}a<{?toKPNv|4kP00TBe^j)}asadXnTEEDxQ!x!~hThWswDnp1h8u4eWHfZx7{PVkIk)og*)lnx zpji}MBjoSZf0Xq6Fl?Ol zjDA>cN^oy9fL7pU4rAfi7;OWV#jw1;5)-l12V9l|;{zmtqrnhWkWr2r_v#w};H40X z>k)<-jdg>*EDgw^H2hJ|X(IWr7pw!cCeDzKWb+;=gPv0-5dt*ihGx z#@)d?x9@}^@X}j_Jwm*#y$P%9KBed%JE!-!gB3-Ua^rO^j;%5S>pR%94?gVa_ehx| zNcd){{7JY_T2OrP)3lNqn{TK9C*i)JU+8V;3k|1`&860pb5YZKQEI@1b^k7y`NS}o z3Q_EzK2(N;iO!3y5t&qCUS;+YkDn2v6O9l)t%Mrl<9V@Llp1eY?lrLS#M%k3tC zSyS~8eijdyKQv=tX3f?GiY6Xbgheq6B5SkWTBSnq<1FL))u%{J=xim9i^FoR0}Po9 z!NahM?0@UHTvaDdN#+Trr8wqa*K{?s?!k?VaSDp*FvG|M zBEe{5h&SG#sr5pl$5UG^utrLFI`w_E4yA+KVode@{8aMhbiEWEP(uoITJ{CLHXg7U z-_$VXU~KDOqQZyVC+I#$D^xnEW{8!&8OtY-NL;*X77@g1W_)n~aTRv|RLo+J=HchN zow5nVvaFLYYu)EoGgfR-0}|g4-F``1BRr7>YY)N1FPMzab9l1SG_b!@UX*Ncb3lWL zX5S;|H4#F9#hXrt>0*1cZJ|3!6W8~w$V?RIwQkPzG%-?aPTR+VHg(eyy>;=vWSZT@ z(Iuay6#=eeGMhR;P{44+bqF$$l&wnotYK$KRw*&n6 zmJ2zDxFLjCJCGRGzK23a5bZ~C2x+p-0mHe=CnSs$`)Y)n#i!ADBwQu#6$%x1w#7Wc^?I^$61h8k@s5JBeMo@x0+Oo|#7Uh=f#llEutz z{DC1u;l5zN4?G?6HDmDaz5Y5{j93o1YaO0`N%X#qMn^X|ZaB(<<@CQ`sKr#^xR6nc z19a$t(4~11h+0%>G)H*TAqKWXhZazL$ckwbqL^8~6zg~EL%giwl-4pP8H{GraT+a8 zSYrRIirq18DBdD<2gb@vvaBhr5=sVz8p3*!1Y@lMP(r*bqv}`chaZ{1?CF%t&jWn1 zvNo9MU47WgEBWqhN74O3g*?tlI%T+nr5}U-1?)m}_sEKr?hUBsr8sTWjyAV=S65n{ zG(0As(W5)MbZp0l%f;M#3WW+;R#0x6Ii;k%5KR)jLF!-igOvr33xvXrr!FgPxA839 z*=v;mDl~3V_H5Thp_Rz+nxuk#o4o-HfAc~eI-ETHha9Umso~i9;%N=3sy8n`SWqb< za1Ud&A`)ev|BSQIINO9@8F2YKveh)ZgDnOIcRh`_)he2_T!0^hzoVe?{o8d5{o=dn zcv1d-mr)Ppi9z{;AtYlECnKbD5?(m4kJ#UU=?t_&p{}kohA%H+OnnPWVj8QBtGO#` z$OcYn#VMiP?HEJ22hU!z$eC(9F$|oBPK7RTA&iOQ6S|nT)nEk^9pY&{v`;p1fpwK0h8jgNz- z7E!3&L-!-Wt*HUHN9YZ~47N#O1-GhoPQ0?io-6HDkG{n(*|Sr%7zB;>$F?1(bO-J{ ztQv3KHNH(YtB6&rOcfJtbWWa=iK=?QAG@6%u`MYV&sM}2!8DnSa*Dv3$8m)>2-UQ+ zO6hY|cHW4UPkm)Ior+@n^0*kGi?U(oS1nm{NLf`e?fLQ1{@D@7t~tWw@m>XZQ7P28 z%OQlW#MvgTt$&|!B_h5SPO(eE%rXZv z|6Yjs)ZdGeW+x^e?A2L0A5Ztza=UZh>v%d27(BfFow+6WmuG@zxMJ_ui&4Kjq6Fw{ zg@1Jjf})vpxbkoLSfP8<#~gX@a0lNxrA++AMciQ2=R7Ihd8UHeazT79JxzMJc%Rx> z38FojF5L{4Wr zF`kcAam}_9z^>^oA(&U@rg5-BJYsk@Fu6C+*e;k3)Iizky8KEBjAKy)@bWxU*YvaG zhP7b4Wwsz>1xc^Yt+19<7fUAFiff1(NlP%r=cE14o zPt3zm7x&L*zu$}=AQ<|SJpMVMyxxO#(_wI~=eIR|O~!-LYhT9QnY&W@zTGb^0tYSl zB2MY+XWJYB9i;>7d8~zx?>YKrGxyy zq>=A)90enP!-ZPt6AzT`wZA2wFXtNOUVL~&hjQ>p*eid}@Gj3UL~(P($l=stRIJzG z4)1j{30ZJGKa^fn)2JDQV;QI?J7vShYxgf(AJb>bZEBfwDXtBWW^s7AR-Jz`p zApZtvORE8xBozn~!~f=HnV3@b1tHJ?L;t{8W(nK>fU{KG&)^iO1j!@=PF5d1aL2|2 zPU#{4;Mw<>XxN1GGSUgZImB;8Dkk)VJ_7!Px%0wtz|Ysqb1c`_1pimDs+{wOaIW)g z%cdoT}U#`^WpX=BaC5lJ*QNcb)M~vi-;Jn|~B26`5Xx9!2Jx{8fve-3}h&(@I^ zC%;)hmd0KjvjfEFZGxIwFNc z(I!pQbnHJ0CQUAx%OJHx03_Ah%1`+Cs9#K=+P^poECIv4)5r_8i@Uq4|@jtTxc-HPs+@i|=A z)NvSGFB$mP6J{Haj_EhmT1g!4DG0VJh;BP{|9zu<=EWD|rvIH&34k*jTL$gHPV=&M z#=2SYt>#wz_}~pq)N)i#jyGmc`kk;4F|r;LyK^Ns8l56!w215z0al}NB{B7rilF~B zsHmA}vc{wfWqSwVQXTx8mlOO0()FtADvitdcW+Jvyi^&5Ad^wS)V^X;c7;&1RK5z$ zmUn7TP4m1|nKDHpv1=Q**};}#8*#f0axN5b-4NL3%O$x`^>8F?ORI^kDxs-=2vIDYlT{|r^qd~#oGKVUv_NCPI z>V2{AI>_TUy7)9C>Zr4_Ft{B$K9R|#vY4sMEF<#f`v~aWbo6L8@JWp_nyUgC{`67{ zEFN77o)NIhGXT>LPY9y9zlxe15^~gr33haAST3qh&B1x=Ma0@Gxdy-SxF`@^Q<0hQ zDg#<)b!je8+8%9)q$j^6DhahDC9ecVURg6Fe4piDZF95AW%F3?z|{-ogW0Hq>tT$Y z6dS>Zqz+5LA*3(!nUAVs8;3j4i@n7nc4{SV%oa*X9njPY4Hv>&PGilEYu52KYrpkJ zXruhmX;_rvubu!H_ZmV3lo@%%=-cVsvhg75ukC`(u4d|44rnD1s-E}weFy5g1XGA}D zO99Yv@0|q>qjWl#>ZR1d6Pn`hypV5NdG7t?@vaaqnRCZ`*7I9vvPT^)?C`okKqh`)b6i0nFk z@lv2?1yi7ZleZJ4ky1xSOvgV2VxOCLXp^!9i@0V&U^zW^q~wmW^W{<FbuE@LztzH!>qckdR|V7;{i0(1j>zj3oSyc#}$@zalFiN~h^y9N5qP#u_N)v#wu^ zl5w4gnv%$<^EzQkkGpel5Ug2dg#;YA@4B~7?Y~lOVe_3Hhtw^ zS)R&_r$IuYU~OadsJ9%uv)@jP;lw#CdVO7UL%KLHnU}`!vPw)$9vJ5iZ6IGK6hLIF z|GEx)MIp8M*V(oeY%m$%344jt3vYLri=;q22Q@T^cH1*I3I*YOK*Z#hTL1t$*T*=z z<0bf&@7M~5sOVR+q}A?H%a@H*o@SOj>H4#uB0P6NHYDgd)`kZKJr+{*=@>?lF(AeL zvA(iTm`^C7%SmS3xb%IM=U?09=jY`}rUr{JsWJuqO8Hmh=>}MBeRj~>qY*b@5F;U? zV6n9v2CbqNfzPh+{}RuMM*@(%+!@}LP{=bv$>3od=DEHo304p_PC*la*!SlZ60_$w z;-Llw`*x*8`Zyxqyp)t1pG|6}Wgbafe~YpIyf2xx8RDrKMf)v79ePxxo!O+C@X7KtuLidS{tA=)-z3m%s`KqDy`A(&fyX zO3MzuVDRlw{`P2xF95FB{<6<~64YB{q-84UxO`HW&qvxW@z- zZ_6)pi3>)!GKS$JdAX_$o&GPv-ZCt%CdwAZ-QC?C8XAWHf#B}$1b3GvXz&DU+zIX$ zEV#P`cM0yUA9>%IZ)WbD=efU5pQ?Ro*IKntKV8*TYZHLYchliXZ8PFHZKibHB6ZW? zc3M)DUGou@$8d|Szs{w6e*D#Dwleu((0gs%Nc@$>qD{t;Pm=HG5V!AJUws9&m!~p6 zV;-m;CF%=>d2hz2I+yR$zoJ4CoE!JI_i4?-qIQVTEWS8ERHY1ds^oHTj6cXv{<*|L z7a_rMZ-hy__RMi$H5uE|W~Wn7;oadDnGvGS8sBL3L!}V1w~(xp1-n^wt6szFu0s+8g%OUQR`G6cu;Obm(y9Z~Dez7DKKs3qZY! z=?%ymX0Q^eZ|v~hU~D-kg>!~73f`}cU|Mg4GH10jy_RnD*-{=@o)55F{unhF2)6_@gs7oPukD_{3&SXlleq0_`~xJ z7m&sBTlxOI0b5pV?60*7Fd^qpw}X6k7hY^0)wnsJ7^{bqU#AE=wh2iI3Za( z8d64h*`xr8b@#G)9}*ype%x%FoLGPCT-i-u>rROY5HN{xk2R)}eMA0z^nKhl0>0qe zL^Xa_doY$`$bO`yc63_m&G*?=yA)iOj)*-$b1JpC1c!3=C`6YHa=O(N?fpH?5o_l+ z%f5xAKndkO`!CC>_TSrTLD9AT25lxe8b3hfk93iG!f(G$x0CF*l62~Ir?y+&JVyNc zdA`V}7bUWm+BmOOKHQi?HF!r~Ho&RF?bcO#98CFBJcjt6BkZh&m6%|sq&=49_AvRf z3g-BYuWOLq)mWpn>`aF?)|OeBPdERR8XuW=sK$1A>+Ns)Q^ygi0}`d1 zk3y}@)+IFH({9${K1H61u#o|tDg80&zqg}IVh>m5muCeanHO3@Q`~hOyDLZK{$Ph` zB1lw(o~HAQ-003EIgAJ)5{4s1bHGq^T%iz^fo@`Ar!%v8z;v5FsNY<>F8Zz5+TuTc z9#sQ~4&>r;X{~rW1RdyFhJjk~vMN>N2tG?^uR7Q&IYWV_ht=x!1v%U_OTJ0APi<}@1+pjtU}TOOx_Sf zOgGMRTW<`Ti9N*-%aBCg$Di8?AJxN?%yffx`0=#ilt1l_d&~8n&>J^w&_ss6iFF0a z1k@l(j>EVdz*A)K_Y9BMA^G72V<@j<+AuD7smuBt+fy|0*BxP`1kvAv7LijW+pKuNYy?Q6z*Zt@s%tP$4@KlCD9%BiCl+z*|PIB_>xF){X&6g(uBKrj=C zm3ajr`O;Al9?qI|gG-rtRLNnIceSq^CH}lsPDR(h9WZ{1^57&lrRzu}*W5bqDWe;b z6bjH|slHS!OB6re_RRv;*kko0q3*raz-e6t_b|@%AeL}^o|4RQABbqD8FUd`3uK$7 z$fXIc!K`kWK9$bNA)hfMiEB&$ki7Bbad)1hR+1%llcWS1O#UmGm0jjS3NTNxR{95i zqn=D-cuhz1LQ=LmjB=?5{^&R&EBrH#kvKAW`G)2SR52SR`iyF|b!&;Zhs9Xc?lt*m zDunWL5H|7Iec1MqL=b5|PmE@i($8R4f?p2WP&Ql1s7Ljpoos#Dd=E`*<_O|?vw_ZO z7LQ@G-MnZS9l9qH>jyR@lXU@lV(*8;7qNU#ZVXA}NX%F3Lfi~RvgQEyQ$W!Y?Ub|B zGLrdtmk`TADbv9C;c?EhbU!1>j4#xTfUQF?NS5v;7=aojoTdDPGG8|hkF{&utP zk}Be-f$19IN@g8LwjLhO&26`TfSZ^tqo!u;eFyO)Fg!ObM?u#Kc+|em-blKF%{EIn zph7FuS#%uMW>@@$A0O=TFX)V0M9(_KG(5JOsgf#`DFq+9Z?9*j+sPL~+-MEw(`H%b z^NM2nr096I{qOU;nZuwr{h4ina<~T)*59<4F6k!Scth*Ni8jtmNuo+MlD}w?CZwVv z9dMVsK#(Mk>^Us&@X@&^gyel1+~x#auv@*TzCW>ES1 zOZh8s>FW~8bnq8Up@95v`2s}#n9m<6z2Vi<|DTEbd zB#l6p5<`TB=y39z5lf~e0U3+BRT1c5RK+a}aW`}(l;iI7%tZHLeXk;s>*qoDnmg!o z*+|51N;^Ce^c7DG$lJH5s4Ey~6{eNtMsDelhN!eAgW(WEC2Swh(~7*Nmj(B^HWL!c z((v`cmSLiWKs@OZpA3dWqBno-UB};dlqb48DgB0LaE;8St0A$bP%xEH1z$Gd$W2WFLv#VnnMb}dW!`UO+1uecDb&)J zN~gh-OYBSXvuB8jjz(WDg>&+A<})2lf&^tAw;A?N1-%UEvOL%IU^b<$Jxlq|S|nUZ z>)O6ohwrNBadj}mgw?C}HZq$j_f9bJ`pqJQ{k~{N_R!cMI{kGozN!XR-J;z+XEGMmzUPPz9aiUoeW&CnI}rVI(*HbpF36q;J^sRV9O0m-Ft~HH@(mg?1WbSbVr-iGL zG`BFtJ1J5fj?oGq)1d`~O}#*ql|Rk8;bkiWl9(x&i8DeCSq_npmqbfIA%eIwQQqJ(a9Dc(LgEaQwPDpV+R+H zU>#a%pev^|@Zo7H3a78sC28aj8d`K?8O`_j;y4`1!@;Q0x7WLlBXaMDCeQ;VzLNS& z9@{XpNn-ow!VtN~OLEZjeKtAOAjM4Kn|C@W*{3-X=K?Bwn&Uwx4HSI4j__pylr0+2 z%6!5$EQP5d56*sT7@C|AWdr$xRRtMihCuGGAw`6iF3he|!6k@+KU-8&HeJ+vqo92^?!jw@6TkYQ@cGpXuy*q$>F#+X z$&*W_#06URrlT3syMlJu3E$%wPH-t)NYkeatvZKTu2R0hUVkBl(J!EF5ohgbMqL)P zf4Q7$cqji+#gwO)o+6gepR z7k_35a>QLlCDXiUsdK{os?1ROveZy3nXx-R`$w3V7MN7rAW;26qa8T`ny-Dn;jj7B zxc2B%fV1OKKTf??GyyOq*f21t;c~=JeH=`nQ4p2C7iN^=kW;vawcr1Ad zZgxr57P8?$rGF-?;mKx>)oeBa$#@DRnQKaQdYr;)BGhEdI z17L=+LTejW7!&8{afg>$`Hq_eRQ+@3F^}jL8boyGKV)nUDelV*jHx(~#j^y0v5 z;TuPg-G01)h!wo4=rNPCxEFAA6OfR(;@-Ko(F60IZd(&o1@G3?X)5$7BykiFsk)W@ z4J!%6r&~gUlSiI5)G&cenjaBcf?&@gX3C^8e^Ktky8==1$aZ~+_PIHK4Od;)_@fH8 z_hrET(Dt;ve$2Y6BX8qb{678;x8~Q-WQV%>LT`IGB4CAV!6;^jLVmMFK{kA>^{vNU zSbAXOG)1toGvC11Mka&8*!WTeEawk0B-P;{it>sHRT91u;lX*uKU>LKWs~X3299bs z&1tdB>Vj**7Ewq4^3NY9(~)Q9Rcd++!$i=&FsomFbGrA?D5X2>G?I z=_ca$C0~Y;BzXEsGspv`QhR*zYY+@Ejd>Iu$*oIdTTj(cAgC@Wo*b4i@6?VKWxl5r zp-XQ0cqnbPVfSxYCoO9%ci8>e%s>!(*B*LB=`*dznRb;s?`ztpn(C1hug`1E!Y$K* z2{SuGtdULbiFNK45bRPk{bOGyLV1NycBJPfEY_~QwtzbFdLChI-xYZLxt83?j$E#7 z@56#eyR7gR9GlElIC%j-Z%5h;kh|YK_x;xmm|hG-9p^Y57)pOLG7GfFD}-Su&99bW zDqlwzU%t*rEhO&W)|b4&Nq;BVQvLKhYgwj@LcgoM`C(O9n(Z`mYmTYcm;0otB-vWQ zA(Uwz_ZR3oDu8ypI29-de@79FzO&!^LPI@3H1ep+1y)KRubRqYQA00kXVo`at ztxnmY3WUmJq$F`CD%|7_@(~onrY|thQb~+I58CeWp$-Dh8uRUBgR;62A7eWRcf-F3 zlHSPiUKwKVLugE`32mqLS9DXdyD_(8m8!Ng2UiJ_epwsA>9pt0KI`J+sT!4$NwGqu zrOeU^G4;>x-`0I4nXrT;9U-$0n1<3Ek7v|M5=b}v$OJ3as1D{VJ@^$ zSTm7hG1KDLLQ>bYYiQw#v-cm0j+O$u>HrLD6NOeJFsXz%o!sf!LShX{Yp zQ1!G;&fJ#jx$Co$@r>Aw%vO!`)>A&dJMn>v(X)npiBP87VIex60CaIPDD)U>$ITde zrdgE2wc8G5(2@u*s)!TM$`%}H)j2Be7RmMvuvxz3>|2HuHQJ)Go+u`` z>zgqYXl7;X_f65C98_aNzr)+c!lshN&+loOQHu-(Yz@l6qk3 zdmmkZcSduS?2W@2n+o@j?aiZ|#ff{K)a>Me=T-eabXx89(UVzM%*6KHyISSCNd=_g ztr`N3sdxqn5q#|Zw~RSOP5j+ZAw?ZQy3y9(KmvD2cKnQq3Nx`YvD(B~mJ0y1{qaK4 z+<`=1uY?7(QgB00Wae_=0( zc^Vi`UqV7jJX)L}-z$lI+osYgZj$LtX_bPHa)#-in*=HpUpb-F*zS4TfZ1v&BR_Poi!6MGdmD&y;sm??io2@u_rbfDO>O>d&F3OQAg_@W zGSw3Lr5-@^QSK+K%kuK^;Go(xLj@1E7V$rYRx5lpFC>{7E@&+k8@STOPNHW)I;COO zi{96LB{$=zD&Z(uORi*!>^8sA&}MI7CCV?0Csi8AcoOI1x|R2{=-^{N*pBHIi!B)( zq;wv(4VpdE(6>|(5K%Vas^`!kf}*9|VSJv$>?=Pmj-?J5%<#hB;Oc7W=~y((NowZE zbG%QQM3OW4*9PsDHS(CuVsxVaq?E;c7iLTV;QmD2iD>ivWn5>h>sTxi9I^6cndn13 zS1rRt`ii81@U)2S>$w!oYV^+zmN&3-6m@AfnTqyS^Co5*x=PmW#^AZH1W1ZWX?>NQ z`{$DLdHyZXyN5XIM?1o;9+Qg%uD4&#;3qdX4Am=VFWGO=HR8-`nZjZ&G&y()lg?kk z5eF$6j$x`xzZ>hg^q5LXcXtvoWzu6*ybW!NER{cxA$M_kv(v6Pf%8Uw*q^CRjk|qv zxX{O)s3THNXqOgr&{k4DD+Jx-{i1fD3K0F2_L<%gyp{zy<Q@1Y3d=+v1r+cd4N zP`!IZunZZn@VIRV)ZZa0dx;|igmRqFcC%Jm<|*yC7qQmPpcFt1O-cOY@oN_19)Z7f)$mPrC7iPO{c=H z3eKZ^Qs;BppZhu=a*0g4@%d|ydB=hYIocP9@VU+UPpS92m63EYYXk0{tAFMsx?7r# z(`C#^E=~xh3x{Y8;`bN?_|8_43@r`3IeRh{0J7r;D4rk-E*{=kcn9hNQ{T91OiQuu zPn$N4McnGmEcKs@Qwv3D|EyXrbL%MDh~`RLK&xHY+{lmT=01FYwtP~5|EXka<+4q4 z18dMr(C}e970^6*^POp&RU)@v6^xDeX~2$brIACy=~?wd9S7({D$f`GoZV29xKaL$ z7}7RI=SBroRYDbc>?@YJ0vjBVcNAo+9&U+QmYJ7DmsVqH2J^UmD65)=DOj~|A;Y8$^FqF|l?eZrxpT8>P+Ng#H}CtFvly!hh3 zA;&8Va8Nc^v}&NIPUKQL)`voD$}&f&BK7fF)%+SeCFHWKiIO&_>Jy%fOeIiPAbF-f z%N}OMk$mi?H1b`dV0q$Fl+sw)RAX-U4UVJqxd;yQq8IR*{cr`2!ddz;@-`O_QZE8E zvuGQFUIQNP-lgr|UMT8_YE7qMm6u+80vz6@?fYx4E?UbjhWSK|jOP6}J%47r=Eg)W zerSE`f^@!DtY<+KYc!XcX*Iks6~0kqDe3a3s&=7YR2>0MOE(`V{pf5vDD4EZkmt7BwYyZWA=y8@U7IW$Oh}O{KF%V8TViQI?%3!%O%Q-t+}xij{DgJtK5SOmquT+0 zv@qk{6dG}AC1qZk;zLO%oI8&k{9X4-(Hawt=fE08(Azda>;hcc%#9%rC3tHHzr_B^ z*zXl!@i$A-Am3SP-=1s<@Fe8vK96%s<6Z<*L zVLiCR0~WFAn+q&D6xfLomZa$w4BHF|&US-^ZQ3Y>wLyUd{Ifk1hKrwr>)&gJ2Js!90BG1?$xWsID;^OdE_Wn)FN1$^GHn%j86!6g>4*Dl@a=uJ7=K zZ%=0(mtdji6ZZ9;9^#}oWq6Au4kR>P#xG*z0dEf{agNR>T6y!>j z>&n3E@(*;$ypx$X{;}FJ?JzukO|nnO&n`s@=#@`EMfC{!G5thQ7}=Uwx-NrNR0}2F zUxWx)!K%1m{PJa3L?3Y$#6obML}9Q#x87A%e0Aqr4Uf?^ zjPZU5f+&|cdZSLOTT;lyGTv=W-u9Y_!x${p2^;EsLGTBTx}4LS`%GUe2WhR)W=%Hz zCgSZh1SNSgZ%`P524-p0FuYMfJ6^t{_-&7&3scLfgut*=<^fQkR1^3@1Ezu1{vLE8 z^&y%o0p~ikd2=rf1lNWbM?Kz9#r1uzovx2cCgUg4bU+VIsWf;fr}T#a`MPO&@py98 zpbLU;!{?m_>+j2xc`5-3NQ=gy;Xji3`@e1IYe7_>@Hru7XbMRA0fOZyJ5z9=;xpjz z9fxHKXQ?{mvajz-Tz1pY+Sm#sBI#(~BIB}xez{{d)(Y>FgVM=!JMHVuyXF~MNtf_$ z-lb3baU7&ZeYz^;kqHnTks5}&v47!o+S)B`sfO=ou0Vs`pr|UbIQ?-X9gaB*T}h&` zUsbdh3#tRuDfRk#;y`;!t`OSuOIYDp7h^Fihf8uMu`tLFBgYs*;33=+O*kpK79@2)3$p}`<4zTH_udC@xzx~ilH32AOtEmsRjH%6D z($RjU+kuIr@B4G8bL3nOw0!i;RLkrUm>uym8=x4-A! z`^dEoEix#bl=A)8X8jfuA&yz7Psn9rgEL1UlzmEPJ7O$|KZ*L|qJ)>8TChk) zSs#SXjG+bTf!(l=PteKS;0zRD2m|4I$a#rn@4f!ztox1jZhfe*8T9_u$0GS?Ws z0^9Pu3edeGjHE)6^_O%~r7w3Mlk}~dQ8>Pf+G`dl+v<*~?R+g$=lGCu#nfl7$#|GK zr&n8)MN8?x?Bmm+7SVs@AY0I(9HfmKLd1-*&m&=pWM%nt@q0d$$8%wQ{YvDSu*=RL zX5<}djxKev?4^KG=i#$E@gW^t2HD%+@Jm?%Zn_{Zla=8q?4Ax~0#TJ_h|in#nIT1I z@-!cVXf?yQLK94x&GdA9KE>!FS~!W5#%ux7R0JVymIiF%6bky0^LwJ}m$Vzpjtn!& z4k(j=N@d(LR?)l7Ns0_{(7`D$fnye=!k`kNR40t7b8&C16;MrR>4X3nOiRSY zLq~jHz!s(nxuYNc=Bj%jE9jbiC||Uq4sSFB-M!N@#gEC{v={DoQXT)g<5tYGvE!pe zt;zo-p#82kmiH#Db-M79u>GegzZx@~-U{ejxx{=#>+iM`^^tXy0^UoSzTcgZ=r*=D zH%jg}jNCGZKB{~zJeTV1hf9VGAaFH}w}eWa6BmMcl}|MN;%v{UbGQx<3lj9>L%-Y6 z-M5okH-V@l_38FGhD9!0obi%W2vydC%W1cH2>JFfOEWs@^^~nnsF!v^`?NnCJER~B zVW;xLDS;k+gZJdD6cQ+p9Io|5K6-r--DU7%=IFE3s{)z{OXEKS8*0IjB}8+@GWfqR zRxQP4;8&5^WXFUNLsI+)s|i7n3e7!WNy4a06)tJtTj+P{QPL( z!bGp(OWq;?tCvOC@Q0Sf;di-!_GmRo<3OOV)O961)ACt*xO;lFBKOC9L)!mv@ z{5vCo%=JtrATvF)6p-bjmI;1rIgAO0y ztd-M&-RDt-`rYhjZON`}#CY$?AdSM3(kPlu>IKw(j~|LRijPmYNcq|SR@eb?><%84 ziSLL_f4H_P!1=Tk?aoxQP;3?65>3B6OM6^yl|Lh%X(?;Mrh>N&(KStx0XEKk3emha z`hfs_J3(|A(RH*#Oa`W5_e$(oNQA!#x+*kccbrCVjOd9l?F3h# z^KjC;s5JU#dTGY(_!x(QGb91%5^JwkPh5x=d*Tm!_ULj3mQ-45^h7)&>6HZbp1~o& z`~qSXdZaeFr@^nt4a$e9X1$vJF(+Vl{2^0jKL``Jr;;e<6`B7sJv^=7Ep1+-4lg>N zI$favy(>gr;)v2p)oULJPt!ux8B6V1c!D{&I2Z*0Rju%T1r zWbIcg_Wr5jnhZYNvztlI2b*m-^WC1$=v8IYZpR8q*IG!HU)S+YYz>qeyzj$OQQ8%>!6X!5=%2%Oz&u5t)X^eK`ui_;>;%t2&}8H;wQ+W=PC z;Cz|Vi0S^#ti@A1m|STCx*sSb5_GrS`EiiENUYx3kEK%jCusPzjHn-Z)5zZ>7+<)dT*Wt(ZX&+ScdNL|*GkC89P?!15(Uc`s&{y~z53rjHIeU@1{BOi1nLqW z5-(wL-RkU?_Kl&cKbc1qz>5 z=JuJ(n%@o`+SI@Awee#G%P->==FQcYX`Yo8*W-2V6KXK@^8g7~+TDodczjsC&w)d9 zMy%MTFjeV8-%}7h9=Ojf#Tm5^BI@2c{T+6@cRA`)esk#?8&m z#>2}+0p#Ijruy&9<|CoXe24NBK{?m>V$jinDcyE=9hmVb)3;3U2{xOH-22&2gihz%X zV12P^@qdXh{HV)o@z_9)kF#k`t z+(0fiZeBjH$`~vTBq!K%3|5ikKO#?xA4tK;!SOFPDNZi#_d6hXatxN}eFAwj2Kx<) zhY##O4r>Yd?>?F)^KgK3noB=BLo{?!K$G0{2RFJT7M%0{Obx< z4-(KsbPX#9`5tU!VsN5Og*ULxIPW3yUrr;D;7Y-)SFmJYCQLYzCI@7=JSa%uUjrW~ zAn!lkuz~-+82{~c0)jEn;3)rkMFy{?52!f2|3IbqZ_at&#}o~Y;;(mh zu&O8=Eh_N8fWNc#4qO+C7tpjJ3Mc%Iyy+cz2HJlE{S$mH@}F+ImEi)Rz_m7T(%?un zIF`TJ_5Ko!&HH~r=KY_LQUBT#f;rUTF#j8P-haTqd*^E^QHKLSg42}YP{530aNJEK zns5Y|f0aW1i+d9*xLok4+JE*%=rf!L)O!H@L&2jB9P58l!1sSq!1rGi{4)Tk;CFjM zaE>h;1}g7=k?|g@|B%5402A85O~DyZ@bFRSHJ#YOVf+n=S9>@yC@y}mn8W+AQyp)8 zoPowu=ZsX8t!5D38e1dw8jm>*$a%;6zF ziK)YcD?nPfQZl9W=^K?c3%5PlbndLRd7ho!-RB=1i2Rw=DjI({EF(nY@fYaZblL-1 znVbKpsFR;y{5)VNA?P@CsKH$C2l5lbIlJYEN>LJ%NqPt|#d9H;vyLVL=N8o&F*%PU z{Qz}meP@3S0Y492e_j)h+`1p9o41zxBvqfO33UTa#jg!%1>CQ0%;XVw#J~w;8{O;J+V)_yEo4F&|f5ho$o>&-HTKl_oxio@SA@UZZ$cT%+F_?Hq464NeWMkB_O< zszS~WjPQ1@4>?w$6OKO_fpXr$J(o%Sk27!i1iYVGAHtP);*=1J31{UGp=G7Veuxz8 zDGw)pO_Q5SMB<4{Q)0~#$rJe@k}Fauk}pz(r)H#Vq$*cjRa`hbKg(sq-w>oLQ=(Q@ zJU2^Z!`cx07^bUapTk|OFl%Xpe8XBOW33`soH@%To4%yr|LG*R7nF!rD0fnLUF@GI z(vZ!SgThEXoWhkW&j=XKsLerBUYyl9bbJ=}<1_+yfE~H0{rYnWF#%LoADtOvp&Ixt zL}FGH{;=#kbK5^~S6N5QuqlalWpTYgDn;D|ih_+8v>6wu5v100%>Z~4 z_a^-_spMm`Svn$DpsCSpOMl>qaq?aHtxmaW%5)}rw8$WKC6+ESAT+aXe)Kja6WD5f zyKsDgo+)~qQs*`Pou54s9FZK6AxU9_|6*2osejkJ==!GUI~Aw?lj%Ft4U^Yey!X`A z@Sm$a$5eKMoTeOev7Vq?SVz&cx2eOpQc=7ByN8QbCDR2hkod6;Ll1u~L7!x^H3n!Q zN{g{FZ}Wmb%#8=<&yK+en_Ov_trKghK+f|9&pe53HJnvMRbhu&BC0k8-#2sDF34R{ zhNM{tS;Dw{5FarGfA{TB{ z>f*_8De*Ns^iE8qS5;xtz5OfYz4tJtNvPJ8L*o(fN>4%TT!^#P8n|1bkOrf+ghehp zvbcP3{%X6;u_*!&oa*+E76>k}Y7Zvm5=JxQC{qro*~6 zt0B5Jc6B)0+UR%}V2UjuX%799+>K*7lSu~zNRxEI7}|qhFhK*xOF^C_$!LB7C8FS7 z%>#{fn5oCrSQ^^c9(evy6{HzKZ_ZqO!K#R*_=nEKjHqbcbmpNKKa9^Y?5Cr8SQz(x z_YYfrDIo{h0op7dBTEwuSk9XDaO&FwkmDX{ln5E}00j#r9d0}Ya#TtI|)#_FB9E4p{KkMrCm=wWkRT+;}|=ZvJTFR<~4fxM>y3`w|F{ zuDYG|YjC^NPctU3>KI(E?Et?|;q8z|px9htsDq*5kUUrEfOuS_kjV)@lCSd~&P=u! zeOCG;Jij7dk=#&(bxse?wtvM5rs1UFWneg0zWP}o_KgOOl;Cn8jF~Qc?c|)+**Z0@ zR#@(XuBlr@7fXL2$;objF&vGccEXwD3K(wgXjhPDX^jVQ0$7=uX;~Q`WOZ~=LEI3p zPGiVhdD7V937dgH3!z(mU-@h1fN0KD70neCVP#^sInH&SiPJV(I|x#GTLtypfsyuA z?YD1k;?2YaUt%jFoOf!l;p5UtC0l)AZj^D-Hp4!$tNCHIbrEyh-`aEuOqO`I#ZY-% zIvgi9qlp2y%{3D>5-sK=06|5*ptIv~$?ozGZ5sV{6gp+TqZXE171zXz^P^!Fen7=v zh`skD5Un?e=RiOv_fy6k-g7i>qW0Ba%awioZ zH}H6$auO=RCi`em2dwqBD%|wR3BS@xOH)hJYL%j?Nt}4KEc2+s1*HoSv_jQRi$J_p z!1iSyRgfurs&Asj(4_|R8;j!zkf+bMW9WPusJI))cSs1<(f*`0XSEuH_7m58wQ9U> z=rkU2Kd2@|1--o!ZYmVJTv&ga(VTOo-u0m74l;0T@13n z95s`)>JeMwJQd=aOt4He$n0l!Zx{98_sJM5htJ!&ktyBS%@Fk46nEwz1uOQPPg;%T z%Gg<`=2_RS=kxjcD?R7?hxiSv?y9qlMyUUR#iRns;)gr0VE@F~h2MNqhtxgFq;EjGb z3bU4@zBH)K`E6f;@iqRph;e@V(Fcv9 z@?W|?m~5*TE9f3sV^8v$bdPKUY-gT-Ha#j<**M0mspoYhZoW}P1cXr=Io0?>ydVBx zI)ob$;Ck9*+<1t`PX?(D*c{m*$2-;q-&&3*cZE?%Rf{fi&)0TVPk%zHaH4K%c|HGw z$D#{0zTq(rKyN;$`>Vpb~|JESq$cK?0yc|RyFzcx{FKoR8xzMOXnZqxS zI}b5*3P$~#c4HR)Kc0IO1VKsJQK7BwDTK%2FC~_eziIIr0?gGI!)xnnnR#~cPrCq} zlxZmwY@xW-eLA2|wr6ZgsM=^FNZhB#;`X|6`u!WM*9K)B5!w=#tOhXNU8#yCS%{T1 zlD-{rLi-r|jEHxTyys&GEkv3aYAA&Wve=Po$Xr!>7W$M0DsoG6ElG=Hy(Y360g$)P zKU0+79uO}mu1#(IV7-ou-jjf#cUiTM3+7lIGXkM>Yw$qqAchwyKe7w@Y*mYUr?Sg* zl@(z5oqR9H5{jg!rEm)xw9`y$f6gG)`hJ@T#qD_rLD9uo=h*C{IE~M|x=RU~E=HTa zw-z;Y4ONDWmYBD^H3JssJd|sjG&($a+`R}LkVAwa5&O*?)G9 z2oLeM@wWqJ$?ChRCmZKV81Kp4Bs}}u%f>V+6hcV@bvHGuX9){qFK_n_>7q<%?cCQ| z4M5-~s<)9V9^LvghcnLr8E)B&gElXkXI$OXMorN85jc9E7Qc>ZVpGgn&T8gG?&X}i z?b_RJHuufg_kanC)k1u9pk}*nKYVgar$WmzqXxdQyODwvUQG|$|LmmK9C4-}Up5Cl zJ8`qqVZ4m1^U-yV)=eM8VTTF zKp$lMD&{%jsd!A*bLS)hzZ__GLDJ=mt~zGmRfK}h93S!q?6%mGoD!Z)rDGQ7%e+~L z(OA%c3P)(wPJc@&LHo&UUHj2m^wO>BSaIetE<(J!2xftrFd5F-u)RNSC@(|HTbRwT zUv_aoyTwlYnMkxd4i_~QmyZo?tL^#wlPYL;!1;pd^0RfI-7|J={%pqv*VP4A8lx5% zj8sob;#ry&Z2!ZSAIWIK_SQjURvsaKCIH=aHbhv>#1I=SC24`rN$dptRZpxM)P0@x{3>R3+>W3TOQz6e!6FVXcO63?Jqmq&|vklAD%17>y?uh5#VC8 zv_jOzz5TQX=@EO^&oD4FDlbmjCHj3IKWpY#VUJZ%3(^TD&^yX;cpZx=$oawtmO$(S z?^RyZ%yrtLSnVKcj*+l~e0T>i!g5p445!pun8RfeR4vyXx;(eFO|D0vG{8o-DruMd1Mv^=dH6%#{ir%>wKHC{7_eYP}^k z#wEBSam)skUY7WL z4?suF^xt1@GU};1HZ|P2GXV`io8S}REv|doquB?CPbT~}^efBDKR~kfHepNE_JtQI z{A{-Jnm8h4vi14ru9}sysiAR7=_fi@b8&gY%|gF6ussO6obYrTRiES+YSolL66z7D zW=Spb1!LPc(Z^mz2?YkUeT%GXr!*<2Q*5?hTq1EhC5#_zVpOxQP%1(Dn9)z2+`avC z(^GE{`@t411`%e>_EVdc-?sM4sV@e;bJq`lv5QO-_>p$bdi;~dLENOw8=d9pnY@Se zo290fx|TWbw`KgN77s(Tm^=A;MS*X}9wL0Gu;w3k#Ub6+s_2O0&OJ0KsL%E`mN-xE z{iGE6HdoQwF40vusj>+`W^`e1##oy#fxj=5aN7f0KmEK1Bl!%yT7lHej+001VXFaF zM(y71-cd&QZsKwd1`-AmG$&t?0=*Gg6ab|`Lv6v=Sau?BIy2niZS*?3@|qZJ3nkqb;f%Qj1(s|D2A28D(1vm;(eSwx zk;*mET*Wp#$sv8H8ZqS8T7w5EQ6L%K+_qUXsXfe(P0KX~P=H|7ub-4B0+__$QIy#X znB(&NV;6R9sHFxt(n+-Gt6lInh80%`Ed)c`J61J|qB_UV#ckl=121z1jJfn?vK4FF z1f5EzXMIk*x*X{LudnlfhU;k`f0SG`TB7%E1#6e+y^Ah-3t_RMcY@U=h|cO!qIXiX zs3A&3L<6=m09#%2g6SXIUG6h7k!lRAfo4adJcApL^8-$p9<0W9;t6Y zf2nbdME#i4i~NA<$(n?>IVI|6Qi~o=(s>H(yde^1->`F?{gZT$Y@9Mf?|3%+w>DbG zk329#!KHRH@S^^rv(yA)Ml|FmU)j_#{dvShAHyW_>-Qd&UdZN;q}!o5&t1s89z{Y7 zUX~M61jYU2GhpV(!x76+LKu+aRI5F$y@B)(go*72`*e(;c>1V>LUgw3WWx)$zN|A} zG!?IX^I4Eep?NW*ra24$@^-*!Ql|IVFZfg-S*vD_c{A-UG5?8 zh5s2vCgAuf@3MZD53vi~LgMAsynY*~q5Bv`3=J6bCC>6*{r;eB%x<*Ai*{>OZIk?* z<6T&Vy{qPKA8J>r;O!U7IeSL;i9OYAHTIPdAKfSIOop{Le@lF&#i_u2Oe`$NI+jy4 z(Ch}Q!FK3dyyIufa>!HTA?23qc2UxWQS~F4znZx$!Xbgq=O8M)HR0?R3sppQ)RH@U zGn0rkb-5O&JlrOyF@R9fdxx-NX&VDRojxW!xK~M#H;xilm7M>Q};qCgO@zQw* zPgX0)u%#TOU9BE)>shaV)%SCU8S9an8TH%eYy0?ZzYu5dSN>S{x(clJ%^A1w6+>~M zzEu(@4gz&F=c8-m?=dn(>x^@`YIkqdK9IysV!I?zDHytoPEj_vu~xMepkQEsF~*-E zo4pXkCtneZ*}}N8Smpb{up_fJt%J&0zceIDp*r9Il@~9Jr`~BB&)~*bCc$F%fpT$! ztxtm5&N5t`Y>RQ>(|8BuqeSywsCWi)oL`FX7vC?(2LXDB3MJRD`J7bGqH+ehZ4V&= z$5(^o$W8J3WtIKSs-N5sF|*cdrXC9PkF#fGJ$q3V z@eYxYxcI#p6LM|#b)r*5xu9^t+lcr@7T!ozTW)OyjGT(U22Kq^5Bmzdn=WZqwR zOuB_vHZRGnD0DLJJEKjKBsFDTm7Q2x>^~a5%a0;@vBc_b;h8eRFrP){daTk_$0ib0 z+axoFHuYzJhdGeP&-QgcR5^)YvRn96*oiG`Wh@~)Ydar<@4%YqGhpfUx##03_eYx~ z;g7qO1bE2rHy~zeHQb7hW7|hv8vdbS=pp=AjKEGMvQQ1aA>NO74PrxHl5=o4RF>Z; zh*L!MD5;rA$Y=LacX;9gs)LkC;lq9%)BzuR;xk15V0C`F4M-gT_Lf=SmtfwM9a{7o zH9wwOdFpWn&3=Ncb$`Ph+Sx4EXC24Ty0Tm{nnAX?u>JT20G;8ACBC-BzV@I5mH=0m^P3yZ|uV2N(1g<-ey zPM1(Y)KB|*kBJzZDUZc+VHPmk0$Q+?qB>`0Ccfu5@)*sG0wvht_mb`Ab z6P*kd!Ca?a>&m`4VwQmuVS+Aw@xjtPk5~vM>bwurWic=kbnv{1V+@gizyTwnxl*hI*&cJhEQw%{q?G2{tN} z!E?T4BU_F8<42-{yB9hln01^aq{`2HvCF60vDQ0df=d#-b~s0FTMpN2`Jz;CyD3_i zq=;_$*RZtpM5TMu)O37%CTQB{ymE_59f@CaSp}iHDaILFz}xL}+#(islkDDRIqa8S zjvmFa%AEyRa0RxD_hDd_HU+phBo849yPy|>NYt0=;U*Bv^;GCrA-A9TpwvA#ODSpj zCaxyG{YQ+FmWU#NBPW8*=4Z=1f~9I=DaX$=^2@??LVAb3d6-gC#5gTGQE@;_ygb;E zu~0PMc!WB5Qw}-UfBJN$&mv!u_kp^iQJc>8>67AJPW5qalGo0uS+{dn4%L%T zbTzm(u^h%{os-iTXH%2K7$Yu?8Lr2Zzn23@yCeCsnxDj+av}qhC1fqxcck;y2yl|m z`SL!Sw?;!uwko!KD>?i>c+ceFP!(!~XUESh%v+CU6#6VFAIlX;mq=You75&BLE>7~ zxxDp)1Z*C#Cbe0~t>)Wd1n5klZdTe<9WC}J=5(KS|BT<7e>T#7PQ*~t%Qz1wk_s7Y zT-wEWJ_zm{EiP9AVXoWA&sRT2%Q}j1(OBA&NHPyI+N8irp66Up!V)#>&pC+sG*7sO&T|FHUM3tHtqw-qQBZW!J!4`h{YaN3 z{wW`;p88zSF*7G~$dH`Yul(+iNR{C26x*2$<6QTovz%ygzx%3XD1*JG2X1cB!()n0e6;VJDF!NY7@AM{#v*Ei7ym+7iC3g|?inXp% zX823AS1iE7h*=W(V1CSXATe1AH}LZx*N(el+vVL{^?vqFWT*>?KGh2o&yXhT6v)`gj{Cw&ks3_x!&Co zful35bYIfhUd9SCX{avb@+JJ<#CSZ)FS%JJ?q!#*Ij0;M`*BtouJp6L%D;m4Ju1$Y zRkO==*DK1_=b}AlV(~el4n`Qmx|E&stZW~kV9bt>7cs%$DPiF*q z#lv`bx+4hw_b3d}E2p^1zgjtU9KeAo^4Ehd@_#(&BL9yE{a?2g#{q2r;X?8B7Z~CYkxN!_BZ^8InljBUj9jE4x$6-%x3@{ zx+@;A#ssMm&ICa9Ds)c(46ed~>+mg0BA|nLCGbiHo?L~y$$&1i$TcMd)kOGuGJ){T zRo?#rBZ!EiwbOw+XulMIfab3%TvpZ~o#cUhgmgrD`awW^Mil)b1)v69?oBBGJ%}QF zO#x~_*x_j^09CjqNVr_B>=1k~2$Se_e%En0cr*MOPr4QefP%jTyA}vuJzfZXnhLEch-9zK011#vSEP$5ys-FH$T#52u zS(O@{m=4@m{A-{qm7H8`5RU#XE}*9Tf9>?2V$fW0{{Kks>S*PR@C1bd{Aj5RfCYqh ztTI5=_|ait3{yY^U6KJXfzrMVP(vZ~uMDtu1kgYxz$|jz+Ws+ww~GgyA1>f(WsS5& zT7!o8+r<8L(b~nz!_&hG%m^k3M?cI27{EscWdgM9|Emka9pMZ%iYpUecZ{o>|A`8t z+cJSzux+S;W&n+9mjxPCAsZk;GiC$qa^_4>b)*v##M(@m{>kvMyOoy*0#pcQgRp`y zad~(>y843kh;(u0<`af6{kJJ$*A0{;8z4sOWdjso7LT(5X*{rjaCsta5D;{JJU~mM zhP1iL0xt5m8;M>U04@qcuVw>q&i?|l5MX(k;G+MhH;4+N<#GTPmg{mu!T)?mr1KT1 z_wQb0<#ZJl6+lPk0A*lB@aF<-=+i8K@U3MoP=v`L$S(l92jX*Z69^Mj!^K9y$`irF zr62~DSCIeT7twd~fk#(JReU}`M<~JsRYJOZcruBAJz-({CIdDcE+BlpT4&tkn=_p- zS>RX0ZA8ctv!lUI8$Tvjo6Rl9+K}a&NmQY*Or&Z9jRt`vZ_n=6t+F;1>nD}3Bnl_t zJUd^;m#pf1%cFVSjj0toAp^2He+J0zzes)lMQFe@CP}Z4#ZJ$i)XBhx&?4GbC1e|0 zGHsFJX6w%+!&uJQ0%4ii50xm9=sUTQJUJ8s{W4Vd24qMYEOb}|F=sX44(`z!FD1K{ z)Qv4vqKzYyNO^;Fy1)(2t$Hwqcgh!+_#Z@<+E5d^Afn31W(R(~G0LlRjwf?X4-XOW zH!AL|uVn4BE$ic_Ho@a~#a&NIQy5E1HebuUO!%rNlH8)}eQ&|yMy@=nUnx?xR0i2m zlf6e`_2-DI{uiEXnr(`jjZUX8HMh;9<^CH&{*u-xD*SyS8e8vyQ!bZ$GUM6Z0nQOZ zMeV(acDO3#S<9pS!@m_MxR;K7^miEdDtlHGW$^@>JSd9$u$x zdx|zGyIcr!zmUA_2$h}+id&mdo)3PI0@L)&J)p8B!7>=CElO9I6eAb#j)Wv!sJ-kcQoxmq|)~{ zOK>y9=S8h!gatD_A!Z$l#a9pJHzXpO=GP?+PlqaVMkZ>LCWkJdeuk5iyy4}9F~lfm zAZ#QCbSTo7!uhu({R;GUUYY3aclOwraL4Q&+$V3>%q*@%N4Nak^BEe(8F~pJe@$QR ztHVnhfsUaJ=MA$kZK8C)Z>4V@wv<3EE|COT{Yknl3;A-gqpW{+@S^ZCb=3JidPN55 z!fEIJ{&5(O0_f_!4jc5ab` z$~ST&l8sqTsCSHw*p$iULH0wpzO99Ni`|AY>xwrPn6aE8eWM}MaT+}lVxwWu zS{XMlqiMh?LNhGZF-5;Q!&7Viu%-2!Q)?O-eU22UN$Zi_nKOhgue6L7HyNEbaM_NV z8SbmfDz!hpByaF{{~kabi}lHF<9qdw%DJG+!mqezR4Bou1tK&$ria(XnS{8?7km50 z<5f0Q*)*2!kDh9o7;E|R%K9q=XKW$ZB%1)Qo&>ww{&VEQ6Av7Ho@&m0LP6ON z%lM>kzQIso%rfH?3()S5WPc)KOYVu=kcu%goby!oKhm+l(r#^Z{$$sp6fq_68dfG$ zEBZKDh^&(qge|&RbH^VnL=a^Uph~B7GEsSX)Fqf)4gd;JqmN1 z1UKP|iWQ1}t&KLz@s_ocP;XPR5_M9xN=lp4HQGecBxU#@ehoI7;>(+qHJEA5lK`qG zyajZuJ`AMALM-a<>z0~ZODm?9J%e6x`DoG@sOjGN6f7Fn->Q@(o_EgEyysxRH)}|~ zMHN?6+09Es@-+Eza-Ay!uitV2boWI24BG!VSw#K=^|H|7oDgk))r|AxQ)w&Krrzne z=OQzx`b4uIs`Ab|%}FOor{H1l-{-xGexF8tIb4pL8YErduf@ksOAwcf5(qVd*M9Z< z;MbZdOfDBK&_5Oj%^Ga}?ngAG7|B4IA2w{&RI{BFQTSrB@ol<(31Y^Kpn?SuuS#p- zs1@pt6YiiJyoYgluQsN~##o3rn1jXATiY-k_0~;@DVU>)ySHtYRHml5WO-+&ppxAv zXKdU-%6#JllbtF3!;TM;=T`^&Mj6?1v@(sM+8MF8-xrLQcee$mL+jh5_zAwI6a?ga z7MgL`{*5t+-QX_VA=3R(;`t4OD(q36rtDmB9eKm?t_>|E-&^e6<8YRR+T(*HX20WD zYt-wRiKy;~Cz^V#Q1p1EoD_c8P|!@Wbn#R9Huf3T#Uqv0coD8u6}MN7vW}EW@tcIm ztUV*QtiMT=G# zw8d$Axyxi*(OkYw%p1XIGu7r4<;@6Ao$}Yi_{3ArMGhKdCvi1z^w`Ja60G1qZrYDd zY)DIYdtzY3S+_9SXTUZgT7EX@li=hLybv!1T_ofUI%fCW*Qi4n$Ee=& z*^#`0b6l8ox`O>o`y6b3p=E$bkVn{vum7Qd!iFl9`P0o9rz1z>^Cm7k&Z6AZ+o-_M z%kk7)Gm2n+2L17=a^L-c%PHt^OjQc+3Y6ERLAL=W5=}#E$?P>*1XG1Tn4t(6CqR4NpjCRqQcE`IZ zzVm}g1pUro)xG=EI|7ekZ>Q?1#u#eXkeJSBg=->8g#<~XT+&bkH6K}eRNeAQm*UlU zS*@JxZYNe<)Y&a83@W`LsbAUcM+&T1HEXL#HTk=x4XxuY6%)#|X5UV4eifQq`O#(T z7Pd4N#~`UtIP=rqudq>|E1I<^Fmg?JR>7G`v5IuGf7!Sv9L#-9(OLz zAXdZpi2zN@zDh{nbBdD6ThA@HS(#M&<0ztLJs93;?ADEjkEj)8zgmJ?_h7mA^IK%g zN}L5V9(_&DBGxUa63Ds4T5Ii8zFt->DumXn0GLs5a0LK3IDCNgM}Pw=VI~m!Hf4e_ z34lLPtn1?935x%6*{aUAE@13>CIMBwBL5}80To<8P#7jJCn_k%uL#bcWJTrV_!aI6 z$SWxDE5N1x|4DGJ)0qD=;KC9X7DBrbfEY3Tn5v_O4&8^HJ=CmtQ5enripYX;eR-V} z8ixtp23_70`y%gDlDl`ml>6b5QJ@GOSzDQrJs6KBCjdWk(bFny6ld+1L!2uYn}ec< zxu@dLaFPqvwfz)Jp2#6txjuqtB#%f|B{m9=$%fDN6J;=Icw3gIZm7sj*Xs`JlAx?! zydPzh91ISLv^Abso?_}_8?57*YvAeQ7)zP`R@~}gtNd8pmK+~L6>F)|y5J}yqPv#tm7(Lczy!D}AX+DQ>hu}i#BVSA$_h>$VSrI&R`>{ zP^ZBpaI5xqxnkz*$<~{0veFQf(y;wn4DSwG%jb;=5$Spv_f6OFxGO7bHsw(5Bcofy z@2epKkHZi?fv?SLvpzzz6o}XZ-qZF_OcGRm<|(tt618}-u{YxQoaGRD%#P59qMw?H z{L1hVHq{M`Kl^fbz*t)|Sl4fV;E9%~$bb;!+shQ~cj3oLD#AzDH)V!A8~ZlohV2W! zC=@*t19sW!mgDD~u!Ypi3U!rHMRE7(Q`eA*Y&1c~@yL=dnngKc7D?u>gTjU;I4rwU zqPfZSxy$wR%1R9|mvz@l_3p2hrK#I6Wn)C;Ht4uS?ffa& z*`^K5ml{5er96zai#Xf&qMic;PC9=j@4WkTq~rLU%C$pD+9@slyN!(m44D4t_KAC^h#^Zud-zf3klpc%UU1=S8!T(Yqt` Date: Thu, 30 May 2024 07:13:18 -0700 Subject: [PATCH 12/99] Add acknowledgment for reviewers --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index dabcfe52..a2b65a3c 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -134,7 +134,7 @@ It would be also be possible to incorporate automated satellite image subpixel c # Acknowledgments -The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. +The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We would also like to thank Freya Muir and Floris Calkoen for reviewing CoastSeg. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government. From 9501efc0e539d60fabb14c0b1a3e81c90d6e0b60 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 07:31:57 -0700 Subject: [PATCH 13/99] fix minor typos in the paper.md --- paper/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index a2b65a3c..4e62f6e5 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -48,7 +48,7 @@ So-called `instantaneous' SDS workflows, where shorelines are extracted from eac The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original CoastSat codes, addresses the lack of pip or conda installability of CoastSat, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@alley2017pytmd] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. -The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring 2 to 5 adjustments to achieve the best quality shorelines. +The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. `CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction and coastal landcover mapping using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. @@ -126,7 +126,7 @@ As we noted above, we have developed a notebook that carries out an alternative We intend `CoastSeg` to be a collaborative research project and encourage contributions from the SDS community. As well as implementing alternative SDS waterline detection workflows, other improvements that could continue to be made include more (or more refined) outlier detection methods, image filtering procedures, and other basic image pre- or post-processing routines, especially image restoration on degraded imagery [@vitousek2023future]. Such additions would all be possible without major changes to the existing `CoastSeg` toolkit. -Integration of new models for the deep-learning workflow are planned, based on normalized water index (NDWI) and modified non-dimensionalized water index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs [@planet]. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. +Integration of new models for the deep-learning workflow are planned, based on Normalized Difference Water Index (NDWI) and Modified Normalized Difference Water Index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs [@planet]. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. It would be also be possible to incorporate automated satellite image subpixel co-registration in `CoastSeg` using the AROSICS package [@scheffler2017arosics]. This would co-register all available imagery to the nearest-in-time LandSat image. Further, future work could include accounting for the contributions of runup and setup to total water level [@vitousek2023model; @vos2023benchmarking]. In practice, this would merely add/subtract a height from the instantaneous predicted tide, then apply horizontal correction. However, the specific methods used to estimate runup or setup from the prevailing wave field would require integration with observed or hindcasted databases of wave conditions. From 80a3bfc9b8243e9522721634b75734f32f42ee0e Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 07:37:03 -0700 Subject: [PATCH 14/99] update paper.pdf --- paper/paper.pdf | Bin 438122 -> 438249 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 94ea2e335d05497ae823d18ae615fc9d8ba588c0..610a4a7f6bd547fd7b787b24ad1793f8266801ab 100644 GIT binary patch delta 19954 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 bE)D+yfyvTjm%y(E9||xxGYTaoMNdWwR395g From 44e4c9708e54914a5d25478e9996407dadd83064 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 12:03:51 -0700 Subject: [PATCH 15/99] #257 fixed the sayre global reference shorelines reference --- paper/paper.bib | 28 +++++++++++++++++----------- paper/paper.md | 4 +--- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 33c9b949..7ea7f912 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -9,17 +9,23 @@ @article{vos2019coastsat publisher={Elsevier} } -@article{sayre2019global, - author = {Roger Sayre, Suzanne Noble, Sharon Hamann, Rebecca Smith, Dawn Wright, Sean Breyer, Kevin Butler, Keith Van Graafeiland, Charlie Frye, Deniz Karagulle, Dabney Hopkins, Drew Stephens, Kevin Kelly, Zeenatul Basher, Devon Burton, Jill Cress, Karina Atkins, D. Paco Van Sistine, Beverly Friesen, Rebecca Allee, Tom Allen, Peter Aniello, Irawan Asaad, Mark John Costello, Kathy Goodin, Peter Harris, Maria Kavanaugh, Helen Lillis, Eleonora Manca, Frank Muller-Karger, Bjorn Nyberg, Rost Parsons, Justin Saarinen, Jac Steiner and Adam Reed}, - title = {A new 30 meter resolution global shoreline vector and associated global islands database for the development of standardized ecological coastal units}, - journal = {Journal of Operational Oceanography}, - volume = {12}, - number = {sup2}, - pages = {S47--S56}, - year = {2019}, - publisher = {Taylor \& Francis}, - doi = {10.1080/1755876X.2018.1529714} - } +@article{sayreEtAl2019, +author = {Roger Sayre, Suzanne Noble, Sharon Hamann, Rebecca Smith, Dawn Wright, Sean Breyer, Kevin Butler, Keith Van Graafeiland, Charlie Frye, Deniz Karagulle, Dabney Hopkins, Drew Stephens, Kevin Kelly, Zeenatul Basher, Devon Burton, Jill Cress, Karina Atkins, D. Paco Van Sistine, Beverly Friesen, Rebecca Allee, Tom Allen, Peter Aniello, Irawan Asaad, Mark John Costello, Kathy Goodin, Peter Harris, Maria Kavanaugh, Helen Lillis, Eleonora Manca, Frank Muller-Karger, Bjorn Nyberg, Rost Parsons, Justin Saarinen, Jac Steiner and Adam Reed}, +title = {A new 30 meter resolution global shoreline vector and associated global islands database for the development of standardized ecological coastal units}, +journal = {Journal of Operational Oceanography}, +volume = {12}, +number = {sup2}, +pages = {S47--S56}, +year = {2019}, +publisher = {Taylor \& Francis}, +doi = {10.1080/1755876X.2018.1529714}, +URL = { + https://doi.org/10.1080/1755876X.2018.1529714 +}, +eprint = { + https://doi.org/10.1080/1755876X.2018.1529714 +} +} @article{mclean202350, title={50 Years of Beach--Foredune Change on the Southeastern Coast of Australia: Bengello Beach, Moruya, NSW, 1972--2022}, diff --git a/paper/paper.md b/paper/paper.md index 4e62f6e5..1dc628c7 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -134,9 +134,7 @@ It would be also be possible to incorporate automated satellite image subpixel c # Acknowledgments -The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We would also like to thank Freya Muir and Floris Calkoen for reviewing CoastSeg. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. - -Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government. +The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We would also like to thank Freya Muir and Floris Calkoen for reviewing CoastSeg. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government. From 31d26308b702edb84e4ec57a53239773ab7935b7 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 12:08:52 -0700 Subject: [PATCH 16/99] update the draft-pdf action to use actions/upload-artifact@v4 because v3 and below are being deprecated --- .github/workflows/draft-pdf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/draft-pdf.yml b/.github/workflows/draft-pdf.yml index 96e7ab4b..78acde55 100644 --- a/.github/workflows/draft-pdf.yml +++ b/.github/workflows/draft-pdf.yml @@ -14,7 +14,7 @@ jobs: # This should be the path to the paper within your repo. paper-path: paper/paper.md - name: Upload - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v4 with: name: paper # This is the output path where Pandoc will write the compiled From b829ce07e6660103d5d8d6d127f33cebb22a15bd Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 12:12:36 -0700 Subject: [PATCH 17/99] update sayreEtAl2019 reference in paper --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index 1dc628c7..ba0305f5 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -96,7 +96,7 @@ SDS workflows require manipulating various settings in order to extract optimal ### Accessibility -`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines [@sayre2019global] for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. +`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines [@sayreEtAl2019] for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. ### Performance From 79bfb85c44e3edfafd385a35e6b7dfd26497ddc4 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 30 May 2024 12:27:05 -0700 Subject: [PATCH 18/99] final update for the paper.pdf --- paper/paper.pdf | Bin 438249 -> 438216 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index 610a4a7f6bd547fd7b787b24ad1793f8266801ab..cf5734ddd48b6870f11ded366b84a220be2b45ef 100644 GIT binary patch delta 17979 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 Date: Tue, 4 Jun 2024 13:11:51 -0700 Subject: [PATCH 19/99] fix the bounding boxes csv to contains just the transects --- .../transects_bounding_boxes.csv | 46 ------------------- 1 file changed, 46 deletions(-) diff --git a/src/coastseg/bounding_boxes/transects_bounding_boxes.csv b/src/coastseg/bounding_boxes/transects_bounding_boxes.csv index fc86ca91..545a4a51 100644 --- a/src/coastseg/bounding_boxes/transects_bounding_boxes.csv +++ b/src/coastseg/bounding_boxes/transects_bounding_boxes.csv @@ -1,50 +1,4 @@ minx,miny,maxx,maxy,filename --150.1830065197472,69.96416260460134,-143.62176458429434,70.565987902,end_0.geojson -130.4183946635686,30.351503842271626,130.9917449545533,30.565987902,end_100.geojson -119.77477515018732,-19.96863184358668,139.7363185997073,-10.969570133654182,end_102.geojson -119.85964972808478,-37.195822695560665,139.75593959177013,-31.465868520287373,end_103.geojson -139.78932742381224,34.90277421845265,150.50626847141635,46.19469054257408,end_106.geojson -139.85115411910755,-29.431239696021972,153.63719980124932,-10.073173507712685,end_109.geojson -139.756260844,-43.62530996491454,153.37170264388013,-29.434286085968342,end_110.geojson -166.71711819932267,-46.78015548448678,178.53592281529248,-34.41439700122462,end_117.geojson --120.24268251428369,30.566643622060322,-116.02970605563728,34.46683807232662,end_15.geojson --116.0461673756166,16.994577171305092,-100.24417235135758,30.565749380764306,end_16.geojson --160.243739156,19.99021073410251,-155.8278264595395,22.229991499979114,end_2.geojson --81.45628572821009,30.56618865424693,-80.243739156,32.537169677049064,end_22.geojson --100.243739156,14.536708708508899,-80.243739156,30.56573748066073,end_23.geojson --81.32928234165136,-6.569840104405848,-80.24438311661953,-3.509851279022357,end_24.geojson --80.2436909964003,17.675647175283626,-64.56514435586769,27.37079199135045,end_30.geojson --80.243739156,-9.434012098,-78.38994580806128,-6.566944913055762,end_31.geojson --78.39369205279003,-29.347306960580326,-70.05954666202014,-9.434137028165424,end_32.geojson --75.59554403059731,-48.8415813630532,-71.27599580354216,-29.475616822771862,end_33.geojson --75.596120604163,-55.177254083444836,-70.65608297959562,-49.63999503929621,end_34.geojson --124.7432177234117,34.06149996824617,-120.28012542079207,48.51282869105912,end_8.geojson -113.09614376956984,-29.434012098,119.68055368997832,-19.95120578379228,end_95.geojson -114.95470794180217,-35.11789940270483,119.7222088795369,-29.43440492305738,end_96.geojson -130.12129587934479,30.566023330515744,139.6622578579254,35.31760440390647,end_99.geojson --150.18503973405188,69.95935479204437,-143.62179265090097,70.56109072362393,origin_0.geojson -130.42051770695514,30.353186076990095,130.9890920924923,30.565462061704956,origin_100.geojson -119.77314584797821,-19.97226201662349,139.73279582056995,-10.97253738456834,origin_102.geojson -119.86020002949056,-37.19554029451971,139.756260844,-31.46222710406666,origin_103.geojson -139.79003212029863,34.905138236879,150.50340608873572,46.1961941148959,origin_106.geojson -139.84967915598895,-29.431239695878745,153.637958040057,-10.072828341245492,origin_109.geojson -139.75643077489434,-43.62526531783239,153.3700295518761,-29.435912272362938,origin_110.geojson -166.71969381942867,-46.77893278464787,178.53453734185288,-34.41642086344116,origin_117.geojson --120.24228517484524,30.566234309121608,-116.02554315045587,34.47042065389804,origin_15.geojson --116.04209059389828,16.99547631835281,-100.243739156,30.565340069913645,origin_16.geojson --160.2410249073828,19.98966535849902,-155.82400859068568,22.228285015845774,origin_2.geojson --81.4595441524013,30.56606657234657,-80.24433724705302,32.53831972040241,origin_22.geojson --100.24344517897873,14.53942047665741,-80.24376852197545,30.56560102979148,origin_23.geojson --81.32610208086219,-6.568737777334679,-80.243739156,-3.511599886367317,origin_24.geojson --80.243739156,17.68481806284335,-64.57451802283934,27.370772743332537,origin_30.geojson --80.24333923882648,-9.433283248408385,-78.38915472061237,-6.566260339636349,origin_31.geojson --78.3935895544181,-29.345523698492556,-70.05579007012454,-9.434012098,origin_32.geojson --75.59051579321019,-48.844217702286414,-71.2718555283162,-29.476146988242473,origin_33.geojson --75.59725222488706,-55.175420576270824,-70.65714773708831,-49.636418854870435,origin_34.geojson --124.7333792860262,34.05896786119852,-120.27843793179188,48.51014420878072,origin_8.geojson -113.09437196666765,-29.433832705679013,119.68374251165112,-19.95483492609274,origin_95.geojson -114.9561835044463,-35.114600110475614,119.72165035512141,-29.434012098,origin_96.geojson -130.12197616226962,30.565987902,139.65989879403332,35.32053593134126,origin_99.geojson -150.18503973405188,69.95935479204437,-143.62176458429434,70.565987902,Transects_grid_region_0.geojson 130.4183946635686,30.351503842271626,130.9917449545533,30.565987902,Transects_grid_region_100.geojson 119.77314584797821,-19.97226201662349,139.7363185997073,-10.969570133654182,Transects_grid_region_102.geojson From 24d6ba6f217e4df5ae6910f8b3a2c12c47cc3cac Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 6 Jun 2024 08:21:43 -0700 Subject: [PATCH 20/99] replace COPERNICUS/S2 with COPERNICUS/S2_HARMONIZED --- scripts/preview_images_for_dates.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/preview_images_for_dates.py b/scripts/preview_images_for_dates.py index 56dda5d1..801dbbfa 100644 --- a/scripts/preview_images_for_dates.py +++ b/scripts/preview_images_for_dates.py @@ -74,7 +74,7 @@ def get_collection_by_tier( "L7": "LANDSAT/LE07/C02/T1_TOA", "L8": "LANDSAT/LC08/C02/T1_TOA", "L9": "LANDSAT/LC09/C02/T1_TOA", - "S2": "COPERNICUS/S2", + "S2": "COPERNICUS/S2_HARMONIZED", }, 2: { "L5": "LANDSAT/LT05/C02/T2_TOA", From a631569726cd5c6cca3381c75bfb99ea7722b944 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 6 Jun 2024 08:30:56 -0700 Subject: [PATCH 21/99] Squashed commit of the following: commit 4a270e1ba2b8c554d00e2e9d7b1d2e17a754aade Merge: 64bd0b0 d14fce4 Author: Sharon Fitzpatrick Date: Thu Jun 6 07:04:33 2024 -0700 Merge branch 'pr-255' into new_release/1.2.6 commit 64bd0b0d2f6ab286815daf78d19a4ec63ba4a1b4 Merge: 2f84fa2 e7d8e89 Author: Sharon Fitzpatrick Date: Thu Jun 6 07:01:40 2024 -0700 Merge branch 'issue/259/get_kmeans_cluster' into new_release/1.2.6 commit 2f84fa2b120d415fc1dd737ee85174da58b2c315 Merge: c0b2d01 606488f Author: Sharon Fitzpatrick Date: Thu Jun 6 07:01:25 2024 -0700 Merge branch 'temp/issue/patch/251' into new_release/1.2.6 commit e7d8e89e74e39fe35dce948ae6c0d703f1dee3b5 Author: Sharon Fitzpatrick Date: Tue Jun 4 15:38:46 2024 -0700 commit 7ffdf9defc810e12efb1c96f85d01801a956edbe Author: Sharon Fitzpatrick Date: Tue Jun 4 13:11:09 2024 -0700 commit d14fce46b503792a7d77c97ad20b263c18e94e68 Author: Sharon Fitzpatrick Date: Tue Jun 4 12:37:53 2024 -0700 commit 111d8ae7ee1d09054f4fb0f6d1aba3fe46bb6e08 Author: Sharon Fitzpatrick Date: Tue Jun 4 12:14:09 2024 -0700 Fix the issue where ROI IDs were not converted to strings if passed as ints commit 5e5da506f7d6c9dbd06e519d13c1efe10fc29c5e Author: Sharon Fitzpatrick Date: Tue Jun 4 12:13:28 2024 -0700 commit 606488ff2534effdbc4467c4ffbfae9c41175b20 Merge: a366bb0 7a397c9 Author: Sharon Fitzpatrick Date: Wed May 29 19:41:10 2024 -0700 Merge branch 'fix/roi/id_issue' into temp/issue/patch/251 commit 7a397c904881d8b6279f4d165dc4908f6e48dda3 Author: Sharon Fitzpatrick Date: Tue May 21 13:57:55 2024 -0700 fix preview available imagery to accept ids commit 0b68d41d4c691d51100b342962f37315dd7a6c65 Author: Sharon Fitzpatrick Date: Tue May 21 13:57:27 2024 -0700 force roi to turn all incoming ids into type string commit fdcc7373fd2bb1790b0426fce1258c1fe1e44ef4 Author: Floris Calkoen <44444001+FlorisCalkoen@users.noreply.github.com> Date: Tue May 21 22:26:53 2024 +0200 helper function to infer data dir commit 441a06a14a5580c0d53888d6e6db39c44a8089eb Author: floriscalkoen Date: Tue May 21 22:15:46 2024 +0200 helper function to infer data dir commit a366bb0af3cdf5c4f89050d772a15f683d951f5c Author: Sharon Fitzpatrick Date: Tue May 21 13:15:21 2024 -0700 add some docstrings, improve error messages and organize loading from config --- 1_download_imagery.py | 29 +++-- 2_extract_shorelines.py | 7 +- src/coastseg/coastseg_logs.py | 10 +- src/coastseg/coastseg_map.py | 177 ++++++++++++++++++++-------- src/coastseg/common.py | 81 +++++++++++-- src/coastseg/core_utilities.py | 45 +++++++ src/coastseg/download_tide_model.py | 6 +- src/coastseg/downloads.py | 10 +- src/coastseg/exception_handler.py | 6 +- src/coastseg/extracted_shoreline.py | 1 - src/coastseg/file_utilities.py | 15 ++- src/coastseg/filters.py | 20 +++- src/coastseg/map_UI.py | 4 +- src/coastseg/models_UI.py | 8 +- src/coastseg/roi.py | 17 ++- src/coastseg/tide_correction.py | 26 ++-- src/coastseg/transects.py | 4 +- src/coastseg/zoo_model.py | 54 ++++++--- 18 files changed, 377 insertions(+), 143 deletions(-) create mode 100644 src/coastseg/core_utilities.py diff --git a/1_download_imagery.py b/1_download_imagery.py index 1835d6bb..91c49dcd 100644 --- a/1_download_imagery.py +++ b/1_download_imagery.py @@ -1,25 +1,24 @@ +import os from coastseg import coastseg_logs from coastseg.common import initialize_gee from coastseg import coastseg_map -import os +from coastseg import core_utilities +base_dir = core_utilities.get_base_dir() +print(f"The base directory is {base_dir}") +# path to Coastseg/data +data_folder = base_dir / "data" +print(f"The data directory is {data_folder}") # if you get an error here, enter your project id initialize_gee(auth_mode = "localhost",project='') - +# initialize the CoastSeg map coastsegmap=coastseg_map.CoastSeg_Map(create_map=False) -# Get the directory of the current script -script_dir = os.path.dirname(os.path.abspath(__file__)) -print(f"The script directory is {script_dir}") # Construct the path to rois.geojson -rois_path = os.path.join(script_dir, 'examples',"rois.geojson") +rois_path = os.path.join(os.path.abspath(base_dir), 'examples',"rois.geojson") print(f"Loading ROIs from {rois_path}") -# path to Coastseg/data -data_folder = os.path.join(script_dir, 'data') -print(f"The data folder is {data_folder}") - # sample ROI (Region of Interest) file roi = coastsegmap.load_feature_from_file('roi',rois_path) print(roi) @@ -35,10 +34,11 @@ "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. } -# download the imagery for that ROI to the /data folder +# # download the imagery for that ROI to the /data folder coastsegmap.download_imagery(rois=roi.gdf,selected_ids=roi_ids,settings=settings,file_path=data_folder) # name the session where you want to save the extracted shorelines +# session_name = 'sample_session1' session_name = 'sample_session1' coastsegmap.set_session_name(session_name) @@ -47,15 +47,14 @@ # - a minimum beach area of 500 m^2 # - a minimum length of 20 m # - a maximum distance from the reference shoreline of 300 m -coastsegmap.set_settings(min_beach_area=500,min_length_sl=20,max_dist_ref=300) +coastsegmap.set_settings(min_beach_area=100,min_length_sl=20,max_dist_ref=300) # load a shoreline file from the examples folder -script_dir = os.path.dirname(os.path.abspath(__file__)) -shoreline_path = os.path.join(script_dir, 'examples', "shoreline.geojson") +shoreline_path = os.path.join(base_dir, 'examples', "shoreline.geojson") shoreline = coastsegmap.load_feature_from_file('shoreline',shoreline_path) # load transects from the examples folder -transect_path = os.path.join(script_dir,'examples', "transects.geojson") +transect_path = os.path.join(base_dir,'examples', "transects.geojson") transects = coastsegmap.load_feature_from_file('transects', transect_path) # extract the shorelines for the selected ROI and save them to the /sessions/session_name folder diff --git a/2_extract_shorelines.py b/2_extract_shorelines.py index c15b5318..bd64c02c 100644 --- a/2_extract_shorelines.py +++ b/2_extract_shorelines.py @@ -1,6 +1,9 @@ +import os from coastseg import coastseg_logs from coastseg import coastseg_map -import os +from coastseg import core_utilities + +base_dir = core_utilities.get_base_dir() # Run this script only after running 1_download_imagery.py @@ -10,7 +13,7 @@ # Enter the name of the session you want to load here session_name = 'sample_session1' # session_name = 'paper_dfg2_extract_shorelines_buffer_62' -session_path = os.path.join(os.getcwd(),'sessions', session_name) +session_path = os.path.join(os.path.abspath(base_dir),'sessions', session_name) print(f"Loading session from {session_path}") # r"C:\development\doodleverse\coastseg\CoastSeg\sessions\paper_dfg2_extract_shorelines_buffer_62" coastsegmap.load_fresh_session(session_path) diff --git a/src/coastseg/coastseg_logs.py b/src/coastseg/coastseg_logs.py index 1c45383e..4dbcf51a 100644 --- a/src/coastseg/coastseg_logs.py +++ b/src/coastseg/coastseg_logs.py @@ -1,14 +1,14 @@ import os from datetime import datetime import logging - +from coastseg import core_utilities # DESCRIPTION: Sets up a logging system that writes logs to a file named with the current timestamp in a "logs" directory. def prepare_logging(): """create a directory named 'logs' in the current working directory if a 'logs' directory does not exist""" - if not os.path.exists(os.path.abspath(os.path.join(os.getcwd(), "logs"))): - os.mkdir(os.path.abspath(os.path.join(os.getcwd(), "logs"))) + if not os.path.exists(os.path.abspath(os.path.join(core_utilities.get_base_dir(), "logs"))): + os.mkdir(os.path.abspath(os.path.join(core_utilities.get_base_dir(), "logs"))) def clear_default_handlers() -> None: @@ -22,10 +22,10 @@ def create_root_logger(): log_----. This log file will be written to by all the other loggers """ log_filename = "log_" + datetime.now().strftime("%m-%d-%y-%I_%M_%S") + ".txt" - log_file = os.path.abspath(os.path.join(os.getcwd(), "logs", log_filename)) + log_file = os.path.abspath(os.path.join(core_utilities.get_base_dir(), "logs", log_filename)) # configure the logger log_format = "%(asctime)s - %(filename)s at line %(lineno)s in %(funcName)s() - %(levelname)s : %(message)s" - os.path.abspath(os.path.join(os.getcwd(), "logs")) + os.path.abspath(os.path.join(core_utilities.get_base_dir(), "logs")) # Use FileHandler() to log to a file file_handler = logging.FileHandler(log_file, mode="a") formatter = logging.Formatter(log_format) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index db3d59c8..94344926 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -6,7 +6,7 @@ import glob from datetime import datetime from collections import defaultdict -from typing import Collection, Dict, List, Optional, Tuple, Union +from typing import Any, Collection, Dict, List, Optional, Tuple, Union import traceback # Third-party imports @@ -32,6 +32,7 @@ from coastseg import file_utilities from coastseg import geodata_processing from coastseg import tide_correction +from coastseg import core_utilities # Internal/Local imports: modules from coastseg import ( @@ -108,7 +109,17 @@ def clear(self): self.roi_ids_list = [] -def find_shorelines_directory(path, roi_id): +def find_shorelines_directory(path:str, roi_id:str): + """ + Find the directory containing the extracted shorelines geojson file. + + Args: + path (str): The path to search for the extracted shorelines file. + roi_id (str): The ROI ID to check for a directory with the same ID. + + Returns: + str: The path to the directory containing the extracted shorelines file, or None if not found. + """ # List the contents of the specified path contents = os.listdir(path) @@ -611,7 +622,8 @@ def load_session_files(self, dir_path: str,data_path:str="") -> None: if os.path.isdir(dir_path): # ensure coastseg\data location exists if not data_path: - data_path = file_utilities.create_directory(os.getcwd(), "data") + base_path = os.path.abspath(core_utilities.get_base_dir()) + data_path = file_utilities.create_directory(base_path, "data") config_geojson_path = os.path.join(dir_path, "config_gdf.geojson") config_json_path = os.path.join(dir_path, "config.json") # load the config files if they exist @@ -740,7 +752,8 @@ def get_parent_session_name(session_path: str) -> str: return parent_session_name if not data_path: - data_path = file_utilities.create_directory(os.getcwd(), "data") + base_path = os.path.abspath(core_utilities.get_base_dir()) + data_path = file_utilities.create_directory(base_path, "data") # load the session name session_path = os.path.abspath(session_path) @@ -797,27 +810,30 @@ def load_gdf_config(self, filepath: str) -> None: "shoreline_extraction_area": ["geometry"], } + # attempt to load each feature type onto the map from the config_gdf.geojson file for feature_name, columns in feature_types.items(): feature_gdf = self._extract_feature_gdf(gdf, feature_name, columns) - if feature_name == "roi": - exception_handler.check_if_gdf_empty( - feature_gdf, "ROIs", "Cannot load empty ROIs onto map" - ) - if self.rois is None: - self.rois = ROI(rois_gdf=feature_gdf) - self.load_feature_on_map( - feature_name, gdf=feature_gdf, zoom_to_bounds=True - ) - elif self.rois is not None: - # add the new roi to the existing rois - self.rois = self.rois.add_geodataframe(feature_gdf) - # load the new rois onto the map - self.add_feature_on_map(self.rois, feature_name) - else: - # load shorelines, transects, or bbox features onto the map + + # if the feature is not an ROI use the load_feature_on_map method to load it. (eg. shorelines, transects, bbox) + if feature_name != "roi": + self.load_feature_on_map(feature_name, gdf=feature_gdf, zoom_to_bounds=True) + continue + + # at this point assume the feature is an ROI + exception_handler.check_if_gdf_empty(feature_gdf, "ROIs", "Cannot load empty ROIs onto map") + + if self.rois is None: + # if no ROIs exist on the map, create a new ROI object and load the ROIs onto the map + self.rois = ROI(rois_gdf=feature_gdf) self.load_feature_on_map( - feature_name, gdf=feature_gdf, zoom_to_bounds=True + feature_name, gdf=feature_gdf, zoom_to_bounds=True ) + else: + # add the new roi to the existing rois + self.rois = self.rois.add_geodataframe(feature_gdf) + # load the new rois onto the map + self.add_feature_on_map(self.rois, feature_name) + del gdf def _extract_feature_gdf( @@ -857,7 +873,7 @@ def _extract_feature_gdf( return feature_gdf - def preview_available_images(self): + def preview_available_images(self,selected_ids: set = None): """ Preview the available satellite images for selected regions of interest (ROIs). @@ -868,6 +884,10 @@ def preview_available_images(self): satellite. It provides a progress bar using `tqdm` to indicate the processing of each ROI. + + Args: + selected_ids (set, optional): A set of selected ROI IDs. Defaults to None. + These ids are used to select the ROIs to preview available images for. Attributes: rois (object): An object that should contain the ROIs, including a GeoDataFrame (`gdf` attribute) @@ -896,15 +916,23 @@ def preview_available_images(self): """ # Get the months list from the settings or use the default list months_list = self.settings.get("months_list", [1,2,3,4,5,6,7,8,9,10,11,12]) + # check that ROIs exist and one has been clicked exception_handler.check_if_None(self.rois, "ROI") exception_handler.check_if_gdf_empty(self.rois.gdf, "ROI") - exception_handler.check_selected_set(self.selected_set) + + if selected_ids is None: + selected_ids = self.get_selected_ids() + + exception_handler.check_selected_set(selected_ids) + # get the start and end date to check available images start_date, end_date = self.settings["dates"] # for each selected ID return the images available for each site - for roi_id in tqdm(self.selected_set, desc="Processing", leave=False): + for roi_id in tqdm(selected_ids, desc="Processing", leave=False): polygon = common.get_roi_polygon(self.rois.gdf, roi_id) + if polygon is None: + raise Exception(f"ROI ID {roi_id} not found in the ROIs GeoDataFrame") if polygon: # only get the imagery in tier 1 images_count = count_images_in_ee_collection( @@ -971,7 +999,7 @@ def make_roi_settings(self, """ # Get the location where the downloaded imagery will be saved if not file_path: - file_path = os.path.abspath(os.path.join(os.getcwd(), "data")) + file_path = os.path.abspath(os.path.join(core_utilities.get_base_dir(), "data")) # used to uniquely identify the folder where the imagery will be saved # example ID_12_datetime06-05-23__04_16_45 date_str = file_utilities.generate_datestring() @@ -1080,7 +1108,7 @@ def load_json_config(self, filepath: str,) -> dict: """ logger.info(f"Loading json config from filepath: {filepath}") - exception_handler.check_if_None(self.rois) + exception_handler.check_if_None(self.rois,"rois") json_data = file_utilities.read_json_file(filepath, raise_error=True) json_data = json_data or {} @@ -1165,7 +1193,6 @@ def save_config(self, filepath: str = None,selected_only:bool=True,roi_ids:list= if roi_ids is None: roi_ids = self.get_roi_ids() - #@todo should I update the ROI settings with the currently loaded settings? if isinstance(roi_ids, str): roi_ids = [roi_ids] # if the rois do not have any settings then save the currently loaded settings to the ROIs @@ -1173,8 +1200,8 @@ def save_config(self, filepath: str = None,selected_only:bool=True,roi_ids:list= filtered_gdf = self.rois.gdf[self.rois.gdf['id'].isin(roi_ids)] geojson_str = filtered_gdf.to_json() geojson_dict = json.loads(geojson_str) - # filepath_data = filepath or os.path.abspath(os.getcwd()) - filepath_data = filepath or os.path.abspath(os.path.join(os.getcwd(), "data")) + base_path = os.path.abspath(core_utilities.get_base_dir()) + filepath_data = filepath or os.path.abspath(os.path.join(base_path, "data")) roi_settings = common.create_roi_settings( settings, geojson_dict, filepath_data, ) @@ -1238,7 +1265,7 @@ def save_config_files(config_json, config_gdf, path): print("Saved config files for each ROI") else: # if data is not downloaded save to coastseg directory - filepath = os.path.abspath(os.getcwd()) + filepath = os.path.abspath(core_utilities.get_base_dir()) save_config_files(config_json, config_gdf, filepath) print(f"Saved config files for each ROI to {filepath}") @@ -1639,8 +1666,23 @@ def update_settings_with_accurate_epsg(self,gdf:gpd.GeoDataFrame): return self.get_settings() - def validate_transect_inputs(self, settings:dict, roi_ids:list=None): - # ROIs,settings, roi-settings cannot be None or empty + def validate_transect_inputs(self, settings: dict, roi_ids: list = None): + """ + Validates the inputs for generating transects. + + Args: + settings (dict): A dictionary containing the settings for generating transects. + roi_ids (list, optional): A list of ROI IDs. Defaults to None. + + Raises: + ValueError: If any of the following conditions are met: + - The session name is an empty string. + - The ROIs, transects, or extracted shorelines are None. + - The extracted shorelines dictionary is empty. + - The 'along_dist' key is missing from the settings dictionary. + - The roi_ids list is empty. + """ + # ROIs, settings, roi-settings cannot be None or empty exception_handler.check_if_empty_string(self.get_session_name(), "session name") # ROIs, transects, and extracted shorelines must exist exception_handler.check_if_None(self.rois, "ROIs") @@ -1657,6 +1699,23 @@ def validate_transect_inputs(self, settings:dict, roi_ids:list=None): def validate_extract_shoreline_inputs(self,roi_ids:list=None,settings:dict=None): + """ + Validates the inputs required for extracting shorelines. + + Ensures that the required settings are present and that the selected layer contains the selected ROI. + It also validates that the ROIs have been downloaded before by checking for the presence roi_settings and ensures + that the directories for the ROIs exist. + + Args: + roi_ids (list, optional): List of ROI IDs. Defaults to None. + settings (dict, optional): Dictionary of settings. Defaults to None. + + Raises: + Exception: If any of the required inputs are missing or invalid. + + Returns: + None + """ # ROIs,settings, roi-settings cannot be None or empty if not settings: settings = self.get_settings() @@ -1669,7 +1728,6 @@ def validate_extract_shoreline_inputs(self,roi_ids:list=None,settings:dict=None) exception_handler.validate_feature(self.rois, "roi") exception_handler.validate_feature(self.shoreline, "shoreline") exception_handler.validate_feature(self.transects, "transects") - # exception_handler.validate_feature(self.bbox, "bounding box") # ROI settings must not be empty if hasattr(self.rois, "roi_settings"): exception_handler.check_empty_dict(self.rois.roi_settings, "roi_settings") @@ -2003,7 +2061,8 @@ def session_exists(self, session_name: str) -> bool: bool: True if the session exists, False otherwise. """ session_name = self.get_session_name() - session_path = os.path.join(os.getcwd(), "sessions", session_name) + base_path = os.path.abspath(core_utilities.get_base_dir()) + session_path = os.path.join(base_path, "sessions", session_name) if os.path.exists(session_path): # check if session directory contains a directory with the roi_id dirs=os.listdir(session_path) @@ -2494,19 +2553,8 @@ def load_feature_on_map( gdf (gpd.GeoDataFrame, optional): GeoDataFrame containing feature geometry. Defaults to None. """ new_feature = None - - # Load GeoDataFrame if file is provided - if file: - new_feature = self.load_feature_from_file(feature_name,file,**kwargs) - elif isinstance(gdf, gpd.GeoDataFrame): - if gdf.empty: - logger.info(f"No {feature_name} was empty") - return - else: - new_feature = self.load_feature_from_gdf(feature_name, gdf, **kwargs) - else: - # if gdf is None then create the feature from scratch and load a default - new_feature = self.factory.make_feature(self, feature_name, gdf, **kwargs) + # create the feature based on the feature name either from file, gdf or load a default feature(if available) + new_feature = self._get_feature(feature_name, file, gdf, **kwargs) if new_feature is not None: # load the features onto the map @@ -2515,7 +2563,38 @@ def load_feature_on_map( feature_name, **kwargs, ) - + + def _get_feature(self, feature_name: str, file: str="", gdf: gpd.GeoDataFrame= None, **kwargs) -> Any: + """ + Retrieves a feature based on the given feature name, file path, or GeoDataFrame. + + Args: + feature_name (str): The name of the feature to retrieve. + file (str, optional): The file path to load the feature from. Defaults to an empty string. + gdf (gpd.GeoDataFrame, optional): The GeoDataFrame to load the feature from. Defaults to None. + **kwargs: Additional keyword arguments to be passed to the feature loading methods. + + Returns: + Any: The loaded feature. Either an ROI, bbox, shoreline,shoreline extraction area or transects object. + If not feature can be created returns None. + + Raises: + None + + """ + if file: + return self.load_feature_from_file(feature_name,file,**kwargs) + elif isinstance(gdf, gpd.GeoDataFrame): + if gdf.empty: + logger.info(f"No {feature_name} was empty") + return + else: + return self.load_feature_from_gdf(feature_name, gdf, **kwargs) + else: + # if gdf is None then create the feature from scratch by loading a default + return self.factory.make_feature(self, feature_name, gdf, **kwargs) + + def make_feature(self, feature_name: str, gdf: gpd.GeoDataFrame=None, **kwargs) -> Feature: """Creates a new feature of type feature_name from a given GeoDataFrame. If no gdf is provided then a default feature is created if the feature_name is "rois" "shoreline" or "transects" @@ -2606,9 +2685,11 @@ def add_feature_on_map( if new_feature is None: logger.warning(f"No {feature_name} was None") return + print(f"Adding {feature_name} to map") # get on hover and on click handlers for feature on_hover = self.get_on_hover_handler(feature_name) on_click = self.get_on_click_handler(feature_name) + print(f"on_click handler: {on_click}") # if layer name is not given use the layer name of the feature if not layer_name and hasattr(new_feature, "LAYER_NAME"): layer_name = new_feature.LAYER_NAME diff --git a/src/coastseg/common.py b/src/coastseg/common.py index cb540358..8a5f127c 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -8,8 +8,10 @@ import re import shutil import string +import pathlib from datetime import datetime, timezone from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Union +from sysconfig import get_python_version # Third-party imports import ee @@ -18,13 +20,12 @@ import pandas as pd import requests import shapely -from shapely import geometry from area import area -from google.auth import exceptions as google_auth_exceptions from ipyfilechooser import FileChooser -from ipywidgets import HBox, HTML, Layout, ToggleButton, VBox +from ipywidgets import HTML, HBox, Layout, ToggleButton, VBox from PIL import Image from requests.exceptions import SSLError +from shapely import geometry from shapely.geometry import LineString, MultiPoint, Point, Polygon from tqdm.auto import tqdm @@ -32,6 +33,7 @@ from coastseg import exceptions, file_utilities from coastseg.exceptions import InvalidGeometryType from coastseg.validation import find_satellite_in_filename +from coastseg import core_utilities # widget icons from https://fontawesome.com/icons/angle-down?s=solid&f=classic @@ -1309,7 +1311,7 @@ def get_response(url, stream=True): # attempt a standard request then try with an ssl certificate try: response = requests.get(url, stream=stream) - except SSLError as e: + except SSLError: cert_path = get_cert_path_from_config() if cert_path: # if an ssl file was provided use it response = requests.get(url, stream=stream, verify=cert_path) @@ -1927,10 +1929,10 @@ def save_transects( drop_intersection_pts, "raw") # save the raw transect time series which contains the columns ['dates', 'x', 'y', 'transect_id', 'cross_distance','shore_x','shore_y'] to file - filepath = os.path.join(save_location, f"raw_transect_time_series_merged.csv") + filepath = os.path.join(save_location, "raw_transect_time_series_merged.csv") merged_timeseries_df.to_csv(filepath, sep=",",index=False) - filepath = os.path.join(save_location, f"raw_transect_time_series.csv") + filepath = os.path.join(save_location, "raw_transect_time_series.csv") timeseries_df.to_csv(filepath, sep=",",index=False) # save transect settings to file transect_settings = get_transect_settings(settings) @@ -2164,6 +2166,18 @@ def get_most_accurate_epsg(epsg_code: int, polygon: gpd.GeoDataFrame): return epsg_code def create_dir_chooser(callback, title: str = None, starting_directory: str = "data"): + """ + Creates a directory chooser widget. + + Args: + callback: The function to be called when a directory is selected. + title (str, optional): The title of the directory chooser. Defaults to None. + starting_directory (str, optional): The initial directory to be displayed. Defaults to "data". + + Returns: + HBox: The directory chooser widget. + + """ padding = "0px 0px 0px 5px" # upper, right, bottom, left inital_path = os.path.join(os.getcwd(), starting_directory) if not os.path.exists(inital_path): @@ -2799,7 +2813,7 @@ def remove_z_coordinates(geodf: gpd.GeoDataFrame) -> gpd.GeoDataFrame: a new GeoDataFrame is returned with z axis dropped. """ if geodf.empty: - logger.warning(f"Empty GeoDataFrame has no z-axis") + logger.warning("Empty GeoDataFrame has no z-axis") return geodf # if any row has a z coordinate then remove the z_coordinate @@ -3120,11 +3134,12 @@ def get_jpgs_from_data() -> str: """Returns the folder where all jpgs were copied from the data folder in coastseg. This is where the model will save the computed segmentations.""" # Data folder location - src_path = os.path.abspath(os.getcwd() + os.sep + "data") + base_path = os.path.abspath(core_utilities.get_base_dir()) + src_path = os.path.join(base_path, "data") if os.path.exists(src_path): rename_jpgs(src_path) # Create a new folder to hold all the data - location = os.getcwd() + location = base_path name = "segmentation_data" # new folder "segmentation_data_datetime" new_folder = file_utilities.mk_new_dir(name, location) @@ -3287,13 +3302,13 @@ def were_rois_downloaded(roi_settings: dict, roi_ids: list) -> bool: is_downloaded = all_sitenames_exist and all_filepaths_exist # print correct message depending on whether ROIs were downloaded if is_downloaded: - logger.info(f"Located previously downloaded ROI data.") + logger.info("Located previously downloaded ROI data.") elif is_downloaded == False: print( "Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" ) logger.info( - f"Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" + "Did not locate previously downloaded ROI data. To download the imagery for your ROIs click Download Imagery" ) return is_downloaded @@ -3409,3 +3424,47 @@ def rescale_array(dat, mn, mx): m = min(dat.flatten()) M = max(dat.flatten()) return (mx - mn) * (dat - m) / (M - m) + mn + + +def is_interactive() -> bool: + """ + Check if the code is running in a Jupyter Notebook environment. + """ + try: + shell = get_python_version().__class__.__name__ + if shell == "ZMQInteractiveShell": + return True # Jupyter Notebook or JupyterLab + elif shell == "TerminalInteractiveShell": + return False # Terminal or IPython cognsole + else: + return False # Other interactive shells + except NameError: + return False # Not in an interactive shell + + +def get_base_dir(repo_name="CoastSeg") -> pathlib.Path: + """ + Get the project directory path. + + Returns: + A `pathlib.Path` object representing the project directory path. + """ + + def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: + root = cwd.root + proj_dir = cwd + # keep moving up the directory tree until the project directory is found or the root is reached + while proj_dir.name != proj_name: + proj_dir = proj_dir.parent + if str(proj_dir) == root: + msg = "Reached root depth - cannot resolve project path." + raise ValueError(msg) + # return the project directory path for example CoastSeg directory + return proj_dir + + cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) + + proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + return proj_dir + + diff --git a/src/coastseg/core_utilities.py b/src/coastseg/core_utilities.py new file mode 100644 index 00000000..1d8d24be --- /dev/null +++ b/src/coastseg/core_utilities.py @@ -0,0 +1,45 @@ +import pathlib +from sysconfig import get_python_version + + +def is_interactive() -> bool: + """ + Check if the code is running in a Jupyter Notebook environment. + """ + try: + shell = get_python_version().__class__.__name__ + if shell == "ZMQInteractiveShell": + return True # Jupyter Notebook or JupyterLab + elif shell == "TerminalInteractiveShell": + return False # Terminal or IPython console + else: + return False # Other interactive shells + except NameError: + return False # Not in an interactive shell + + +def get_base_dir(repo_name="CoastSeg") -> pathlib.Path: + """ + Get the project directory path. + + Returns: + A `pathlib.Path` object representing the project directory path. + """ + + def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: + root = cwd.root + proj_dir = cwd + # keep moving up the directory tree until the project directory is found or the root is reached + while proj_dir.name != proj_name: + proj_dir = proj_dir.parent + if str(proj_dir) == root: + msg = "Reached root depth - cannot resolve project path." + raise ValueError(msg) + # return the project directory path for example CoastSeg directory + return proj_dir + + cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) + + proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + return proj_dir + diff --git a/src/coastseg/download_tide_model.py b/src/coastseg/download_tide_model.py index f6f0b851..7265167b 100644 --- a/src/coastseg/download_tide_model.py +++ b/src/coastseg/download_tide_model.py @@ -74,7 +74,7 @@ # Local application/library specific imports import pyTMD.utilities from coastseg.file_utilities import progress_bar_context, load_package_resource - +from coastseg import core_utilities # FILE SIZES for files in these files LOAD_TIDE_FILES = { @@ -804,7 +804,7 @@ def ftp_download_file( def download_fes_tides( user="", password="", # New parameter for password - directory=os.path.join(os.getcwd(), "tide_model"), + directory=os.path.join(os.path.abspath(core_utilities.get_base_dir()), "tide_model"), tide=["FES2014"], load=True, currents=False, @@ -832,7 +832,7 @@ def download_fes_tides( def clip_model_to_regions( - tide_model_directory: str = os.path.join(os.getcwd(), "tide_model"), + tide_model_directory: str = os.path.join(os.path.abspath(core_utilities.get_base_dir()), "tide_model"), regions_file: str = "", use_progess_bar: bool = True, ): diff --git a/src/coastseg/downloads.py b/src/coastseg/downloads.py index 2b908392..5d224a6b 100644 --- a/src/coastseg/downloads.py +++ b/src/coastseg/downloads.py @@ -68,7 +68,7 @@ def get_collection_by_tier( "L7": "LANDSAT/LE07/C02/T1_TOA", "L8": "LANDSAT/LC08/C02/T1_TOA", "L9": "LANDSAT/LC09/C02/T1_TOA", - "S2": "COPERNICUS/S2", + "S2": "COPERNICUS/S2_HARMONIZED", }, 2: { "L5": "LANDSAT/LT05/C02/T2_TOA", @@ -98,10 +98,10 @@ def get_collection_by_tier( # Create a filter to select images with system:time_start month in the monthsToKeep list def filter_by_month(month): - return ee.Filter.calendarRange(month, month, 'month') + return ee.Filter.calendarRange(month, month, 'month') # type: ignore month_filters = [filter_by_month(month) for month in months_list] - month_filter = ee.Filter.Or(month_filters) + month_filter = ee.Filter.Or(month_filters) # type: ignore collection = ( ee.ImageCollection(collection_name) .filterBounds(ee.Geometry.Polygon(polygon)) @@ -120,7 +120,7 @@ def count_images_in_ee_collection( end_date: Union[str, datetime], max_cloud_cover: float = 95, satellites: Collection[str] = ("L5", "L7", "L8", "L9", "S2"), - tiers: list[str] = None, + tiers: list[int] = None, months_list:list[int] = None ) -> dict: """ @@ -132,7 +132,7 @@ def count_images_in_ee_collection( end_date (str or datetime): The end date of the time period. If a string, it should be in 'YYYY-MM-DD' format. max_cloud_cover (float, optional): The maximum cloud cover percentage. Images with a cloud cover percentage higher than this will be excluded. Defaults to 99. satellites (Collection[str], optional): A collection of satellite names. The function will return image counts for these satellites. Defaults to ("L5","L7","L8","L9","S2"). - tiers (list[str], optional): A list of tiers. The function will return image counts for these tiers. Defaults to [1,2] + tiers (list[int], optional): A list of tiers. The function will return image counts for these tiers. Defaults to [1,2] months_list (list[int], optional): A list of months to filter the images by. Defaults to None meaning all the months will be included. Returns: dict: A dictionary where the keys are the satellite names and the values are the image counts. diff --git a/src/coastseg/exception_handler.py b/src/coastseg/exception_handler.py index 2f83402e..c4453bcf 100644 --- a/src/coastseg/exception_handler.py +++ b/src/coastseg/exception_handler.py @@ -31,7 +31,7 @@ "Must select at least one ROI on the map to perform this operation" ) SETTINGS_NOT_FOUND = "No settings found. Click save settings." -ROI_NOT_FOUND = "No ROIs found. Click Generate ROIs." +ROI_IS_NONE= "NO ROI found. Try generating a new ROI or loading an ROI from a file." SHORELINE_NOT_FOUND = "No shoreline found. Please load a shoreline on the map first." TRANSECTS_NOT_FOUND = "No transects found. Please load a transects on the map first." NO_ROI_SETTINGS = ("None of the ROIs have been downloaded on this machine or the location where they were downloaded has been moved. Please download the ROIs again.") @@ -246,7 +246,7 @@ def check_if_None(feature, feature_type: str = "", message: str = ""): if feature_type == "shoreline": message = SHORELINE_NOT_FOUND if "roi" in feature_type.lower(): - message = ROI_NOT_FOUND + message = ROI_IS_NONE logger.error(f"{feature_type} is None") raise exceptions.Object_Not_Found(feature_type, message) @@ -266,7 +266,7 @@ def validate_feature(feature, feature_type: str = "", message: str = ""): if "shoreline" in feature_type.lower(): message = SHORELINE_NOT_FOUND if "roi" in feature_type.lower(): - message = ROI_NOT_FOUND + message = ROI_IS_NONE if "transect" in feature_type.lower(): message = TRANSECTS_NOT_FOUND if "bbox" in feature_type.lower(): diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index d80df718..db8503d5 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -106,7 +106,6 @@ def check_percent_no_data_allowed( bool: True if the percentage of no data pixels is less than or equal to the allowed percentage, False otherwise. """ if percent_no_data_allowed is not None: - percent_no_data_allowed = percent_no_data_allowed / 100 num_total_pixels = cloud_mask.shape[0] * cloud_mask.shape[1] percentage_no_data = np.sum(im_nodata) / num_total_pixels if percentage_no_data > percent_no_data_allowed: diff --git a/src/coastseg/file_utilities.py b/src/coastseg/file_utilities.py index f4c0bf77..a9d5a93d 100644 --- a/src/coastseg/file_utilities.py +++ b/src/coastseg/file_utilities.py @@ -17,7 +17,7 @@ import geopandas as gpd import geojson import numpy as np - +from coastseg import core_utilities # Logger setup logger = logging.getLogger(__name__) @@ -68,7 +68,7 @@ def get_ROI_ID_from_session(session_name: str) -> str: Exception: If the session directory does not exist. """ # need to read the ROI ID from the config.json file found in the extracted shoreline session directory - session_directory = os.path.join(os.getcwd(), "sessions", session_name) + session_directory = os.path.join(core_utilities.get_base_dir(), "sessions", session_name) if not os.path.exists(session_directory): raise Exception(f"The session directory {session_directory} does not exist") config_json_location = find_file_recursively( @@ -473,7 +473,7 @@ def get_session_location( - This function assumes the presence of a function named `create_directory`. """ if not (base_path and os.path.exists(base_path)): - base_path = os.getcwd() + base_path = os.path.abspath(core_utilities.get_base_dir()) session_dir = "sessions" session_path = ( os.path.join(base_path, session_dir, session_name) @@ -552,9 +552,9 @@ def create_session_path(session_name: str, ROI_directory_name: str) -> str: Note: - This function assumes the presence of a function named `create_directory` and a logger object named `logger`. - """ - - session_path = os.path.join(os.getcwd(), "sessions", session_name) + """ + base_dir = os.path.abspath(core_utilities.get_base_dir()) + session_path = os.path.join(base_dir, "sessions", session_name) session_path = create_directory(session_path, ROI_directory_name) logger.info(f"session_path: {session_path}") return session_path @@ -573,6 +573,9 @@ def create_directory(file_path: str, name: str) -> str: Raises: OSError: If there was an error creating the new directory. """ + # if file_path is not a path then convert it to a path + if not isinstance(file_path, os.PathLike): + file_path = os.path.abspath(file_path) new_directory = os.path.join(file_path, name) # If the directory named 'name' does not exist, create it if not os.path.exists(new_directory): diff --git a/src/coastseg/filters.py b/src/coastseg/filters.py index b1cc552b..f7ff46b4 100644 --- a/src/coastseg/filters.py +++ b/src/coastseg/filters.py @@ -5,6 +5,7 @@ import os, shutil from sklearn.cluster import KMeans from statistics import mode +import pathlib # Logger setup logger = logging.getLogger(__name__) @@ -26,7 +27,16 @@ def copy_files(files: list, dest_folder: str) -> None: dest_path = os.path.join(dest_folder, os.path.basename(f)) if os.path.exists(os.path.abspath(dest_path)): continue - shutil.copy(f, dest_folder) + # shutil.copy(f, dest_folder) + shutil.move(f, dest_path) + # move the matching png files to the respective folders + parent_dir = os.path.abspath(pathlib.Path(f).parent) + png_file = os.path.basename(f.replace("_res.npz","_predseg.png")) + png_path = os.path.join(parent_dir, png_file) + if os.path.exists(png_path): + dest_path = os.path.join(dest_folder, os.path.basename(png_path)) + shutil.move(png_path, dest_path) + def load_data(f: str) -> np.array: @@ -110,7 +120,10 @@ def measure_rmse(da: xr.DataArray, times: list, timeav: xr.DataArray) -> tuple: def get_kmeans_clusters(input_rmse: np.array, rmse: list) -> tuple: """ - Perform KMeans clustering on RMSE values. + Perform KMeans clustering on RMSE values. + Returns the average rmse score for each cluster as well as the labels for each cluster. + score[0] is the average rmse for the cluster 0. + score [1] is the average rmse for the cluster 1. Args: input_rmse (np.array): Array of RMSE values. @@ -121,6 +134,8 @@ def get_kmeans_clusters(input_rmse: np.array, rmse: list) -> tuple: """ kmeans = KMeans(n_clusters=2, random_state=0, n_init="auto").fit(input_rmse) labels = kmeans.labels_ + # Calculate mean RMSE for each cluster + # the lower the RMSE the better the prediction scores = [ np.mean(np.array(rmse)[labels == 0]), np.mean(np.array(rmse)[labels == 1]), @@ -164,6 +179,7 @@ def handle_files_and_directories( logger.info(f"Copying {len(files_good)} files to {dest_folder_good}") copy_files(files_bad, dest_folder_bad) copy_files(files_good, dest_folder_good) + # get the matching png files and copy them to the respective folders def return_valid_files(files: list) -> list: diff --git a/src/coastseg/map_UI.py b/src/coastseg/map_UI.py index c9e3a0a0..39a2a105 100644 --- a/src/coastseg/map_UI.py +++ b/src/coastseg/map_UI.py @@ -6,6 +6,7 @@ # Internal Python imports from coastseg import exception_handler from coastseg import common +from coastseg import core_utilities from coastseg import file_utilities from coastseg.extract_shorelines_widget import Extracted_Shoreline_widget @@ -27,7 +28,6 @@ from ipywidgets import Output from ipywidgets import FloatText from ipywidgets import Accordion -from ipywidgets import Checkbox from coastseg.settings_UI import Settings_UI @@ -531,7 +531,7 @@ def get_session_selection(self): def enter_clicked(btn): # create the session directory session_name = str(self.session_name_text.value).strip() - session_path = os.path.join(os.getcwd(), "sessions") + session_path = os.path.join( os.path.abspath(core_utilities.get_base_dir()), "sessions") new_session_path = os.path.join(session_path, session_name) if os.path.exists(new_session_path): print(f"Session {session_name} already exists. This session's data will be overwritten.") diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 96454b49..842e8007 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -2,7 +2,7 @@ import os from IPython.display import display -from coastseg import common, file_utilities, settings_UI, zoo_model +from coastseg import common, core_utilities, file_utilities, settings_UI, zoo_model from coastseg.tide_correction import compute_tidal_corrections from coastseg.upload_feature_widget import FileUploader from ipyfilechooser import FileChooser @@ -151,7 +151,8 @@ def get_shoreline_session_selection(self): @output.capture(clear_output=True) def enter_clicked(btn): session_name = str(self.shoreline_session_name_text.value).strip() - session_path = file_utilities.create_directory(os.getcwd(), "sessions") + base_path = os.path.abspath(core_utilities.get_base_dir()) + session_path = file_utilities.create_directory(base_path, "sessions") new_session_path = os.path.join(session_path, session_name) if os.path.exists(new_session_path): print(f"Session {session_name} already exists at {new_session_path} and will be overwritten.") @@ -179,7 +180,8 @@ def get_session_selection(self): @output.capture(clear_output=True) def enter_clicked(btn): session_name = str(self.session_name_text.value).strip() - session_path = file_utilities.create_directory(os.getcwd(), "sessions") + base_path = os.path.abspath(core_utilities.get_base_dir()) + session_path = file_utilities.create_directory(base_path, "sessions") new_session_path = os.path.join(session_path, session_name) if os.path.exists(new_session_path): print(f"Session {session_name} already exists at {new_session_path}") diff --git a/src/coastseg/roi.py b/src/coastseg/roi.py index 7041baca..f68d400a 100644 --- a/src/coastseg/roi.py +++ b/src/coastseg/roi.py @@ -128,7 +128,6 @@ def _initialize_from_roi_gdf(self, rois_gdf: gpd.GeoDataFrame) -> None: None. """ # make sure to perform a CRS check here too - rois_gdf = common.preprocess_geodataframe( rois_gdf, columns_to_keep=["id", "geometry"], @@ -140,6 +139,9 @@ def _initialize_from_roi_gdf(self, rois_gdf: gpd.GeoDataFrame) -> None: ) # make sure all the ids are unique rois_gdf = common.create_unique_ids(rois_gdf, prefix_length=3) + # convert the ids to strings + rois_gdf["id"] = rois_gdf["id"].astype(str) + # get row ids of ROIs with area that's too large drop_ids = common.get_ids_with_invalid_area( rois_gdf, max_area=ROI.MAX_SIZE, min_area=ROI.MIN_SIZE @@ -284,7 +286,18 @@ def get_ids_with_extracted_shorelines(self) -> Union[None, List[str]]: return list(self.get_all_extracted_shorelines().keys()) def add_geodataframe(self, gdf: gpd.GeoDataFrame) -> "ROI": - """Adds the geodataframe to the map""" + """ + Adds a GeoDataFrame to the existing ROI object. + + Args: + gdf (gpd.GeoDataFrame): The GeoDataFrame to be added. + + Returns: + ROI: The updated ROI object. + + Raises: + None + """ # check if geodataframe column has 'id' column and add one if one doesn't exist if "id" not in gdf.columns: gdf["id"] = gdf.index.astype(str).tolist() diff --git a/src/coastseg/tide_correction.py b/src/coastseg/tide_correction.py index d8fa6ab5..0a858385 100644 --- a/src/coastseg/tide_correction.py +++ b/src/coastseg/tide_correction.py @@ -8,6 +8,7 @@ from coastseg import file_utilities from coastseg.file_utilities import progress_bar_context from coastseg.common import merge_dataframes, convert_transect_ids_to_rows,get_seaward_points_gdf,add_lat_lon_to_timeseries +from coastseg import core_utilities # Third-party imports import geopandas as gpd @@ -20,7 +21,6 @@ import pyTMD.spatial import pyTMD.time import pyTMD.utilities -from shapely.geometry import Point # Logger setup logger = logging.getLogger(__name__) @@ -332,7 +332,7 @@ def setup_tide_model_config(model_path: str) -> dict: } -def get_tide_model_location(location: str = "tide_model"): +def get_tide_model_location(location: str="" ): """ Validates the existence of a tide model at the specified location and returns the absolute path of the location. @@ -348,6 +348,11 @@ def get_tide_model_location(location: str = "tide_model"): Raises: Exception: If the tide model does not exist at the specified location. """ + # if not location is provided use the default location of the tide model at CoastSeg/tide_model + if not location: + base_dir = os.path.abspath(core_utilities.get_base_dir()) + location = os.path.join(base_dir,"tide_model") + logger.info(f"Checking if tide model exists at {location}") if validate_tide_model_exists(location): return os.path.abspath(location) @@ -1013,20 +1018,3 @@ def get_location(filename: str, check_parent_directory: bool = False) -> Path: return file_path -def setup_tide_model_config(model_path: str) -> dict: - return { - "DIRECTORY": model_path, - "DELTA_TIME": [0], - "GZIP": False, - "MODEL": "FES2014", - "ATLAS_FORMAT": "netcdf", - "EXTRAPOLATE": True, - "METHOD": "spline", - "TYPE": "drift", - "TIME": "datetime", - "EPSG": 4326, - "FILL_VALUE": np.nan, - "CUTOFF": 10, - "METHOD": "bilinear", - "REGION_DIRECTORY": os.path.join(model_path, "region"), - } diff --git a/src/coastseg/transects.py b/src/coastseg/transects.py index a2f8ee72..07d060fc 100644 --- a/src/coastseg/transects.py +++ b/src/coastseg/transects.py @@ -161,11 +161,13 @@ def load_intersecting_transects( # Create a list to store the GeoDataFrames gdf_list = [] - # Iterate over each transect file and select the transects that intersect with the rectangle for transect_file in transect_files: transects_name = os.path.splitext(transect_file)[0] transect_path = os.path.join(transect_dir, transect_file) + if not os.path.exists(transect_path): + logger.warning("Transect file %s does not exist", transect_path) + continue transects = gpd.read_file(transect_path, bbox=bbox) # keep only those transects that intersect with the rectangle transects = transects[transects.intersects(rectangle.unary_union)] diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 21318e57..5ae6ac90 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -16,6 +16,7 @@ from coastseg import extracted_shoreline from coastseg import geodata_processing from coastseg import file_utilities +from coastseg import core_utilities import geopandas as gpd from osgeo import gdal @@ -722,7 +723,7 @@ def run_model_and_extract_shorelines(self, use_GPU = settings.get('use_GPU', "0") use_otsu = settings.get('otsu', False) use_tta = settings.get('tta', False) - percent_no_data = settings.get('percent_no_data', 50.0) + percent_no_data = settings.get('percent_no_data', 0.5) # make a progress bar to show the progress of the model and shoreline extraction prog_bar = tqdm.auto.tqdm(range(2), @@ -745,7 +746,7 @@ def run_model_and_extract_shorelines(self, prog_bar.set_description_str( desc=f"Ran model now extracting shorelines", refresh=True ) - sessions_path = os.path.join(os.getcwd(), "sessions") + sessions_path = os.path.join(core_utilities.get_base_dir(), "sessions") session_directory = file_utilities.create_directory(sessions_path, session_name) # extract shorelines using the segmented imagery self.extract_shorelines_with_unet( @@ -796,7 +797,10 @@ def extract_shorelines_with_unet( settings = self.get_settings() # create session path to store extracted shorelines and transects - new_session_path = Path(os.getcwd()) / "sessions" / session_name + base_path = core_utilities.get_base_dir() + new_session_path = base_path / 'sessions' / session_name + + new_session_path.mkdir(parents=True, exist_ok=True) # load the ROI settings from the config file @@ -1021,18 +1025,38 @@ def prepare_model(self, model_implementation: str, model_id: str): logger.info(f"self.metadatadict: {self.metadata_dict}") def get_metadatadict( - self, weights_list: list, config_files: list, model_types: list - ) -> dict: - metadatadict = {} - metadatadict["model_weights"] = weights_list - metadatadict["config_files"] = config_files - metadatadict["model_types"] = model_types - return metadatadict + self, weights_list: list, config_files: list, model_types: list + ) -> dict: + """ + Returns a dictionary containing metadata information. + + Args: + weights_list (list): A list of model weights. + config_files (list): A list of configuration files. + model_types (list): A list of model types. + + Returns: + dict: A dictionary containing the metadata information. + """ + metadatadict = {} + metadatadict["model_weights"] = weights_list + metadatadict["config_files"] = config_files + metadatadict["model_types"] = model_types + return metadatadict def get_classes(self, model_directory_path: str): - class_path = os.path.join(model_directory_path, "classes.txt") - classes = common.read_text_file(class_path) - return classes + """ + Retrieves the classes from the specified model directory. + + Args: + model_directory_path (str): The path to the model directory. + + Returns: + list: A list of classes. + """ + class_path = os.path.join(model_directory_path, "classes.txt") + classes = common.read_text_file(class_path) + return classes def run_model( self, @@ -1076,7 +1100,7 @@ def run_model( # create a session session = sessions.Session() - sessions_path = file_utilities.create_directory(os.getcwd(), "sessions") + sessions_path = file_utilities.create_directory(core_utilities.get_base_dir(), "sessions") session_path = file_utilities.create_directory(sessions_path, session_name) session.path = session_path @@ -1143,7 +1167,7 @@ def get_files_for_seg( # filter out files with no data pixels greater than percent_no_data len_before = len(model_ready_files) model_ready_files = filter_no_data_pixels(model_ready_files, percent_no_data) - print(f"From {len_before} files {len_before - len(model_ready_files)} files were filtered out due to no data pixels percentage being greater than {percent_no_data}%.") + print(f"From {len_before} files {len_before - len(model_ready_files)} files were filtered out due to no data pixels percentage being greater than {percent_no_data*100}%.") return model_ready_files From 7f6857ff2ebad104f32d6ed5b2bd0aa717b0774e Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 6 Jun 2024 08:32:07 -0700 Subject: [PATCH 22/99] v1.2.6 #256 #257 #246 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ddd44f48..7e1a5cad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.5" +version = "1.2.6" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From dc98c77019d019b70c1db92d93e45a71fb9f0a57 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 6 Jun 2024 09:03:07 -0700 Subject: [PATCH 23/99] move the PR code to get_base_dir & is_interactive to core_utilities.py --- src/coastseg/common.py | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index eb80cfa6..57e32d5c 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -3390,7 +3390,6 @@ def create_roi_settings( roi_settings[roi_id] = inputs_dict return roi_settings - def scale(matrix: np.ndarray, rows: int, cols: int) -> np.ndarray: """returns resized matrix with shape(rows,cols) for 2d discrete labels @@ -3414,7 +3413,6 @@ def scale(matrix: np.ndarray, rows: int, cols: int) -> np.ndarray: ] return np.array(tmp).reshape((rows, cols)) - def rescale_array(dat, mn, mx): """ rescales an input dat between mn and mx @@ -3425,45 +3423,5 @@ def rescale_array(dat, mn, mx): M = max(dat.flatten()) return (mx - mn) * (dat - m) / (M - m) + mn -def is_interactive() -> bool: - """ - Check if the code is running in a Jupyter Notebook environment. - """ - try: - shell = get_python_version().__class__.__name__ - if shell == "ZMQInteractiveShell": - return True # Jupyter Notebook or JupyterLab - elif shell == "TerminalInteractiveShell": - return False # Terminal or IPython cognsole - else: - return False # Other interactive shells - except NameError: - return False # Not in an interactive shell - - -def get_base_dir(repo_name="CoastSeg") -> pathlib.Path: - """ - Get the project directory path. - - Returns: - A `pathlib.Path` object representing the project directory path. - """ - - def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: - root = cwd.root - proj_dir = cwd - # keep moving up the directory tree until the project directory is found or the root is reached - while proj_dir.name != proj_name: - proj_dir = proj_dir.parent - if str(proj_dir) == root: - msg = "Reached root depth - cannot resolve project path." - raise ValueError(msg) - - return proj_dir - - cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) - - proj_dir = resolve_repo_path(cwd, proj_name=repo_name) - return proj_dir From 455a9d297b8454585948605922eecbf8a1cfe0e1 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 10 Jun 2024 14:55:14 -0700 Subject: [PATCH 24/99] #257 add two references, remove landcover references from paper, and add disclaimer that models are undergoing benchmarking --- paper/paper.bib | 24 ++++++++++++++++++++++++ paper/paper.md | 9 ++++----- 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 7ea7f912..76c887c8 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -9,6 +9,30 @@ @article{vos2019coastsat publisher={Elsevier} } +@article{luijendijk2018state, + title={The State of the World's Beaches}, + author={Luijendijk, Arjen and Hagenaars, Gerben and Ranasinghe, Roshanka and Baart, Fedor and Donchyts, Gennadii and Aarninkhof, Stefan}, + journal={Scientific Reports}, + volume={8}, + number={1}, + pages={6641}, + year={2018}, + publisher={Nature Publishing Group UK London}, + doi={10.1038/s41598-018-24630-6}, + url={https://doi.org/10.1038/s41598-018-24630-6} +} + +@article{pardopascual20121, +title = {Automatic extraction of shorelines from Landsat TM and ETM+ multi-temporal images with subpixel precision}, +journal = {Remote Sensing of Environment}, +volume = {123}, +pages = {1-11}, +year = {2012}, +doi = {https://doi.org/10.1016/j.rse.2012.02.024}, +url = {https://www.sciencedirect.com/science/article/pii/S0034425712001174}, +author = {Josep E. Pardo-Pascual and Jaime Almonacid-Caballer and Luis A. Ruiz and Jesús Palomar-Vázquez} +} + @article{sayreEtAl2019, author = {Roger Sayre, Suzanne Noble, Sharon Hamann, Rebecca Smith, Dawn Wright, Sean Breyer, Kevin Butler, Keith Van Graafeiland, Charlie Frye, Deniz Karagulle, Dabney Hopkins, Drew Stephens, Kevin Kelly, Zeenatul Basher, Devon Burton, Jill Cress, Karina Atkins, D. Paco Van Sistine, Beverly Friesen, Rebecca Allee, Tom Allen, Peter Aniello, Irawan Asaad, Mark John Costello, Kathy Goodin, Peter Harris, Maria Kavanaugh, Helen Lillis, Eleonora Manca, Frank Muller-Karger, Bjorn Nyberg, Rost Parsons, Justin Saarinen, Jac Steiner and Adam Reed}, title = {A new 30 meter resolution global shoreline vector and associated global islands database for the development of standardized ecological coastal units}, diff --git a/paper/paper.md b/paper/paper.md index ba0305f5..caa507f6 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -4,7 +4,6 @@ tags: - Python - shoreline - satellite-derived shoreline - - coastal landcover mapping - coastal change detection - google earth engine - Doodleverse @@ -40,9 +39,9 @@ bibliography: paper.bib # Summary -`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection and coastal landcover mapping workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. +`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. -So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. +So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. `CoastSeg` has three broad aims. The first aim is to be an toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it is the step that identifies the the boundary between sea and land which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. @@ -50,7 +49,7 @@ The second aim of `CoastSeg` is therefore to provide fully functioning SDS imple The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. -`CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction and coastal landcover mapping using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. +`CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. @@ -118,7 +117,7 @@ In contrast, CoastSeg introduces a significant improvement to this process by le # Implementation of an Alternative Deep-Learning-Based SDS Workflow -As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by core functions in `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository, and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo' has become a standard for online trained ML models [@modelzoo; @modelzoo2], and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. The optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript. +As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by core functions in `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository, and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo` has become a standard for online trained ML models [@modelzoo; @modelzoo2], and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. While the optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript, it is important to note that these models have not been thoroughly tested yet. We are currently benchmarking these models across various coastal environments, with the results to be documented in a separate repository and linked to `CoastSeg` upon conclusion. From b160b26a9f1d7c33487d1ad8cba52c7e9ad025aa Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 10 Jun 2024 15:03:44 -0700 Subject: [PATCH 25/99] update pdf with new references, disclaimer about model benchmarking and removed references to landcover mapping --- paper/paper.pdf | Bin 438216 -> 443427 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index cf5734ddd48b6870f11ded366b84a220be2b45ef..b554dc1955491b2b909db03d76c3ea6e57484e67 100644 GIT binary patch delta 78453 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 AN&o-= From 34a9f825677087ff162b251cea5712a9b83f84fd Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 11 Jun 2024 10:00:36 -0700 Subject: [PATCH 26/99] fix broken tests using new custom fixture NamedTemporaryDirectory --- tests/conftest.py | 28 ++++++++++++++++++++++++++++ tests/test_coastseg_map.py | 21 +++++++++++++-------- tests/test_imports.py | 12 ++++++++---- 3 files changed, 49 insertions(+), 12 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index d9fff1b3..6f2832e5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -17,6 +17,34 @@ script_dir = os.path.dirname(os.path.abspath(__file__)) +# create a custom context manager to create a temporary directory & clean it up after use +class NamedTemporaryDirectory: + def __init__(self, name): + self.name = name + self.path = os.path.join(tempfile.gettempdir(), name) + os.makedirs(self.path, exist_ok=True) + + def __enter__(self): + return self.path + + def __exit__(self, exc_type, exc_val, exc_tb): + for root, dirs, files in os.walk(self.path, topdown=False): + for name in files: + os.remove(os.path.join(root, name)) + for name in dirs: + os.rmdir(os.path.join(root, name)) + os.rmdir(self.path) + +@pytest.fixture +def named_temp_dir(request): + # Retrieve the parameter from the request (this would be the name of the temporary directory) + dir_name = request.param + # Setup phase: create the temporary directory with the provided name + with NamedTemporaryDirectory(dir_name) as temp_dir: + yield temp_dir # Provide the directory to the test function + # Teardown phase: cleanup is handled by the NamedTemporaryDirectory context manager + + @pytest.fixture(scope="session") def box_no_shorelines_transects(): geojson = { diff --git a/tests/test_coastseg_map.py b/tests/test_coastseg_map.py index 01e7b6c8..5a5e3de4 100644 --- a/tests/test_coastseg_map.py +++ b/tests/test_coastseg_map.py @@ -1,5 +1,5 @@ import json - +import os from coastseg import shoreline from coastseg import transects from coastseg import roi @@ -166,8 +166,8 @@ def test_save_config(coastseg_map_with_selected_roi_layer, tmp_path): expected_config_geojson_path = tmp_path / "config_gdf.geojson" assert expected_config_geojson_path.exists() - -def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, tmp_path): +@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, named_temp_dir): """test_save_config_empty_roi_settings tests if save configs will save both a config.json and config_gdf.geojson to the filepath directory when coastseg_map's rois do not have roi_settings. It should also create roi_settings for coastseg_map's rois @@ -179,15 +179,20 @@ def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, tm Selected ROIs have id:["17"] tmp_path (WindowsPath): temporary directory """ + # The named_temp_dir fixture created a temporary directory named 'CoastSeg' + tmp_CoastSeg_path = named_temp_dir actual_coastsegmap = coastseg_map_with_selected_roi_layer assert actual_coastsegmap.rois.roi_settings == {} - filepath = str(tmp_path) + if type(tmp_CoastSeg_path) != str: + filepath = str(tmp_CoastSeg_path) + else: + filepath = tmp_CoastSeg_path roi_id = "17" actual_coastsegmap.save_config(filepath) # roi_settings was empty before. save_config should have created it assert actual_coastsegmap.rois.roi_settings != {} - expected_config_json_path = tmp_path / "config.json" - assert expected_config_json_path.exists() + expected_config_json_path = os.path.join( tmp_CoastSeg_path, "config.json") + assert os.path.exists(expected_config_json_path) with open(expected_config_json_path, "r", encoding="utf-8") as input_file: data = json.load(input_file) # test if roi id was saved as key and key fields exist @@ -199,8 +204,8 @@ def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, tm assert "landsat_collection" in data[roi_id] assert "sitename" in data[roi_id] assert "filepath" in data[roi_id] - expected_config_geojson_path = tmp_path / "config_gdf.geojson" - assert expected_config_geojson_path.exists() + expected_config_geojson_path= os.path.join( tmp_CoastSeg_path,"config_gdf.geojson") + assert os.path.exists(expected_config_geojson_path) def test_load_json_config_without_rois(valid_coastseg_map_with_settings, tmp_data_path): diff --git a/tests/test_imports.py b/tests/test_imports.py index 4f4517e7..82adb4c6 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -1,7 +1,7 @@ import os import platform from coastseg.file_utilities import load_package_resource -import importlib +import pytest def test_import_load_package_resource(): @@ -24,9 +24,10 @@ def test_import_bounding_boxes(): except ImportError: assert False, "Failed to import bounding_boxes" - -def test_import_coastseg_logs(): +@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +def test_import_coastseg_logs(named_temp_dir): try: + # The named_temp_dir fixture created a temporary directory named 'CoastSeg' from coastseg import coastseg_logs except ImportError: assert False, "Failed to import coastseg_logs" @@ -53,8 +54,11 @@ def test_import_downloads(): assert False, "Failed to import downloads" -def test_import_download_tide_model(): +# Use the `pytest.mark.parametrize` to pass the parameter to the fixture +@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +def test_import_download_tide_model(named_temp_dir): try: + # The named_temp_dir fixture created a temporary directory named 'CoastSeg' from coastseg import download_tide_model except ImportError: assert False, "Failed to import download_tide_model" From d11b90479a68a7b015fb76f2f3d5b607859c95c8 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 11 Jun 2024 12:09:31 -0700 Subject: [PATCH 27/99] fix broken tests use pathlib to create temp coastseg directory along cwd --- tests/conftest.py | 13 ++++++++----- tests/test_coastseg_map.py | 4 ++-- tests/test_imports.py | 6 +++--- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 6f2832e5..f3348b20 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -19,10 +19,13 @@ # create a custom context manager to create a temporary directory & clean it up after use class NamedTemporaryDirectory: - def __init__(self, name): + def __init__(self, name,base_path=None): + if base_path is None: + base_path = tempfile.gettempdir() self.name = name - self.path = os.path.join(tempfile.gettempdir(), name) + self.path = os.path.join(base_path, name) os.makedirs(self.path, exist_ok=True) + print(f"Created temporary directory: {self.path}") def __enter__(self): return self.path @@ -38,9 +41,9 @@ def __exit__(self, exc_type, exc_val, exc_tb): @pytest.fixture def named_temp_dir(request): # Retrieve the parameter from the request (this would be the name of the temporary directory) - dir_name = request.param - # Setup phase: create the temporary directory with the provided name - with NamedTemporaryDirectory(dir_name) as temp_dir: + dir_name, base_path = request.param + # Setup phase: create the temporary directory with the provided name and base path + with NamedTemporaryDirectory(dir_name, base_path) as temp_dir: yield temp_dir # Provide the directory to the test function # Teardown phase: cleanup is handled by the NamedTemporaryDirectory context manager diff --git a/tests/test_coastseg_map.py b/tests/test_coastseg_map.py index 5a5e3de4..c1b27e12 100644 --- a/tests/test_coastseg_map.py +++ b/tests/test_coastseg_map.py @@ -13,7 +13,7 @@ import geopandas as gpd from ipyleaflet import GeoJSON import platform - +import pathlib def test_imports(): """Test that all the internal coastseg packages are imported correctly""" @@ -166,7 +166,7 @@ def test_save_config(coastseg_map_with_selected_roi_layer, tmp_path): expected_config_geojson_path = tmp_path / "config_gdf.geojson" assert expected_config_geojson_path.exists() -@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, named_temp_dir): """test_save_config_empty_roi_settings tests if save configs will save both a config.json and config_gdf.geojson to the filepath directory when coastseg_map's rois do not have roi_settings. diff --git a/tests/test_imports.py b/tests/test_imports.py index 82adb4c6..d7c19b0a 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -2,7 +2,7 @@ import platform from coastseg.file_utilities import load_package_resource import pytest - +import pathlib def test_import_load_package_resource(): try: @@ -24,7 +24,7 @@ def test_import_bounding_boxes(): except ImportError: assert False, "Failed to import bounding_boxes" -@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) def test_import_coastseg_logs(named_temp_dir): try: # The named_temp_dir fixture created a temporary directory named 'CoastSeg' @@ -55,7 +55,7 @@ def test_import_downloads(): # Use the `pytest.mark.parametrize` to pass the parameter to the fixture -@pytest.mark.parametrize('named_temp_dir', ['CoastSeg'], indirect=True) +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) def test_import_download_tide_model(named_temp_dir): try: # The named_temp_dir fixture created a temporary directory named 'CoastSeg' From 0f6fdfdf030f8958fdc4eb2c984a58e49f581415 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 11 Jun 2024 15:16:14 -0700 Subject: [PATCH 28/99] update core_utilities get_base_dir to work on windows, check for the CoastSeg directory on both the file and cwd paths and create the CoastSeg directory if not --- src/coastseg/core_utilities.py | 42 ++++++++++++++++++++++++++-------- tests/test_coastseg_map.py | 2 +- tests/test_imports.py | 6 ++--- 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/src/coastseg/core_utilities.py b/src/coastseg/core_utilities.py index 1d8d24be..341f6d36 100644 --- a/src/coastseg/core_utilities.py +++ b/src/coastseg/core_utilities.py @@ -1,6 +1,6 @@ import pathlib from sysconfig import get_python_version - +import os def is_interactive() -> bool: """ @@ -26,20 +26,42 @@ def get_base_dir(repo_name="CoastSeg") -> pathlib.Path: A `pathlib.Path` object representing the project directory path. """ - def resolve_repo_path(cwd: pathlib.Path, proj_name: str) -> pathlib.Path: - root = cwd.root + def resolve_repo_path(cwd: pathlib.Path, proj_name: str, max_depth: int = 100) -> pathlib.Path: + root = cwd.anchor if cwd.anchor else cwd.root # Handle root differently for Windows + # print(f"root: {root}") proj_dir = cwd - # keep moving up the directory tree until the project directory is found or the root is reached + depth = 0 + + # Keep moving up the directory tree until the project directory is found or the root is reached while proj_dir.name != proj_name: + if depth > max_depth: + raise ValueError(f"Reached maximum depth - cannot resolve project path. Could not find {proj_name} in {cwd}.") proj_dir = proj_dir.parent + depth += 1 if str(proj_dir) == root: - msg = "Reached root depth - cannot resolve project path." - raise ValueError(msg) - # return the project directory path for example CoastSeg directory + raise ValueError(f"Reached root depth - cannot resolve project path. Could not find {proj_name} in {cwd}.") + + # Return the project directory path, for example, CoastSeg directory return proj_dir - cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) - proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + cwd = pathlib.Path().resolve() if is_interactive() else pathlib.Path(__file__) + try: + proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + except ValueError as e: + try: + # see if where the script is running from contains the project directory CoastSeg + cwd = pathlib.Path(os.getcwd()) + proj_dir = resolve_repo_path(cwd, proj_name=repo_name) + except ValueError as e: + # get the currentq working directory + cwd = os.getcwd() + proj_dir = os.path.join(cwd, repo_name) + # this means it was the first time creating it so print a message + if not os.path.exists(proj_dir): + print(f"Creating {repo_name} because it was not found. Created at {proj_dir}") + os.makedirs(proj_dir, exist_ok=True) + # convert to a pathlib.Path object + proj_dir = pathlib.Path(proj_dir) + return proj_dir - diff --git a/tests/test_coastseg_map.py b/tests/test_coastseg_map.py index c1b27e12..211cc62f 100644 --- a/tests/test_coastseg_map.py +++ b/tests/test_coastseg_map.py @@ -166,7 +166,7 @@ def test_save_config(coastseg_map_with_selected_roi_layer, tmp_path): expected_config_geojson_path = tmp_path / "config_gdf.geojson" assert expected_config_geojson_path.exists() -@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',None)], indirect=True) def test_save_config_empty_roi_settings(coastseg_map_with_selected_roi_layer, named_temp_dir): """test_save_config_empty_roi_settings tests if save configs will save both a config.json and config_gdf.geojson to the filepath directory when coastseg_map's rois do not have roi_settings. diff --git a/tests/test_imports.py b/tests/test_imports.py index d7c19b0a..08ea9388 100644 --- a/tests/test_imports.py +++ b/tests/test_imports.py @@ -24,7 +24,7 @@ def test_import_bounding_boxes(): except ImportError: assert False, "Failed to import bounding_boxes" -@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',None)], indirect=True) def test_import_coastseg_logs(named_temp_dir): try: # The named_temp_dir fixture created a temporary directory named 'CoastSeg' @@ -54,8 +54,8 @@ def test_import_downloads(): assert False, "Failed to import downloads" -# Use the `pytest.mark.parametrize` to pass the parameter to the fixture -@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',str(pathlib.Path(__file__).parent))], indirect=True) +# Use the `pytest.mark.parametrize` to pass the parameter to the fixture # create a temporary directory named 'CoastSeg' +@pytest.mark.parametrize('named_temp_dir', [('CoastSeg',None)], indirect=True) def test_import_download_tide_model(named_temp_dir): try: # The named_temp_dir fixture created a temporary directory named 'CoastSeg' From bc1fc6f0d9a682edbc4cab90084b5e1ab96b4f57 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 11 Jun 2024 15:16:45 -0700 Subject: [PATCH 29/99] v1.2.7 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7e1a5cad..61eefa53 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.6" +version = "1.2.7" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 0f991cc008dfd2bcf321ff44c6d112af433abfcd Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 17 Jun 2024 17:53:05 -0700 Subject: [PATCH 30/99] update the paper to list the coastsat_package improvements --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index caa507f6..a31ee674 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -45,7 +45,7 @@ So-called `instantaneous' SDS workflows, where shorelines are extracted from eac `CoastSeg` has three broad aims. The first aim is to be an toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it is the step that identifies the the boundary between sea and land which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. -The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original CoastSat codes, addresses the lack of pip or conda installability of CoastSat, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@alley2017pytmd] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. +The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@alley2017pytmd] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. From c509a4b9ef0549dbc9bcaf2d9abdcb7349a52ecf Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 17 Jun 2024 18:01:32 -0700 Subject: [PATCH 31/99] #257 update the paper pdf with coastsat_package improvements --- paper/paper.pdf | Bin 443427 -> 444756 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index b554dc1955491b2b909db03d76c3ea6e57484e67..e56f299c57d749ebbfa47b936e2621f1db658a5e 100644 GIT binary patch delta 47305 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ӂ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 From d8a0fd24b4709b1dad00c86ae8c346cddcdc5b58 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 25 Jun 2024 20:23:15 -0700 Subject: [PATCH 32/99] fix DOIs in paper.bib, remove CoastSeg github ref and remove coastsat GitHub reference --- paper/paper.bib | 113 ++++++++++++++++++++++++++++-------------------- paper/paper.md | 4 +- 2 files changed, 69 insertions(+), 48 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 76c887c8..df673b52 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -28,8 +28,8 @@ @article{pardopascual20121 volume = {123}, pages = {1-11}, year = {2012}, -doi = {https://doi.org/10.1016/j.rse.2012.02.024}, -url = {https://www.sciencedirect.com/science/article/pii/S0034425712001174}, +doi = {10.1016/j.rse.2012.02.024}, +url = {https://doi.org/10.1016/j.rse.2012.02.024}, author = {Josep E. Pardo-Pascual and Jaime Almonacid-Caballer and Luis A. Ruiz and Jesús Palomar-Vázquez} } @@ -58,17 +58,11 @@ @article{mclean202350 volume={439}, pages={108850}, year={2023}, + doi = {10.1016/j.geomorph.2023.108850}, + url = {https://doi.org/10.1016/j.geomorph.2023.108850, publisher={Elsevier} } -@misc{CoastSeg, - title={{CoastSat v2.4}}, - author={Fitzpatrick, S. and Buscombe,D. and Lundine, M. and Warrick,J. and Vos, K.}, - year={2024}, - publisher={GitHub}, - howpublished = {\url{https://github.com/kvos/CoastSat/releases/tag/v1.2.5}} - } - @article{vos2023benchmarking, title={Benchmarking satellite-derived shoreline mapping algorithms}, author={Vos, K. and Splinter, K.D. and Palomar-V{\'a}zquez, J. and Pardo-Pascual, J. E. and Almonacid-Caballer, J. and Cabezas-Rabad{\'a}n, C. and Kras, E. C. and Luijendijk, A. P. and Calkoen, F. and Almeida, L. P. and others}, @@ -77,10 +71,11 @@ @article{vos2023benchmarking number={1}, pages={345}, year={2023}, + doi = {10.1038/s43247-023-01001-2}, + url = {https://doi.org/10.1038/s43247-023-01001-2}, publisher={Nature Publishing Group UK London} } - @article{turner2021satellite, title={Satellite optical imagery in Coastal Engineering}, author={Turner, I. L. and Harley, M. D. and Almar, R. and Bergsma, E. W. J.}, @@ -88,7 +83,9 @@ @article{turner2021satellite volume={167}, pages={103919}, year={2021}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.coastaleng.2021.103919}, + url={https://doi.org/10.1016/j.coastaleng.2021.103919} } @article{vos2023pacific, @@ -99,10 +96,11 @@ @article{vos2023pacific number={2}, pages={140--146}, year={2023}, - publisher={Nature Publishing Group UK London} + publisher={Nature Publishing Group UK London}, + doi={10.1038/s41561-022-01117-8}, + url={https://doi.org/10.1038/s41561-022-01117-8} } - @article{castelle2021satellite, title={Satellite-derived shoreline detection at a high-energy meso-macrotidal beach}, author={Castelle, B. and Masselink, G. and Scott, T. and Stokes, C. and Konstantinou, A. and Marieu, V. and Bujan, S.}, @@ -110,18 +108,24 @@ @article{castelle2021satellite volume={383}, pages={107707}, year={2021}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.geomorph.2021.107707}, + url={https://doi.org/10.1016/j.geomorph.2021.107707} } + @article{warrick2023large, title={A Large Sediment Accretion Wave Along a {N}orthern {C}alifornia Littoral Cell}, author={Warrick, J. A. and Vos, K. and Buscombe, D. and Ritchie, A. C. and Curtis, J. A.}, journal={Journal of Geophysical Research: Earth Surface}, pages={e2023JF007135}, year={2023}, - publisher={Wiley Online Library} + publisher={Wiley Online Library}, + doi={10.1029/2023JF007135}, + url={https://doi.org/10.1029/2023JF007135} } + @article{vitousek2023future, title={The future of coastal monitoring through satellite remote sensing}, author={Vitousek, S. and Buscombe, D. and Vos, K. and Barnard, P. L. and Ritchie, A. C. and Warrick, J. A.}, @@ -129,7 +133,9 @@ @article{vitousek2023future volume={1}, pages={e10}, year={2023}, - publisher={Cambridge University Press} + publisher={Cambridge University Press}, + doi={10.1017/cft.2022.4}, + url={https://doi.org/10.1017/cft.2022.4} } @article{vitousek2023model, @@ -138,7 +144,9 @@ @article{vitousek2023model journal={Journal of Geophysical Research: Earth Surface}, pages={e2022JF006936}, year={2023}, - publisher={Wiley Online Library} + publisher={Wiley Online Library}, + doi={10.1029/2022JF006936}, + url={https://doi.org/10.1029/2022JF006936} } @article{vandenhove2024secular, @@ -148,9 +156,12 @@ @article{vandenhove2024secular volume={445}, pages={108972}, year={2024}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.geomorph.2023.108972}, + url={https://doi.org/10.1016/j.geomorph.2023.108972} } + @article{castelle2022primary, title={Primary drivers of multidecadal spatial and temporal patterns of shoreline change derived from optical satellite imagery}, author={Castelle, B. and Ritz, A. and Marieu, V. and Lerma, A. N. and Vandenhove, M.}, @@ -158,7 +169,9 @@ @article{castelle2022primary volume={413}, pages={108360}, year={2022}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.geomorph.2022.108360}, + url={https://doi.org/10.1016/j.geomorph.2022.108360} } @@ -170,6 +183,7 @@ @misc{alley2017pytmd year={2017}, } + @article{lyard2021fes2014, title={{FES2014} global ocean tide atlas: {D}esign and performance}, author={Lyard, F. H. and Allain, D. J. and Cancet, M. and Carrere, L. and Picot, N.}, @@ -178,28 +192,34 @@ @article{lyard2021fes2014 number={3}, pages={615--649}, year={2021}, - publisher={Copernicus GmbH} + publisher={Copernicus GmbH}, + doi={10.5194/os-17-615-2021}, + url={https://doi.org/10.5194/os-17-615-2021} } @article{doherty2022python, - title={{A Python toolkit to monitor sandy shoreline change using high-resolution PlanetScope cubesats}}, + title={A Python toolkit to monitor sandy shoreline change using high-resolution PlanetScope cubesats}, author={Doherty, Y. and Harley, M. D. and Vos, K. and Splinter, K. D.}, journal={Environmental Modelling \& Software}, volume={157}, pages={105512}, year={2022}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.envsoft.2022.105512}, + url={https://doi.org/10.1016/j.envsoft.2022.105512} } @article{scheffler2017arosics, - title={{AROSICS: An automated and robust open-source image co-registration software for multi-sensor satellite data}}, + title={AROSICS: An automated and robust open-source image co-registration software for multi-sensor satellite data}, author={Scheffler, D. and Hollstein, A. and Diedrich, H. and Segl, K. and Hostert, P.}, - journal={Remote sensing}, + journal={Remote Sensing}, volume={9}, number={7}, pages={676}, year={2017}, - publisher={MDPI} + publisher={MDPI}, + doi={10.3390/rs9070676}, + url={https://doi.org/10.3390/rs9070676} } @Misc{planet, @@ -252,24 +272,27 @@ @misc{krause2021dea howpublished = {\url{https://knowledge.dea.ga.gov.au/notebooks/README/}}, } - @article{konstantinou2023satellite, title={Satellite-based shoreline detection along high-energy macrotidal coasts and influence of beach state}, author={Konstantinou, A. and Scott, T. and Masselink, G. and Stokes, K. and Conley, D. and Castelle, B.}, journal={Marine Geology}, pages={107082}, year={2023}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.margeo.2023.107082}, + url={https://doi.org/10.1016/j.margeo.2023.107082} } @article{wu2021leafmap, - title={{Leafmap}: {A P}ython package for interactive mapping and geospatial analysis with minimal coding in a {J}upyter environment}, + title={Leafmap: {A P}ython package for interactive mapping and geospatial analysis with minimal coding in a {J}upyter environment}, author={Wu, Q.}, journal={Journal of Open Source Software}, volume={6}, number={63}, pages={3414}, - year={2021} + year={2021}, + doi={10.21105/joss.03414}, + url={https://doi.org/10.21105/joss.03414} } @article{buscombe2022reproducible, @@ -280,7 +303,9 @@ @article{buscombe2022reproducible number={9}, pages={e2022EA002332}, year={2022}, - publisher={Wiley Online Library} + publisher={Wiley Online Library}, + doi={10.1029/2022EA002332}, + url={https://doi.org/10.1029/2022EA002332} } @article{bishop2021mapping, @@ -290,7 +315,9 @@ @article{bishop2021mapping volume={267}, pages={112734}, year={2021}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.rse.2021.112734}, + url={https://doi.org/10.1016/j.rse.2021.112734} } @misc{modelzoo, @@ -308,16 +335,6 @@ @misc{modelzoo2 }}, } - -@misc{coastsat, - title={{CoastSat v2.4}}, - author={Vos, K.}, - year={2023}, - publisher={GitHub}, - howpublished = {\url{https://github.com/kvos/CoastSat/releases/tag/v2.4}} - } - - @article{garcia2015evaluating, title={Evaluating shoreline identification using optical satellite images}, author={Garcia-Rubio, G. and Huntley, D. and Russell, P.}, @@ -325,15 +342,19 @@ @article{garcia2015evaluating volume={359}, pages={96--105}, year={2015}, - publisher={Elsevier} + publisher={Elsevier}, + doi={10.1016/j.margeo.2014.11.002}, + url={https://doi.org/10.1016/j.margeo.2014.11.002} } @article{almonacid2016evaluation, - title={{Evaluation of annual mean shoreline position deduced from Landsat imagery as a mid-term coastal evolution indicator}}, + title={Evaluation of annual mean shoreline position deduced from Landsat imagery as a mid-term coastal evolution indicator}, author={Almonacid-Caballer, J. and Sanchez-Garcia, E. and Pardo-Pascual, J. E. and Balaguer-Beser, A. A. and Palomar-Vazquez, J.}, journal={Marine Geology}, volume={372}, pages={79--88}, year={2016}, - publisher={Elsevier} -} + publisher={Elsevier}, + doi={10.1016/j.margeo.2015.12.015}, + url={https://doi.org/10.1016/j.margeo.2015.12.015} +} \ No newline at end of file diff --git a/paper/paper.md b/paper/paper.md index a31ee674..b5ad3b03 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -39,7 +39,7 @@ bibliography: paper.bib # Summary -`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. +`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository. So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. @@ -55,7 +55,7 @@ The third and final aim of `CoastSeg` is to implement a method to carry out SDS # Statement of Need -Coastal scientists and resource managers now have access to extensive collections of satellite data spanning more than four decades. However, it's only in recent years that advancements in algorithms, machine learning, and deep learning have enabled the automation of processing this satellite imagery to accurately identify and map shorelines from imagery, a process known as Satellite-Derived Shorelines, or SDS. SDS workflows [@garcia2015evaluating; @almonacid2016evaluation] are gaining rapidly in popularity, and in particular since the publication of the open-source implementation of the `CoastSat` workflow [@coastsat] for instantaneous SDS in 2018 [@vos2019coastsat]. Existing open-source software for SDS often require the user to navigate between platforms (non-reproducible elements), develop custom code, and/or engage in substantial manual effort. +Coastal scientists and resource managers now have access to extensive collections of satellite data spanning more than four decades. However, it's only in recent years that advancements in algorithms, machine learning, and deep learning have enabled the automation of processing this satellite imagery to accurately identify and map shorelines from imagery, a process known as Satellite-Derived Shorelines, or SDS. SDS workflows [@garcia2015evaluating; @almonacid2016evaluation] are gaining rapidly in popularity, and in particular since the publication of the open-source implementation of the `CoastSat` workflow [@vos2019coastsat] for instantaneous SDS in 2018 [@vos2019coastsat]. Existing open-source software for SDS often require the user to navigate between platforms (non-reproducible elements), develop custom code, and/or engage in substantial manual effort. We built CoastSeg with the aim of enhancing the CoastSat workflow. Our design streamlines the entire shoreline extraction process, thus facilitating a more efficient experimental approach to determine the optimal combination of settings to extract the greatest number of accurate shorelines. CoastSeg achieves these improvements through several key advancements: it ensures reproducible sessions for consistent comparison and analysis; introduces additional filtering mechanisms to refine results; and provides an interactive user webmap that allows the users to view the quality of the extracted shorelines. Further, `CoastSeg` has been designed specifically to host alternative SDS workflows, recognizing that it is a nascent field of coastal science, and the optimal methodologies for all coastal environments and sources of imagery are yet to be established. Therefore `CoastSeg` provides a means with which to extract shorelines using multiple methods and adopt the one that most suits their needs, or implement new methods. From 9f906e6199722b88b0c1b5bb045b06fc59bbaea6 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 25 Jun 2024 20:28:08 -0700 Subject: [PATCH 33/99] fix broken mclean reference --- paper/paper.bib | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/paper/paper.bib b/paper/paper.bib index df673b52..35f2c3b8 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -51,6 +51,7 @@ @article{sayreEtAl2019 } } + @article{mclean202350, title={50 Years of Beach--Foredune Change on the Southeastern Coast of Australia: Bengello Beach, Moruya, NSW, 1972--2022}, author={McLean, R. and Thom, B. and Shen, J. and Oliver, T.}, @@ -59,10 +60,11 @@ @article{mclean202350 pages={108850}, year={2023}, doi = {10.1016/j.geomorph.2023.108850}, - url = {https://doi.org/10.1016/j.geomorph.2023.108850, + url = {https://doi.org/10.1016/j.geomorph.2023.108850}, publisher={Elsevier} } + @article{vos2023benchmarking, title={Benchmarking satellite-derived shoreline mapping algorithms}, author={Vos, K. and Splinter, K.D. and Palomar-V{\'a}zquez, J. and Pardo-Pascual, J. E. and Almonacid-Caballer, J. and Cabezas-Rabad{\'a}n, C. and Kras, E. C. and Luijendijk, A. P. and Calkoen, F. and Almeida, L. P. and others}, From 53d821f9940b1e8c299cb16af9a488352f49698c Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 13:28:42 -0700 Subject: [PATCH 34/99] fix remaining references missing DOIs --- paper/paper.bib | 35 ++++++++++++++++++++--------------- paper/paper.md | 2 +- 2 files changed, 21 insertions(+), 16 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 35f2c3b8..b32ac066 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -1,6 +1,6 @@ @article{vos2019coastsat, - title={{CoastSat: A Google Earth Engine-enabled Python toolkit to extract shorelines from publicly available satellite imagery}}, + title={CoastSat: A Google Earth Engine-enabled Python toolkit to extract shorelines from publicly available satellite imagery}, author={Vos, K. and Splinter, K. D. and Harley, M. D. and Simmons, J. A. and Turner, I. L.}, journal={Environmental Modelling \& Software}, volume={122}, @@ -176,16 +176,15 @@ @article{castelle2022primary url={https://doi.org/10.1016/j.geomorph.2022.108360} } - -@misc{alley2017pytmd, - title={py{TMD}: {P}ython based tidal prediction software}, +@misc{tyler_sutterley_2024, + author = {Tyler Sutterley}, + title = {tsutterley/pyTMD: v2.1.1}, + year = 2024, publisher = {Zenodo}, - howpublished = {\url{https://doi.org10.5281/zenodo.5555395}}, - author={Alley, K. and Brunt, K. and Howard, S. and Padman, L. and Siegfried, M. and Sutterly, T.}, - year={2017}, + doi = {10.5281/zenodo.10929240}, + url = {https://doi.org/10.5281/zenodo.10929240}, } - @article{lyard2021fes2014, title={{FES2014} global ocean tide atlas: {D}esign and performance}, author={Lyard, F. H. and Allain, D. J. and Cancet, M. and Carrere, L. and Picot, N.}, @@ -224,12 +223,13 @@ @article{scheffler2017arosics url={https://doi.org/10.3390/rs9070676} } -@Misc{planet, + +@misc{planet, author = {{Planet Labs}}, organization = {Planet Labs}, title = {{Planet Application Program Interface: In Space for Life on Earth}}, year = {2018}, - url = "https://api.planet.com" + url = {https://www.planet.com/} } @dataset{buscombe_2023_8187949, @@ -258,22 +258,27 @@ @dataset{buscombe_2023_7786276 url = {\url{https://doi.org/10.5281/zenodo.7786276}} } + @misc{voscoastsat, title={{C}oastsat-package}, author={Vos, K. and Fitzpatrick, S.}, publisher={PyPi}, - journal = {PyPi}, year={2023}, - howpublished = {\url{https://pypi.org/project/coastsat-package/}}, + doi={10.5281/zenodo.12553179}, + url={https://doi.org/10.5281/zenodo.12553179} } @misc{krause2021dea, - title={{DEA Notebooks contributors 2021: Digital Earth Australia notebooks and tools repository, Geoscience Australia, Canberra}}, - author={Krause, C. and Dunn, B. and Bishop-Taylor, R. and Adams, C. and Burton, C. and Alger, M. and Chua, S. and Phillips, C. and Newey, V. and Kouzoubov, K. and others}, + title={{Digital Earth Australia notebooks and tools repository}}, + author={Krause, C. and Dunn, B. and Bishop-Taylor, R. and Adams, C. and Burton, C. and Alger, M. and Chua, S. and Phillips, C. and Newey, V. and Kouzoubov, K. and Leith, A. and Ayers, D. and Hicks, A.}, year={2021}, - howpublished = {\url{https://knowledge.dea.ga.gov.au/notebooks/README/}}, + publisher={Commonwealth of Australia (Geoscience Australia)}, + url={https://doi.org/10.26186/145234}, + howpublished={\url{https://github.com/GeoscienceAustralia/dea-notebooks/}}, + doi={10.26186/145234} } + @article{konstantinou2023satellite, title={Satellite-based shoreline detection along high-energy macrotidal coasts and influence of beach state}, author={Konstantinou, A. and Scott, T. and Masselink, G. and Stokes, K. and Conley, D. and Castelle, B.}, diff --git a/paper/paper.md b/paper/paper.md index b5ad3b03..5810cb26 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -45,7 +45,7 @@ So-called `instantaneous' SDS workflows, where shorelines are extracted from eac `CoastSeg` has three broad aims. The first aim is to be an toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it is the step that identifies the the boundary between sea and land which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. -The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@alley2017pytmd] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. +The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@tyler_sutterley_2024] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. From 3c336db49144e7d7fb6513f463b03464093e1c7f Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 13:32:07 -0700 Subject: [PATCH 35/99] fix core_utilities so that the "CoastSeg" directory is not required to run CoastSeg. CWD will be used if CoastSeg does not exist --- src/coastseg/core_utilities.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/coastseg/core_utilities.py b/src/coastseg/core_utilities.py index 341f6d36..4ddd912c 100644 --- a/src/coastseg/core_utilities.py +++ b/src/coastseg/core_utilities.py @@ -54,13 +54,8 @@ def resolve_repo_path(cwd: pathlib.Path, proj_name: str, max_depth: int = 100) - cwd = pathlib.Path(os.getcwd()) proj_dir = resolve_repo_path(cwd, proj_name=repo_name) except ValueError as e: - # get the currentq working directory - cwd = os.getcwd() - proj_dir = os.path.join(cwd, repo_name) - # this means it was the first time creating it so print a message - if not os.path.exists(proj_dir): - print(f"Creating {repo_name} because it was not found. Created at {proj_dir}") - os.makedirs(proj_dir, exist_ok=True) + # get the current working directory if the project directory is not found + proj_dir = os.getcwd() # convert to a pathlib.Path object proj_dir = pathlib.Path(proj_dir) From 5921c75615aa68af233d7a6b6274040dea2efe48 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 13:33:11 -0700 Subject: [PATCH 36/99] v1.2.8 update core_utilities.py to not require "CoastSeg" in working directory --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 61eefa53..4451d631 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.7" +version = "1.2.8" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] @@ -18,7 +18,7 @@ description = "An interactive python package for satellite derived shoreline wor dependencies = [ "h5py>=3.10.0", "pyTMD", - "coastsat-package>=0.1.65", + "coastsat-package>=0.1.71", "area", "aiohttp", "chardet", From cf0d4a59ea04244057aaf178da8982003a80210a Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 14:22:04 -0700 Subject: [PATCH 37/99] update transects.py and common.py to fix the broken tests --- src/coastseg/common.py | 3 ++- src/coastseg/transects.py | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 57e32d5c..5ec2188b 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -2016,7 +2016,8 @@ def convert_points_to_linestrings(gdf, group_col='date', output_crs='epsg:4326') return gpd.GeoDataFrame(columns=['geometry']) # Recreate the groups as a geodataframe grouped_gdf = gpd.GeoDataFrame(filtered_groups, geometry='geometry') - linestrings = grouped_gdf.groupby(group_col).apply(lambda g: LineString(g.geometry.tolist())) + linestrings = grouped_gdf.groupby(group_col,group_keys=False).apply(lambda g: LineString(g.geometry.tolist())) + # Create a new GeoDataFrame from the LineStrings linestrings_gdf = gpd.GeoDataFrame(linestrings, columns=['geometry'],) linestrings_gdf.reset_index(inplace=True) diff --git a/src/coastseg/transects.py b/src/coastseg/transects.py index 07d060fc..b7a1b01d 100644 --- a/src/coastseg/transects.py +++ b/src/coastseg/transects.py @@ -157,8 +157,7 @@ def load_intersecting_transects( else: rectangle = rectangle.copy().set_crs(crs) # get the bounding box of the rectangle - bbox = rectangle.bounds.iloc[0].tolist() - + bbox = tuple(rectangle.bounds.iloc[0].tolist()) # Create a list to store the GeoDataFrames gdf_list = [] # Iterate over each transect file and select the transects that intersect with the rectangle From 344990c94ce393ba1b85652c8e568dd6fe89429a Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 14:40:02 -0700 Subject: [PATCH 38/99] v1.2.9 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4451d631..1d1c7845 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.8" +version = "1.2.9" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 0e9eab820dee3894d911b45eb469ada5ccb0ea4d Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 15:18:42 -0700 Subject: [PATCH 39/99] remove references without DOIs and replace coastseg reference with DOI version --- paper/paper.bib | 33 ++++++++++----------------------- paper/paper.md | 6 +++--- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index b32ac066..9273c762 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -224,14 +224,6 @@ @article{scheffler2017arosics } -@misc{planet, - author = {{Planet Labs}}, - organization = {Planet Labs}, - title = {{Planet Application Program Interface: In Space for Life on Earth}}, - year = {2018}, - url = {https://www.planet.com/} -} - @dataset{buscombe_2023_8187949, author = {Buscombe, D. and Fitzpatrick, S.}, @@ -268,6 +260,16 @@ @misc{voscoastsat url={https://doi.org/10.5281/zenodo.12553179} } +@misc{CoastSeg, + author = {Fitzpatrick, S. and Buscombe,D. and Lundine, M. and Warrick,J. and Vos, K.}, + title = {SatelliteShorelines/CoastSeg: v1.2.9}, + year = 2024, + publisher = {Zenodo}, + doi = {10.5281/zenodo.12555413}, + url = {https://doi.org/10.5281/zenodo.12555413}, + note = {\url{https://github.com/SatelliteShorelines/CoastSeg/tree/v1.2.9}} +} + @misc{krause2021dea, title={{Digital Earth Australia notebooks and tools repository}}, author={Krause, C. and Dunn, B. and Bishop-Taylor, R. and Adams, C. and Burton, C. and Alger, M. and Chua, S. and Phillips, C. and Newey, V. and Kouzoubov, K. and Leith, A. and Ayers, D. and Hicks, A.}, @@ -327,21 +329,6 @@ @article{bishop2021mapping url={https://doi.org/10.1016/j.rse.2021.112734} } -@misc{modelzoo, - title={{PyTorch Model Zoo}}, - author={PyTorch}, - year={2020}, - howpublished = {\url{https://pytorch.org/serve/model_zoo.html}}, -} - -@misc{modelzoo2, - title={{NVIDIA Model Zoo}}, - author={NVIDIA}, - year={2023}, - howpublished = {\url{https://docs.nvidia.com/tao/tao-toolkit/text/model_zoo/overview.html -}}, -} - @article{garcia2015evaluating, title={Evaluating shoreline identification using optical satellite images}, author={Garcia-Rubio, G. and Huntley, D. and Russell, P.}, diff --git a/paper/paper.md b/paper/paper.md index 5810cb26..e8554586 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -39,7 +39,7 @@ bibliography: paper.bib # Summary -`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository. +`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. @@ -117,7 +117,7 @@ In contrast, CoastSeg introduces a significant improvement to this process by le # Implementation of an Alternative Deep-Learning-Based SDS Workflow -As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by core functions in `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository, and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo` has become a standard for online trained ML models [@modelzoo; @modelzoo2], and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. While the optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript, it is important to note that these models have not been thoroughly tested yet. We are currently benchmarking these models across various coastal environments, with the results to be documented in a separate repository and linked to `CoastSeg` upon conclusion. +As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by core functions in `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository, and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo` has become a standard for online trained ML models, and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. While the optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript, it is important to note that these models have not been thoroughly tested yet. We are currently benchmarking these models across various coastal environments, with the results to be documented in a separate repository and linked to `CoastSeg` upon conclusion. @@ -125,7 +125,7 @@ As we noted above, we have developed a notebook that carries out an alternative We intend `CoastSeg` to be a collaborative research project and encourage contributions from the SDS community. As well as implementing alternative SDS waterline detection workflows, other improvements that could continue to be made include more (or more refined) outlier detection methods, image filtering procedures, and other basic image pre- or post-processing routines, especially image restoration on degraded imagery [@vitousek2023future]. Such additions would all be possible without major changes to the existing `CoastSeg` toolkit. -Integration of new models for the deep-learning workflow are planned, based on Normalized Difference Water Index (NDWI) and Modified Normalized Difference Water Index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs [@planet]. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. +Integration of new models for the deep-learning workflow are planned, based on Normalized Difference Water Index (NDWI) and Modified Normalized Difference Water Index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. It would be also be possible to incorporate automated satellite image subpixel co-registration in `CoastSeg` using the AROSICS package [@scheffler2017arosics]. This would co-register all available imagery to the nearest-in-time LandSat image. Further, future work could include accounting for the contributions of runup and setup to total water level [@vitousek2023model; @vos2023benchmarking]. In practice, this would merely add/subtract a height from the instantaneous predicted tide, then apply horizontal correction. However, the specific methods used to estimate runup or setup from the prevailing wave field would require integration with observed or hindcasted databases of wave conditions. From 767acd1b315eac825ae518a098ee90223dd7d5b2 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 26 Jun 2024 15:23:55 -0700 Subject: [PATCH 40/99] add last missing DOI for coastsat --- paper/paper.bib | 2 ++ 1 file changed, 2 insertions(+) diff --git a/paper/paper.bib b/paper/paper.bib index 9273c762..91cd3391 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -6,6 +6,8 @@ @article{vos2019coastsat volume={122}, pages={104528}, year={2019}, + doi={10.1016/j.envsoft.2019.104528}, + url={https://doi.org/10.1016/j.envsoft.2019.104528}, publisher={Elsevier} } From 54f6d644e4c4fba408f36d7fb0b9d8d53c1bc38d Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 27 Jun 2024 08:24:21 -0700 Subject: [PATCH 41/99] replace @alley2017pytmd with @tyler_sutterley_2024 --- paper/paper.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/paper/paper.md b/paper/paper.md index e8554586..09b3798b 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -109,7 +109,7 @@ We added helpful workflow components such as image filtering options; for exampl The CoastSat methodology for applying tide correction to shoreline positions involved a multi-step process. First the user would need to independently download and configure the FES14 [@lyard2021fes2014] tide model,a widely recognized tidal model. After configuring the tide model, users would then generate tide estimates at 15-minute intervals for a single location within their ROI across the entire satellite imagery time series. The tide estimate closest to the time of shoreline detection was used to adjust the shoreline position. This method, while comprehensive, was time-consuming, potentially requiring hours to generate all necessary tide estimates. -In contrast, CoastSeg introduces a significant improvement to this process by leveraging the pyTMD API [@alley2017pytmd] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES14 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, CoastSeg calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. +In contrast, CoastSeg introduces a significant improvement to this process by leveraging the pyTMD API [@tyler_sutterley_2024] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES14 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, CoastSeg calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. ![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow. Each session has distinct settings that influence the quality of the extracted shoreline. In this example, the reference shoreline buffer size varies between sessions in both the CoastSat and Zoo workflows.](figs/coastseg_figure_2.png){#sylt width="100%"} From 6acbf24e33fb6b06d0569e3019f3c7b4f7e01a8b Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 27 Jun 2024 08:36:23 -0700 Subject: [PATCH 42/99] remove {#sylt width="100%"} from paper.md --- paper/paper.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index 09b3798b..0ea2a118 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -103,7 +103,7 @@ SDS workflows require manipulating various settings in order to extract optimal We added helpful workflow components such as image filtering options; for example, users can now filter their imagery based on image size and the proportion of no data pixels in an image. Additionally, the user can decide to turn off cloud masking, which is necessary when the cloud masking process fails and obscures non-cloudy regions such as bright pixels of sand beaches. Finally, we replaced non-cross-platform components of the original workflow, for example the pickle format was replaced with JSON or geoJSON formats which are both human-readable and compatible with GIS and webGIS. -![Schematic of the tidal correction workflow used by a) ``CoastSat`` and b) ``CoastSeg``.](figs/coastseg_figure_1.png){#sylt width="100%"} +![Schematic of the tidal correction workflow used by a) ``CoastSat`` and b) ``CoastSeg``.](figs/coastseg_figure_1.png) ### Tide @@ -111,7 +111,7 @@ The CoastSat methodology for applying tide correction to shoreline positions inv In contrast, CoastSeg introduces a significant improvement to this process by leveraging the pyTMD API [@tyler_sutterley_2024] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES14 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, CoastSeg calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. -![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow. Each session has distinct settings that influence the quality of the extracted shoreline. In this example, the reference shoreline buffer size varies between sessions in both the CoastSat and Zoo workflows.](figs/coastseg_figure_2.png){#sylt width="100%"} +![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow. Each session has distinct settings that influence the quality of the extracted shoreline. In this example, the reference shoreline buffer size varies between sessions in both the CoastSat and Zoo workflows.](figs/coastseg_figure_2.png) From 34c1cd2dbbd0659aa1b2f9867025265740ed0721 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 28 Jun 2024 13:18:28 -0700 Subject: [PATCH 43/99] fix paper.md grammer mistakes and update paper.bib to capitalize references correctly --- paper/paper.bib | 69 +++++++++++++++++++------------------------------ paper/paper.md | 2 +- 2 files changed, 27 insertions(+), 44 deletions(-) diff --git a/paper/paper.bib b/paper/paper.bib index 91cd3391..b747a4b9 100644 --- a/paper/paper.bib +++ b/paper/paper.bib @@ -1,6 +1,5 @@ - @article{vos2019coastsat, - title={CoastSat: A Google Earth Engine-enabled Python toolkit to extract shorelines from publicly available satellite imagery}, + title={{CoastSat}: {A} {Google Earth Engine}-enabled {Python} toolkit to extract shorelines from publicly available satellite imagery}, author={Vos, K. and Splinter, K. D. and Harley, M. D. and Simmons, J. A. and Turner, I. L.}, journal={Environmental Modelling \& Software}, volume={122}, @@ -12,7 +11,7 @@ @article{vos2019coastsat } @article{luijendijk2018state, - title={The State of the World's Beaches}, + title={The {State} of the {World}'s {Beaches}}, author={Luijendijk, Arjen and Hagenaars, Gerben and Ranasinghe, Roshanka and Baart, Fedor and Donchyts, Gennadii and Aarninkhof, Stefan}, journal={Scientific Reports}, volume={8}, @@ -25,7 +24,7 @@ @article{luijendijk2018state } @article{pardopascual20121, -title = {Automatic extraction of shorelines from Landsat TM and ETM+ multi-temporal images with subpixel precision}, +title = {Automatic extraction of shorelines from {Landsat TM} and {ETM+} multi-temporal images with subpixel precision}, journal = {Remote Sensing of Environment}, volume = {123}, pages = {1-11}, @@ -45,17 +44,12 @@ @article{sayreEtAl2019 year = {2019}, publisher = {Taylor \& Francis}, doi = {10.1080/1755876X.2018.1529714}, -URL = { - https://doi.org/10.1080/1755876X.2018.1529714 -}, -eprint = { - https://doi.org/10.1080/1755876X.2018.1529714 -} +URL = {https://doi.org/10.1080/1755876X.2018.1529714}, +eprint = {https://doi.org/10.1080/1755876X.2018.1529714} } - @article{mclean202350, - title={50 Years of Beach--Foredune Change on the Southeastern Coast of Australia: Bengello Beach, Moruya, NSW, 1972--2022}, + title={50 Years of {Beach--Foredune} Change on the {Southeastern Coast of Australia}: {Bengello Beach, Moruya, NSW, 1972--2022}}, author={McLean, R. and Thom, B. and Shen, J. and Oliver, T.}, journal={Geomorphology}, volume={439}, @@ -66,7 +60,6 @@ @article{mclean202350 publisher={Elsevier} } - @article{vos2023benchmarking, title={Benchmarking satellite-derived shoreline mapping algorithms}, author={Vos, K. and Splinter, K.D. and Palomar-V{\'a}zquez, J. and Pardo-Pascual, J. E. and Almonacid-Caballer, J. and Cabezas-Rabad{\'a}n, C. and Kras, E. C. and Luijendijk, A. P. and Calkoen, F. and Almeida, L. P. and others}, @@ -81,7 +74,7 @@ @article{vos2023benchmarking } @article{turner2021satellite, - title={Satellite optical imagery in Coastal Engineering}, + title={Satellite optical imagery in {Coastal Engineering}}, author={Turner, I. L. and Harley, M. D. and Almar, R. and Bergsma, E. W. J.}, journal={Coastal Engineering}, volume={167}, @@ -93,7 +86,7 @@ @article{turner2021satellite } @article{vos2023pacific, - title={Pacific shoreline erosion and accretion patterns controlled by El Ni{\~n}o/Southern Oscillation}, + title={Pacific shoreline erosion and accretion patterns controlled by {El Ni{\~n}o/Southern Oscillation}}, author={Vos, K. and Harley, M. D. and Turner, I. L. and Splinter, K. D.}, journal={Nature Geoscience}, volume={16}, @@ -117,9 +110,8 @@ @article{castelle2021satellite url={https://doi.org/10.1016/j.geomorph.2021.107707} } - @article{warrick2023large, - title={A Large Sediment Accretion Wave Along a {N}orthern {C}alifornia Littoral Cell}, + title={A {Large Sediment Accretion Wave} Along a {Northern California Littoral Cell}}, author={Warrick, J. A. and Vos, K. and Buscombe, D. and Ritchie, A. C. and Curtis, J. A.}, journal={Journal of Geophysical Research: Earth Surface}, pages={e2023JF007135}, @@ -129,7 +121,6 @@ @article{warrick2023large url={https://doi.org/10.1029/2023JF007135} } - @article{vitousek2023future, title={The future of coastal monitoring through satellite remote sensing}, author={Vitousek, S. and Buscombe, D. and Vos, K. and Barnard, P. L. and Ritchie, A. C. and Warrick, J. A.}, @@ -165,7 +156,6 @@ @article{vandenhove2024secular url={https://doi.org/10.1016/j.geomorph.2023.108972} } - @article{castelle2022primary, title={Primary drivers of multidecadal spatial and temporal patterns of shoreline change derived from optical satellite imagery}, author={Castelle, B. and Ritz, A. and Marieu, V. and Lerma, A. N. and Vandenhove, M.}, @@ -180,7 +170,7 @@ @article{castelle2022primary @misc{tyler_sutterley_2024, author = {Tyler Sutterley}, - title = {tsutterley/pyTMD: v2.1.1}, + title = {tsutterley/{pyTMD}: v2.1.1}, year = 2024, publisher = {Zenodo}, doi = {10.5281/zenodo.10929240}, @@ -188,7 +178,7 @@ @misc{tyler_sutterley_2024 } @article{lyard2021fes2014, - title={{FES2014} global ocean tide atlas: {D}esign and performance}, + title={{FES2014} global ocean tide atlas: {Design} and performance}, author={Lyard, F. H. and Allain, D. J. and Cancet, M. and Carrere, L. and Picot, N.}, journal={Ocean Science}, volume={17}, @@ -201,7 +191,7 @@ @article{lyard2021fes2014 } @article{doherty2022python, - title={A Python toolkit to monitor sandy shoreline change using high-resolution PlanetScope cubesats}, + title={A {Python} toolkit to monitor sandy shoreline change using high-resolution {PlanetScope} cubesats}, author={Doherty, Y. and Harley, M. D. and Vos, K. and Splinter, K. D.}, journal={Environmental Modelling \& Software}, volume={157}, @@ -213,7 +203,7 @@ @article{doherty2022python } @article{scheffler2017arosics, - title={AROSICS: An automated and robust open-source image co-registration software for multi-sensor satellite data}, + title={{AROSICS}: {An} automated and robust open-source image co-registration software for multi-sensor satellite data}, author={Scheffler, D. and Hollstein, A. and Diedrich, H. and Segl, K. and Hostert, P.}, journal={Remote Sensing}, volume={9}, @@ -225,36 +215,30 @@ @article{scheffler2017arosics url={https://doi.org/10.3390/rs9070676} } - @dataset{buscombe_2023_8187949, - author = {Buscombe, D. and - Fitzpatrick, S.}, - title = {{CoastSeg: Beach transects and beachface slope - database v1.0}}, + author = {Buscombe, D. and Fitzpatrick, S.}, + title = {{CoastSeg}: {Beach transects and beachface slope database} v1.0}, month = jul, year = 2023, publisher = {Zenodo}, version = {v1.0}, doi = {10.5281/zenodo.8187949}, - url = {\url{https://doi.org/10.5281/zenodo.8187949}} + url = {https://doi.org/10.5281/zenodo.8187949} } @dataset{buscombe_2023_7786276, author = {Buscombe, D.}, - title = {{CoastSeg: Shoreline data at 30-m spatial - resolution for 5x5 degree regions of the world, in - geoJSON format.}}, + title = {{CoastSeg}: {Shoreline data at 30-m spatial resolution for 5x5 degree regions of the world, in geoJSON format}}, month = apr, year = 2023, publisher = {Zenodo}, version = {v1.0}, doi = {10.5281/zenodo.7786276}, - url = {\url{https://doi.org/10.5281/zenodo.7786276}} + url = {https://doi.org/10.5281/zenodo.7786276} } - @misc{voscoastsat, - title={{C}oastsat-package}, + title={{Coastsat-package}}, author={Vos, K. and Fitzpatrick, S.}, publisher={PyPi}, year={2023}, @@ -263,8 +247,8 @@ @misc{voscoastsat } @misc{CoastSeg, - author = {Fitzpatrick, S. and Buscombe,D. and Lundine, M. and Warrick,J. and Vos, K.}, - title = {SatelliteShorelines/CoastSeg: v1.2.9}, + author = {Fitzpatrick, S. and Buscombe, D. and Lundine, M. and Warrick, J. and Vos, K.}, + title = {SatelliteShorelines/{CoastSeg}: v1.2.9}, year = 2024, publisher = {Zenodo}, doi = {10.5281/zenodo.12555413}, @@ -273,7 +257,7 @@ @misc{CoastSeg } @misc{krause2021dea, - title={{Digital Earth Australia notebooks and tools repository}}, + title={{Digital Earth Australia} notebooks and tools repository}, author={Krause, C. and Dunn, B. and Bishop-Taylor, R. and Adams, C. and Burton, C. and Alger, M. and Chua, S. and Phillips, C. and Newey, V. and Kouzoubov, K. and Leith, A. and Ayers, D. and Hicks, A.}, year={2021}, publisher={Commonwealth of Australia (Geoscience Australia)}, @@ -282,7 +266,6 @@ @misc{krause2021dea doi={10.26186/145234} } - @article{konstantinou2023satellite, title={Satellite-based shoreline detection along high-energy macrotidal coasts and influence of beach state}, author={Konstantinou, A. and Scott, T. and Masselink, G. and Stokes, K. and Conley, D. and Castelle, B.}, @@ -295,7 +278,7 @@ @article{konstantinou2023satellite } @article{wu2021leafmap, - title={Leafmap: {A P}ython package for interactive mapping and geospatial analysis with minimal coding in a {J}upyter environment}, + title={{Leafmap}: {A P}ython package for interactive mapping and geospatial analysis with minimal coding in a {J}upyter environment}, author={Wu, Q.}, journal={Journal of Open Source Software}, volume={6}, @@ -320,7 +303,7 @@ @article{buscombe2022reproducible } @article{bishop2021mapping, - title={Mapping Australia's Dynamic Coastline at Mean Sea Level Using Three Decades of Landsat Imagery}, + title={Mapping {Australia}'s {Dynamic Coastline} at {Mean Sea Level} Using {Three Decades of Landsat Imagery}}, author={Bishop-Taylor, R. and Nanson, R. and Sagar, S. and Lymburner, L.}, journal={Remote Sensing of Environment}, volume={267}, @@ -344,7 +327,7 @@ @article{garcia2015evaluating } @article{almonacid2016evaluation, - title={Evaluation of annual mean shoreline position deduced from Landsat imagery as a mid-term coastal evolution indicator}, + title={Evaluation of annual mean shoreline position deduced from {Landsat} imagery as a mid-term coastal evolution indicator}, author={Almonacid-Caballer, J. and Sanchez-Garcia, E. and Pardo-Pascual, J. E. and Balaguer-Beser, A. A. and Palomar-Vazquez, J.}, journal={Marine Geology}, volume={372}, @@ -353,4 +336,4 @@ @article{almonacid2016evaluation publisher={Elsevier}, doi={10.1016/j.margeo.2015.12.015}, url={https://doi.org/10.1016/j.margeo.2015.12.015} -} \ No newline at end of file +} diff --git a/paper/paper.md b/paper/paper.md index 0ea2a118..bb8857e2 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -43,7 +43,7 @@ bibliography: paper.bib So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. -`CoastSeg` has three broad aims. The first aim is to be an toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it is the step that identifies the the boundary between sea and land which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. +`CoastSeg` has three broad aims. The first aim is to be a toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it identifies the boundary between sea and land, which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@tyler_sutterley_2024] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. From 175af9d6bfb5398653fe5e76499fff911d31658a Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 1 Jul 2024 10:47:14 -0700 Subject: [PATCH 44/99] fix minor grammer mistakes --- paper/paper.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/paper/paper.md b/paper/paper.md index bb8857e2..9e4ea02b 100644 --- a/paper/paper.md +++ b/paper/paper.md @@ -39,29 +39,29 @@ bibliography: paper.bib # Summary -`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows and its design allows for collaborators in the SDS software community to contribute additional workflows. All the codes, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. +`CoastSeg` is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery [@turner2021satellite; @vitousek2023future; @luijendijk2018state]. `CoastSeg` is a Python package installed via pip into a `conda` environment that serves as an toolkit for building custom SDS workflows. `CoastSeg` also provides full SDS workflow implementations via Jupyter notebooks and Python scripts that call functions and classes in the core `CoastSeg` toolkit for specific workflows. CoastSeg provides two fully functioning SDS workflows, and its design allows for collaborators in the SDS software community to contribute additional workflows. All the code, notebooks, scripts, and documentation are hosted on the `CoastSeg` GitHub repository [@CoastSeg]. -So-called `instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat] but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. +So-called 'instantaneous' SDS workflows, where shorelines are extracted from each individual satellite image rather than temporal composites [@pardopascual20121; @bishop2021mapping], follow a basic recipe, namely 1) waterline estimation, where the 2D (x,y) location of the land-sea interface is determined, and 2) water-level correction, where the waterline location is mapped onto a shore-perpendicular transect, converted to a linear distance along that transect, then corrected for water level, and referenced to a particular elevation contour on the beach [@vos2019coastsat]. The resulting measurement is called a 'shoreline' and it is the location that the waterline intersects a particular elevation datum. Water level corrections typically only account for tide [@vos2019coastsat], but recently SDS workflows have incorporated both wave setup and runup correction, which are a function of the instantaneous wave field at the time of image acquisition [@konstantinou2023satellite; @vitousek2023future; @vitousek2023model; @castelle2021satellite]. -`CoastSeg` has three broad aims. The first aim is to be a toolkit consisting functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it identifies the boundary between sea and land, which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. +`CoastSeg` has three broad aims. The first aim is to be a toolkit consisting of functions that operate the core SDS workflow functionalities. This includes file input/output, image downloading, geospatial conversion, tidal model API handling, mapping 2D shorelines to 1D transect-based measurements, and numerous other functions common to a basic SDS workflow, regardless of a particular waterline estimation methodology. This waterline detection algorithm will be crucial to the success of any SDS workflow because it identifies the boundary between sea and land, which serves as the basis for shoreline mapping. The idea behind the design of `CoastSeg` is that users could extend or customize functionality using scripts and notebooks. -The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@tyler_sutterley_2024] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, CoastSeg's toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that CoastSeg can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. +The second aim of `CoastSeg` is therefore to provide fully functioning SDS implementations in an accessible browser notebook format. Our principal objective to date has been to re-implement and improve upon a popular existing toolbox, `CoastSat` [@vos2019coastsat], allowing the user to carry out the well-established `CoastSat` SDS workflow with a well-supported literature [@castelle2021satellite; @castelle2022primary; @vos2023pacific; @vos2023benchmarking; @warrick2023large; @konstantinou2023satellite; @vitousek2023model; @mclean202350; @vandenhove2024secular], but in a more accessible and convenient way within the `CoastSeg` platform. In order to achieve this, we developed `CoastSat-package` [@voscoastsat], a Python package that is installed into the `CoastSeg` `conda` environment. `CoastSat-package` contains re-implemented versions of the original `CoastSat` codes, addresses the lack of pip or conda installability of `CoastSat`, and isolates the CoastSeg-specific enhancements from the original `CoastSat` code. These improvements include additional image download filtering, such as by cloud coverage in the scene, additional parameters to control shoreline extraction, and more accessible output formats, all while retaining the foundational elements of the original `CoastSat` code. The `CoastSeg` re-implementation of the `CoastSat` workflow is end-to-end within a single notebook. That notebook allows the user to, among other tasks: a) define a Region of Interest (ROI) on a webmap, and upload geospatial vector format files; b) define, download and post-process satellite imagery; c) identify waterlines in that imagery using the `CoastSat` method [@vos2019coastsat]; d) correct those waterlines to elevation-based shorelines using tidal elevation-datum corrections provided through interaction with the pyTMD [@tyler_sutterley_2024] API; and e) save output files in a variety of modern geospatial and other formats for subsequent analysis. Additionally, `CoastSeg's` toolkit-based design enables it to run as non-interactive scripts, catering to larger scale shoreline analysis projects.This flexibility ensures that `CoastSeg` can accommodate a wide range of research needs, from detailed, interactive exploration to extensive, automated analyses. -The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and makes `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. +The third and final aim of `CoastSeg` is to implement a method to carry out SDS workflows in experimental and collaborative contexts, which aids both oversight and reproducibility, as well as practical needs based on division of labor. We do this using `sessions`, a mechanism for saving the current state of the application into a session's folder. This folder contains all necessary inputs, outputs, and references to downloaded data used to generate the results. `Sessions` allow users to iteratively experiment with different combinations of settings and make `CoastSeg` fully reproducible because everything needed to reproduce the session is saved to the folder. Users can share their `sessions` with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies handovers to new users from existing users, simplifies teaching of the program, and encourages collective experimentation, which may result in better shoreline data. Users might expect to adjust settings across several sessions to find the optimal configuration for each site, typically requiring two to five adjustments to achieve the best quality shorelines. -`CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. +`CoastSeg` is also designed to be extendable, serving as a hub that hosts alternative SDS workflows and similar workflows that can be encoded in a Jupyter notebook built upon the `CoastSeg` and `CoastSat-package` core functionalities. Additional notebooks can be designed to carry out shoreline extraction using alternative methods. We provide an example of an alternative SDS workflow based on a deep-learning based semantic segmentation model that is briefly summarized at the end of this paper. To implement a custom waterline detection workflow the originator of that workflow would contribute a new Jupyter notebook, and add their specific waterline detection algorithm to the `CoastSeg` source code, so it could be used in their notebook's implementation. # Statement of Need -Coastal scientists and resource managers now have access to extensive collections of satellite data spanning more than four decades. However, it's only in recent years that advancements in algorithms, machine learning, and deep learning have enabled the automation of processing this satellite imagery to accurately identify and map shorelines from imagery, a process known as Satellite-Derived Shorelines, or SDS. SDS workflows [@garcia2015evaluating; @almonacid2016evaluation] are gaining rapidly in popularity, and in particular since the publication of the open-source implementation of the `CoastSat` workflow [@vos2019coastsat] for instantaneous SDS in 2018 [@vos2019coastsat]. Existing open-source software for SDS often require the user to navigate between platforms (non-reproducible elements), develop custom code, and/or engage in substantial manual effort. +Coastal scientists and resource managers now have access to extensive collections of satellite data spanning more than four decades. However, it's only in recent years that advancements in algorithms, machine learning, and deep learning have enabled the automation of processing this satellite imagery to accurately identify and map shorelines from imagery, a process known as Satellite-Derived Shorelines, or SDS. SDS workflows [@garcia2015evaluating; @almonacid2016evaluation] are gaining rapidly in popularity, particularly since the publication of the open-source implementation of the `CoastSat` workflow [@vos2019coastsat] for instantaneous SDS in 2018 [@vos2019coastsat]. Existing open-source software for SDS often requires the user to navigate between platforms (non-reproducible elements), develop custom code, and/or engage in substantial manual effort. -We built CoastSeg with the aim of enhancing the CoastSat workflow. Our design streamlines the entire shoreline extraction process, thus facilitating a more efficient experimental approach to determine the optimal combination of settings to extract the greatest number of accurate shorelines. CoastSeg achieves these improvements through several key advancements: it ensures reproducible sessions for consistent comparison and analysis; introduces additional filtering mechanisms to refine results; and provides an interactive user webmap that allows the users to view the quality of the extracted shorelines. Further, `CoastSeg` has been designed specifically to host alternative SDS workflows, recognizing that it is a nascent field of coastal science, and the optimal methodologies for all coastal environments and sources of imagery are yet to be established. Therefore `CoastSeg` provides a means with which to extract shorelines using multiple methods and adopt the one that most suits their needs, or implement new methods. +We built `CoastSeg` with the aim of enhancing the CoastSat workflow. Our design streamlines the entire shoreline extraction process, thus facilitating a more efficient experimental approach to determine the optimal combination of settings to extract the greatest number of accurate shorelines. `CoastSeg` achieves these improvements through several key advancements: it ensures reproducible sessions for consistent comparison and analysis; introduces additional filtering mechanisms to refine results; and provides an interactive user webmap that allows users to view the quality of the extracted shorelines. Further, `CoastSeg` has been designed specifically to host alternative SDS workflows, recognizing that it is a nascent field of coastal science, and the optimal methodologies for all coastal environments and sources of imagery are yet to be established. Therefore, `CoastSeg` provides a means with which to extract shorelines using multiple methods and adopt the one that most suits their needs, or implement new methods. We summarize the needs met by the `CoastSeg` project as follows: -- A re-implementation of (and improvement of) the `CoastSat` workflow with pip-installable APIs, and `coastsat-package`. +- A re-implementation of (and improvement of) the `CoastSat` workflow with pip-installable APIs and `coastsat-package`. - A browser-based workflow and an interactive mapping interface provided by Leafmap [@wu2021leafmap]. @@ -81,35 +81,35 @@ We summarize the needs met by the `CoastSeg` project as follows: ## Architecture & Design -At a high level, `CoastSeg` is designed to be an accessible and extendable hub for both `CoastSat`-based and alternate workflows, each of which is implemented in a single notebook. The user is therefore presented with a single menu of notebooks, each of which calls on a common set of core functionalities provided by `CoastSeg` and `coastsat-package`, and exporting data to common file formats and conventions. +At a high level, `CoastSeg` is designed to be an accessible and extendable hub for both `CoastSat`-based and alternate workflows, each of which are implemented in a single notebook. The user is therefore presented with a single menu of notebooks, each of which calls on a common set of core functionalities provided by `CoastSeg` and `coastsat-package`, and export data to common file formats and conventions. -`CoastSeg` is installable as a package into a `conda` environment. `CoastSeg` notebooks are accessed from GitHub. We also created a pip package for the `CoastSat` workflow we named `CoastSat-package` in order to a) improve the `CoastSat` method's software implementation without affecting the parent repository, and b) to install as a package into a `conda` environment, rather than duplicate code from CoastSat. +`CoastSeg` is installable as a package into a `conda` environment. `CoastSeg` notebooks are accessed from GitHub. We also created a pip package for the `CoastSat` workflow we named `CoastSat-package` in order to: a) improve the `CoastSat` method's software implementation without affecting the parent repository, and b) install it as a package into a `conda` environment, rather than duplicate code from CoastSat. `CoastSeg` is built with an object-oriented architecture, where elements required by the `CoastSat` workflow such as regions of interest, reference shorelines, and transects are represented as distinct objects on the map. Each class stores data specific to that feature type as well as encompassing methods for styling the feature on the map, downloading default features, and executing various post-processing functions. ## Sessions -SDS workflows require manipulating various settings in order to extract optimal shorelines. There are numerous settings in the `CoastSat` workflow, and sometimes determining optimal shorelines can be an iterative process requiring experimentation with settings. Sub-optimal shoreline extraction may result merely through user fatigue or a combination of misconfigured settings. Therefore, `CoastSeg` employs a `session`-based system that enables users to iteratively experiment with different combinations of settings. Each time the user makes adjustments to the settings used to extract shorelines from the imagery a new session folder is saved with the updated settings. This session system is what makes `CoastSeg` fully reproducible because all the settings, inputs, and outputs are stored within each session as well as a reference to what downloaded data was used to generate the extracted shorelines in the session. Moreover, the session system in `CoastSeg` fosters a collaborative environment. Users can share their sessions with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies the process for new users and encourages collective experimentation and data sharing. This reproducibility and collaboration are beneficial in research contexts. +SDS workflows require manipulating various settings in order to extract optimal shorelines. There are numerous settings in the `CoastSat` workflow, and sometimes determining optimal shorelines can be an iterative process requiring experimentation with settings. Sub-optimal shoreline extraction may result merely through user fatigue or a combination of misconfigured settings. Therefore, `CoastSeg` employs a `session`-based system that enables users to iteratively experiment with different combinations of settings. Each time the user makes adjustments to the settings used to extract shorelines from the imagery a new session folder is saved with the updated settings. This session system is what makes `CoastSeg` fully reproducible because all the settings, inputs, and outputs are stored within each session, as well as a reference to the downloaded data used to generate the extracted shorelines in the session. Moreover, the session system in `CoastSeg` fosters a collaborative environment. Users can share their sessions with others, enabling peers to replicate experiments, build upon previous work, or access data downloaded by someone else. This simplifies the process for new users and encourages collective experimentation and data sharing. This reproducibility and collaboration are beneficial in research contexts. ## Improvements to the `CoastSat` workflow ### Accessibility -`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines [@sayreEtAl2019] for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. CoastSeg also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. +`CoastSeg` facilitates entirely browser-based workflows with an interactive webmap and `ipywidget` controls. It interfaces with the Zenodo API to download reference shorelines [@sayreEtAl2019] for any location in the world, organized into 5x5 degree chunks in GeoJSON format [@buscombe_2023_7786276]. `CoastSeg` also provides transects for specific locations, offering beachface slope metadata [@buscombe_2023_8187949] that is available when users hover over each transect with their cursor. We have improved the reliability of `CoastSeg` through rigorous error handling, which includes developer log files for in-depth diagnostics, user report files for transparency, and detailed error messages that provide guidance for troubleshooting and problem resolution. We have also provided a set of utility scripts for common data input/output tasks, often the result of specific requests from our software testers (see Acknowledgments). In addition to a project wiki and improved documentation, we have researched minimum, maximum, and recommended values for all settings, set suggested default values, and have provided visual project management aids. ### Performance -`CoastSeg` improves upon the Google Earth Engine-based image retrieval process adopted by `CoastSat` by offering a more reliable and efficient download mechanism. Like `CoastSat`, we limit image sources to only the Landsat and Sentinel missions, which are publicly available to all. `CoastSeg` supports downloading multiple regions of interest in a single session, and ensures downloads persist even over an unstable internet connection. This is important because SDS users typically download all available imagery from an ROI, which may amount to several hundred to thousand individual downloaded scenes. Should a download error occur, `CoastSeg` briefly pauses before reconnecting to Google Earth Engine, ensuring the process does not halt completely. In cases where image downloading fails repeatedly, the filename is logged to a report file located within the downloaded data folder. This report file tracks the status of all requested images from Google Earth Engine. `CoastSeg`'s reliable image retrieval process enhances coastal monitoring by facilitating easier data management and collaboration. +`CoastSeg` improves upon the Google Earth Engine-based image retrieval process adopted by `CoastSat` by offering a more reliable and efficient download mechanism. Like `CoastSat`, we limit image sources to only the Landsat and Sentinel missions, which are publicly available to all. `CoastSeg` supports downloading multiple regions of interest in a single session, and ensures downloads persist even over an unstable internet connection. This is important because SDS users typically download all available imagery from an ROI, which may amount to several hundred to thousand individual downloaded scenes. Should a download error occur, `CoastSeg` briefly pauses before reconnecting to Google Earth Engine, ensuring that the process does not halt completely. In cases where image downloading fails repeatedly, the filename is logged to a report file located within the downloaded data folder. This report file tracks the status of all requested images from Google Earth Engine. `CoastSeg`'s reliable image retrieval process enhances coastal monitoring by facilitating easier data management and collaboration. -We added helpful workflow components such as image filtering options; for example, users can now filter their imagery based on image size and the proportion of no data pixels in an image. Additionally, the user can decide to turn off cloud masking, which is necessary when the cloud masking process fails and obscures non-cloudy regions such as bright pixels of sand beaches. Finally, we replaced non-cross-platform components of the original workflow, for example the pickle format was replaced with JSON or geoJSON formats which are both human-readable and compatible with GIS and webGIS. +We added helpful workflow components such as image filtering options; for example, users can now filter their imagery based on image size and the proportion of no data pixels in an image. Additionally, the user can decide to turn off cloud masking, which is necessary when the cloud masking process fails and obscures non-cloudy regions such as bright pixels of sand beaches. Finally, we replaced non-cross-platform components of the original workflow; for example, the pickle format was replaced with JSON or geoJSON formats which are both human-readable and compatible with GIS and webGIS. ![Schematic of the tidal correction workflow used by a) ``CoastSat`` and b) ``CoastSeg``.](figs/coastseg_figure_1.png) ### Tide -The CoastSat methodology for applying tide correction to shoreline positions involved a multi-step process. First the user would need to independently download and configure the FES14 [@lyard2021fes2014] tide model,a widely recognized tidal model. After configuring the tide model, users would then generate tide estimates at 15-minute intervals for a single location within their ROI across the entire satellite imagery time series. The tide estimate closest to the time of shoreline detection was used to adjust the shoreline position. This method, while comprehensive, was time-consuming, potentially requiring hours to generate all necessary tide estimates. +The CoastSat methodology for applying tide correction to shoreline positions involved a multi-step process. First, the user would need to independently download and configure the FES2014 [@lyard2021fes2014] tide model, a widely recognized tidal model. After configuring the tide model, users would then generate tide estimates at 15-minute intervals for a single location within their ROI across the entire satellite imagery time series. The tide estimate closest to the time of shoreline detection was used to adjust the shoreline position. This method, while comprehensive, was time-consuming, potentially requiring hours to generate all necessary tide estimates. -In contrast, CoastSeg introduces a significant improvement to this process by leveraging the pyTMD API [@tyler_sutterley_2024] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES14 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, CoastSeg calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. +In contrast, `CoastSeg` introduces a significant improvement to this process by leveraging the pyTMD API [@tyler_sutterley_2024] for a more streamlined and accurate approach to tidal correction (Figure 1). pyTMD facilitates downloading a variety of tide models, including FES2014 and models specific to polar regions, and automates tide estimations. We provide an automated workflow that downloads and subdivides the FES2014 model data into 11 global regions (an idea adopted from [@krause2021dea]). This subdivision allows the program to access only relevant subsets of data, drastically reducing the time required to estimate tides—from hours to minutes for multi-decadal satellite time series. Furthermore, `CoastSeg` calculates tide estimates for each transect corresponding to the times shorelines were detected. This ensures tide corrections are based on temporal and spatial matches, enhancing the accuracy of shoreline position adjustments. ![Schematic of the SDS workflows currently available in ``CoastSeg``. a) ``CoastSat`` workflow; b) ``Zoo`` workflow. Each session has distinct settings that influence the quality of the extracted shoreline. In this example, the reference shoreline buffer size varies between sessions in both the CoastSat and Zoo workflows.](figs/coastseg_figure_2.png) @@ -117,7 +117,7 @@ In contrast, CoastSeg introduces a significant improvement to this process by le # Implementation of an Alternative Deep-Learning-Based SDS Workflow -As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by core functions in `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository, and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo` has become a standard for online trained ML models, and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. While the optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript, it is important to note that these models have not been thoroughly tested yet. We are currently benchmarking these models across various coastal environments, with the results to be documented in a separate repository and linked to `CoastSeg` upon conclusion. +As we noted above, we have developed a notebook that carries out an alternative SDS workflow based on deep-learning based semantic segmentation models. The name 'CoastSeg' is derived from this functionality—using semantic segmentation models for the precise classification of coastal geomorphological features. This advanced classification refines the extraction of shoreline data from satellite imagery. To implement this custom workflow, we created a new Jupyter notebook, and added source code to the `CoastSeg` codebase. The changes ensured that the inputs and outputs were those expected by the core functions in the `CoastSeg` toolkit. We call this alternative workflow the `Zoo` workflow, in reference to the fact that the deep learning models implemented originate from the `Segmentation Zoo` GitHub repository and result from the `Segmentation Gym` deep-learning based image segmentation model training package [@buscombe2022reproducible]. The name `Zoo` has become a standard for online trained ML models, and the repository contains both SDS models and others. Figure 2 describes in detail how the two workflows differ. While the optimal SDS workflow adopted for waterline detection, as determined against field validation data, will be the subject of a future manuscript, it is important to note that these models have not been thoroughly tested yet. We are currently benchmarking these models across various coastal environments, with the results to be documented in a separate repository and linked to `CoastSeg` upon conclusion. @@ -125,15 +125,15 @@ As we noted above, we have developed a notebook that carries out an alternative We intend `CoastSeg` to be a collaborative research project and encourage contributions from the SDS community. As well as implementing alternative SDS waterline detection workflows, other improvements that could continue to be made include more (or more refined) outlier detection methods, image filtering procedures, and other basic image pre- or post-processing routines, especially image restoration on degraded imagery [@vitousek2023future]. Such additions would all be possible without major changes to the existing `CoastSeg` toolkit. -Integration of new models for the deep-learning workflow are planned, based on Normalized Difference Water Index (NDWI) and Modified Normalized Difference Water Index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs. Docker may be adopted in the future for managing dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. +Integration of new models for the deep-learning workflow are planned, based on Normalized Difference Water Index (NDWI) and Modified Normalized Difference Water Index (MNDWI) spectral indices, as is a new `CoastSeg` toolbox extension for daily 3-m Planetscope imagery [@doherty2022python] from Planet Labs. Docker may be adopted in the future to manage dependencies in the `conda` virtual environment required to run the program. Other sources of imagery and other spectral indices may have value in SDS workflows, and we encourage SDS users to contribute their advances through a `CoastSeg` Jupyter notebook implementation. -It would be also be possible to incorporate automated satellite image subpixel co-registration in `CoastSeg` using the AROSICS package [@scheffler2017arosics]. This would co-register all available imagery to the nearest-in-time LandSat image. Further, future work could include accounting for the contributions of runup and setup to total water level [@vitousek2023model; @vos2023benchmarking]. In practice, this would merely add/subtract a height from the instantaneous predicted tide, then apply horizontal correction. However, the specific methods used to estimate runup or setup from the prevailing wave field would require integration with observed or hindcasted databases of wave conditions. +It would also be possible to incorporate automated satellite image subpixel co-registration in `CoastSeg` using the AROSICS package [@scheffler2017arosics]. This would co-register all available imagery to the nearest-in-time LandSat image. Furthermore, future work could include accounting for the contributions of runup and setup to total water level [@vitousek2023model; @vos2023benchmarking]. In practice, this would merely add/subtract a height from the instantaneous predicted tide, then apply horizontal correction. However, the specific methods used to estimate runup or setup from the prevailing wave field would require integration with observed or hindcasted databases of wave conditions. # Acknowledgments -The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We would also like to thank Freya Muir and Floris Calkoen for reviewing CoastSeg. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government. +The authors would like to thank Qiusheng Wu, developer of `Leafmap`, which adds a lot of functionality to `CoastSeg`. Thanks also to the developers and maintainers of `pyTMD`, `DEA-tools`, `xarray`, and `GDAL`, without which this project would be impossible. We would also like to thank Freya Muir and Floris Calkoen for reviewing `CoastSeg`. We acknowledge contributions from Robbi Bishop-Taylor, Evan Goldstein, Venus Ku, software testing and suggestions from Catherine Janda, Eli Lazarus, Andrea O'Neill, Ann Gibbs, Rachel Henderson, Emily Himmelstoss, Kathryn Weber, and Julia Heslin, and support from USGS Coastal Hazards and Resources Program, and USGS Merbok Supplemental. Any use of trade, firm, or product names is for descriptive purposes only and does not imply endorsement by the U.S. Government. From 43c084e23679dd21988cf420584641ea358ae59f Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 1 Jul 2024 11:42:53 -0700 Subject: [PATCH 45/99] upload the final paper.pdf --- paper/paper.pdf | Bin 444756 -> 439667 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/paper/paper.pdf b/paper/paper.pdf index e56f299c57d749ebbfa47b936e2621f1db658a5e..705cd73a4b42e0bce5649337e1b21cf3b4664b35 100644 GIT binary patch delta 80264 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 delta 85039 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 Fo07NP08aoEaM|B9RMp|{KWEI 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 Ti{@bG;^si4qLNgWLi~RKbE8bS From 470a80396f940360e0789fedc2a5aa694c539150 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick <61564689+2320sharon@users.noreply.github.com> Date: Mon, 1 Jul 2024 11:49:49 -0700 Subject: [PATCH 46/99] Update README.md with published paper add DOI to readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fbb0d4c8..ee05db8d 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # CoastSeg - +Paper: +[![DOI](https://joss.theoj.org/papers/10.21105/joss.06683/status.svg)](https://doi.org/10.21105/joss.06683) [![image](https://img.shields.io/pypi/v/coastseg.svg?color=%23ec3dc8)](https://pypi.python.org/pypi/coastseg) From c854e302bcf9ff401141fa033731cc5e9063781b Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 2 Jul 2024 12:20:38 -0700 Subject: [PATCH 47/99] #265 fix bug where shoreline intersection points were being overwritten --- src/coastseg/common.py | 69 ++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 33 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 5ec2188b..e0bbdd15 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1705,48 +1705,51 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, utm_crs = transects.estimate_utm_crs() transects_utm = transects.to_crs(utm_crs) - ##need some placeholders - shore_x_vals = [None]*len(timeseries_data) - shore_y_vals = [None]*len(timeseries_data) - timeseries_data['shore_x'] = shore_x_vals - timeseries_data['shore_y'] = shore_y_vals + # Initialize shore_x and shore_y columns + timeseries_data['shore_x'] = np.nan + timeseries_data['shore_y'] = np.nan ##loop over all transects - for i in range(len(transects_utm)): - transect = transects_utm.iloc[i] + for i, transect in transects_utm.iterrows(): transect_id = transect['id'] first = transect.geometry.coords[0] last = transect.geometry.coords[1] - idx = timeseries_data['transect_id'].str.contains(transect_id) - ##in case there is a transect in the config_gdf that doesn't have any intersections - ##skip that transect - if np.any(idx): - timeseries_data_filter = timeseries_data[idx] - else: + # Filter timeseries data for the current transect_id + idx = timeseries_data['transect_id'] == transect_id + if not np.any(idx): continue - - idxes = timeseries_data_filter.index - distances = timeseries_data_filter['cross_distance'] + + timeseries_data_filter = timeseries_data[idx] + distances = timeseries_data_filter['cross_distance'].values + # idxes = timeseries_data_filter.index + # distances = timeseries_data_filter['cross_distance'] angle = np.arctan2(last[1] - first[1], last[0] - first[0]) shore_x_utm = first[0]+distances*np.cos(angle) shore_y_utm = first[1]+distances*np.sin(angle) - points_utm = [shapely.Point(xy) for xy in zip(shore_x_utm, shore_y_utm)] - - #conversion from utm to wgs84, put them in the transect_timeseries csv and utm gdf - dummy_gdf_utm = gpd.GeoDataFrame({'geometry':points_utm}, - crs=utm_crs) - dummy_gdf_wgs84 = dummy_gdf_utm.to_crs(org_crs) - - points_wgs84 = [shapely.get_coordinates(p) for p in dummy_gdf_wgs84.geometry] - points_wgs84 = np.array(points_wgs84) - points_wgs84 = points_wgs84.reshape(len(points_wgs84),2) - x_wgs84 = points_wgs84[:,0] - y_wgs84 = points_wgs84[:,1] - timeseries_data.loc[idxes,'shore_x'] = x_wgs84 - timeseries_data.loc[idxes,'shore_y'] = y_wgs84 + # points_utm = [shapely.Point(xy) for xy in zip(shore_x_utm, shore_y_utm)] + + # #conversion from utm to wgs84, put them in the transect_timeseries csv and utm gdf + # dummy_gdf_utm = gpd.GeoDataFrame({'geometry':points_utm}, + # crs=utm_crs) + points_utm = gpd.GeoDataFrame({'geometry': [Point(x, y) for x, y in zip(shore_x_utm, shore_y_utm)]}, crs=utm_crs) + # Convert shore points to WGS84 + points_wgs84 = points_utm.to_crs(org_crs) + # dummy_gdf_wgs84 = dummy_gdf_utm.to_crs(org_crs) + coords_wgs84 = np.array([point.coords[0] for point in points_wgs84.geometry]) + + # Update timeseries data with shore_x and shore_y + timeseries_data.loc[idx, 'shore_x'] = coords_wgs84[:, 0] + timeseries_data.loc[idx, 'shore_y'] = coords_wgs84[:, 1] + # points_wgs84 = [shapely.get_coordinates(p) for p in dummy_gdf_wgs84.geometry] + # points_wgs84 = np.array(points_wgs84) + # points_wgs84 = points_wgs84.reshape(len(points_wgs84),2) + # x_wgs84 = points_wgs84[:,0] + # y_wgs84 = points_wgs84[:,1] + # timeseries_data.loc[idxes,'shore_x'] = x_wgs84 + # timeseries_data.loc[idxes,'shore_y'] = y_wgs84 return timeseries_data @@ -1907,7 +1910,7 @@ def save_transects( Returns: None. """ - cross_distance_df =get_cross_distance_df( + cross_distance_df = get_cross_distance_df( extracted_shorelines, cross_distance_transects ) cross_distance_df.dropna(axis="columns", how="all", inplace=True) @@ -1924,8 +1927,8 @@ def save_transects( # re-order columns merged_timeseries_df = merged_timeseries_df[['dates', 'x', 'y', 'transect_id', 'cross_distance']] # add the shore_x and shore_y columns to the merged time series which are the x and y coordinates of the shore points along the transects - merged_timeseries_df,timeseries_df = add_lat_lon_to_timeseries(merged_timeseries_df, transects_gdf.to_crs('epsg:4326'),cross_distance_df, - save_location, + merged_timeseries_df,timeseries_df = add_lat_lon_to_timeseries(merged_timeseries_df, + transects_gdf.to_crs('epsg:4326'),cross_distance_df,save_location, drop_intersection_pts, "raw") # save the raw transect time series which contains the columns ['dates', 'x', 'y', 'transect_id', 'cross_distance','shore_x','shore_y'] to file From 4e78e008fb27b181a6b22239ca4d5813fcb3e4cd Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 2 Jul 2024 12:23:21 -0700 Subject: [PATCH 48/99] v1.2.10 fixes #265 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1d1c7845..de0719b0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.9" +version = "1.2.10" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 61bf83f8c5eebb93efaf8cb8ff1b3fb3746b9e07 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 9 Jul 2024 12:58:33 -0700 Subject: [PATCH 49/99] Fix issue where the matplotlib.plt.cm.get_cmap is deprecated --- src/coastseg/coastseg_map.py | 2 +- src/coastseg/extracted_shoreline.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 94344926..5ce4b47e 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -344,7 +344,7 @@ def load_extracted_shoreline_layer(self, gdf, layer_name, colormap): else: delta = (projected_gdf["date"] - min_date) / (max_date - min_date) # get the colors from the colormap - colors = plt.cm.get_cmap(colormap)(delta) + colors = plt.get_cmap(colormap)(delta) # convert RGBA colors to Hex colors_hex = [ diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index db8503d5..96035b39 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -950,7 +950,7 @@ def plot_image_with_legend( if im_ref_buffer is not None: masked_array = np.ma.masked_where(im_ref_buffer == False, im_ref_buffer) # color map for the reference shoreline buffer - masked_cmap = plt.cm.get_cmap("PiYG") + masked_cmap = plt.get_cmap("PiYG") # if original_image is wider than 2.5 times as tall, plot the images in a 3x1 grid (vertical) if original_image.shape[0] > 2.5 * original_image.shape[1]: From 14be0dadf410761cc5d949645f323da3c20bafd9 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 9 Jul 2024 13:00:35 -0700 Subject: [PATCH 50/99] Fix #269 v1.2.11 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index de0719b0..c3f9d638 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.10" +version = "1.2.11" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 4c7d0537704ea1ae2aa5e91588b6ebd422aa80cf Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 10 Jul 2024 11:56:40 -0700 Subject: [PATCH 51/99] Fix #271 --- src/coastseg/common.py | 16 +++---- tests/test_common.py | 101 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 106 insertions(+), 11 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index e0bbdd15..105eb3ed 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1608,6 +1608,7 @@ def export_dataframe_as_geojson(data:pd.DataFrame, output_file_path:str, x_col:s def create_complete_line_string(points): """ Create a complete LineString from a list of points. + If there is only a single point in the list, a Point object is returned instead of a LineString. Args: points (numpy.ndarray): An array of points representing the coordinates. @@ -1653,6 +1654,9 @@ def create_complete_line_string(points): current_point = nearest_point # Convert the sorted list of points to a LineString + if len(sorted_points) < 2: + return Point(sorted_points[0]) + return LineString(sorted_points) def order_linestrings_gdf(gdf,dates, output_crs='epsg:4326'): @@ -1682,6 +1686,7 @@ def order_linestrings_gdf(gdf,dates, output_crs='epsg:4326'): lines.append(line_string) gdf = gpd.GeoDataFrame({'geometry': lines,'date': dates},crs=output_crs) + return gdf @@ -1731,9 +1736,7 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, shore_y_utm = first[1]+distances*np.sin(angle) # points_utm = [shapely.Point(xy) for xy in zip(shore_x_utm, shore_y_utm)] - # #conversion from utm to wgs84, put them in the transect_timeseries csv and utm gdf - # dummy_gdf_utm = gpd.GeoDataFrame({'geometry':points_utm}, - # crs=utm_crs) + #conversion from utm to wgs84, put them in the transect_timeseries csv and utm gdf points_utm = gpd.GeoDataFrame({'geometry': [Point(x, y) for x, y in zip(shore_x_utm, shore_y_utm)]}, crs=utm_crs) # Convert shore points to WGS84 points_wgs84 = points_utm.to_crs(org_crs) @@ -1743,13 +1746,6 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, # Update timeseries data with shore_x and shore_y timeseries_data.loc[idx, 'shore_x'] = coords_wgs84[:, 0] timeseries_data.loc[idx, 'shore_y'] = coords_wgs84[:, 1] - # points_wgs84 = [shapely.get_coordinates(p) for p in dummy_gdf_wgs84.geometry] - # points_wgs84 = np.array(points_wgs84) - # points_wgs84 = points_wgs84.reshape(len(points_wgs84),2) - # x_wgs84 = points_wgs84[:,0] - # y_wgs84 = points_wgs84[:,1] - # timeseries_data.loc[idxes,'shore_x'] = x_wgs84 - # timeseries_data.loc[idxes,'shore_y'] = y_wgs84 return timeseries_data diff --git a/tests/test_common.py b/tests/test_common.py index c94d8e67..d291ba53 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -22,6 +22,87 @@ from typing import Dict, List, Union from unittest.mock import patch +def test_order_linestrings_gdf_empty(): + gdf = gpd.GeoDataFrame({'geometry': []}) + dates = [] + result = common.order_linestrings_gdf(gdf, dates) + assert result.empty, "Expected an empty GeoDataFrame for empty input" + +def test_order_linestrings_gdf_single_linestring(): + points = np.array([[0, 0], [1, 1]]) + gdf = gpd.GeoDataFrame({'geometry': [LineString(points)]}, crs='epsg:4326') + dates = ['2023-01-01'] + result = common.order_linestrings_gdf(gdf, dates) + expected_line = common.create_complete_line_string(points) + assert len(result) == 1, "Expected one linestring in the result" + assert result.iloc[0].geometry.equals(expected_line), "The geometry of the linestring is incorrect" + assert result.iloc[0].date == '2023-01-01', "The date is incorrect" + +def test_order_linestrings_gdf_multiple_linestrings(): + points1 = np.array([[0, 0], [1, 1]]) + points2 = np.array([[1, 1], [2, 2]]) + gdf = gpd.GeoDataFrame({'geometry': [LineString(points1), LineString(points2)]}, crs='epsg:4326') + dates = ['2023-01-01', '2023-01-02'] + result = common.order_linestrings_gdf(gdf, dates) + expected_line1 = common.create_complete_line_string(points1) + expected_line2 = common.create_complete_line_string(points2) + assert len(result) == 2, "Expected two linestrings in the result" + assert result.iloc[0].geometry.equals(expected_line1), "The geometry of the first linestring is incorrect" + assert result.iloc[1].geometry.equals(expected_line2), "The geometry of the second linestring is incorrect" + assert result.iloc[0].date == '2023-01-01', "The first date is incorrect" + assert result.iloc[1].date == '2023-01-02', "The second date is incorrect" + +# def test_order_linestrings_gdf_crs_conversion(): +# points = np.array([[0, 0], [1, 1]]) +# gdf = gpd.GeoDataFrame({'geometry': [LineString(points)]}, crs='epsg:3857') +# dates = ['2023-01-01'] +# result = common.order_linestrings_gdf(gdf, dates, output_crs='epsg:4326') +# assert result.crs.to_string() == 'epsg:4326', "The CRS is not converted to 'epsg:4326'" + +def test_order_linestrings_gdf_duplicate_points(): + points = np.array([[0, 0], [1, 1], [1, 1], [2, 2]]) + gdf = gpd.GeoDataFrame({'geometry': [LineString(points)]}, crs='epsg:4326') + dates = ['2023-01-01'] + result = common.order_linestrings_gdf(gdf, dates) + expected_line = common.create_complete_line_string(points) + assert len(result) == 1, "Expected one linestring in the result" + assert result.iloc[0].geometry.equals(expected_line), "The geometry of the linestring is incorrect" + assert result.iloc[0].date == '2023-01-01', "The date is incorrect" + + +def test_no_points(): + points = np.array([]) + result = common.create_complete_line_string(points) + assert result is None, "Expected None for no points" + +def test_single_point(): + points = np.array([[1, 1]]) + result = common.create_complete_line_string(points) + assert isinstance(result, Point), "Expected Point for a single point" + assert result.x == 1 and result.y == 1, "Expected Point with coordinates (1,1)" + +def test_multiple_points_straight_line(): + points = np.array([[0, 0], [1, 1], [2, 2]]) + result = common.create_complete_line_string(points) + assert isinstance(result, LineString), "Expected LineString for multiple points" + expected_coords = [(0, 0), (1, 1), (2, 2)] + assert list(result.coords) == expected_coords, "Expected coordinates to be in a straight line" + +def test_multiple_points_non_straight_line(): + points = np.array([[0, 0], [2, 2], [1, 1], [3, 3]]) + result = common.create_complete_line_string(points) + assert isinstance(result, LineString), "Expected LineString for multiple points" + expected_coords = [(0, 0), (1, 1), (2, 2), (3, 3)] + assert list(result.coords) == expected_coords, "Expected coordinates to be in a sorted line" + +def test_duplicate_points(): + points = np.array([[0, 0], [1, 1], [1, 1], [2, 2]]) + result = common.create_complete_line_string(points) + assert isinstance(result, LineString), "Expected LineString for multiple points" + expected_coords = [(0, 0), (1, 1), (2, 2)] + assert list(result.coords) == expected_coords, "Expected coordinates to be unique and sorted" + + def test_get_missing_roi_dirs(): roi_settings = { "mgm8": { @@ -2236,4 +2317,22 @@ def test_convert_points_to_linestrings_not_enough_pts(): linestrings_gdf = convert_points_to_linestrings(gdf, output_crs=output_crs) # Check the result - assert len(linestrings_gdf) == 0 \ No newline at end of file + assert len(linestrings_gdf) == 0 + +def test_convert_points_to_linestrings_single_point_per_date(): + # Create a GeoDataFrame with points + points = [Point(0, 0), Point(1, 1)] + gdf = gpd.GeoDataFrame(geometry=points,) + # this should cause the last point to be filtered out because it doesn't have a another points with a matching date + gdf['date'] = ['1/1/2020','1/1/2020'] + + + # Set an initial CRS + gdf.crs = "EPSG:4326" + + # Convert points to LineStrings with a different CRS + output_crs = "EPSG:3857" + linestrings_gdf = convert_points_to_linestrings(gdf, output_crs=output_crs) + + # Check the result + assert len(linestrings_gdf) == 1 \ No newline at end of file From cb088339f8e2a69e408761a33206a1b195dde451 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 10 Jul 2024 11:59:28 -0700 Subject: [PATCH 52/99] aaply fix to tide correct script and predict tides --- scripts/apply_tidal_correction.py | 99 ++++++++++++++++++++++++++----- scripts/predict_tides.py | 5 ++ 2 files changed, 90 insertions(+), 14 deletions(-) diff --git a/scripts/apply_tidal_correction.py b/scripts/apply_tidal_correction.py index 4a7a841c..e09fd0ff 100644 --- a/scripts/apply_tidal_correction.py +++ b/scripts/apply_tidal_correction.py @@ -21,6 +21,55 @@ import shapely from shapely.geometry import LineString + + +def get_closest_slope(csv_file_path, transect_id, target_date:str, default_slope=0.0): + provided_date = pd.to_datetime(target_date) + df = pd.read_csv(csv_file_path, header=None) + + # Rename the first column to 'date' for better readability + df.rename(columns={0: 'date'}, inplace=True) + + # Convert the 'date' column to datetime format + df['date'] = pd.to_datetime(df['date']) + # set the date column as the index + df.set_index('date', inplace=True) + # get the first row and turn it into the columns exception the first column + df.columns = df.iloc[0].values + # drop the first row because it contains the column names + df = df[1:] + + if transect_id not in df.columns: + raise ValueError(f"Transect ID {transect_id} not found in the CSV file") + if np.all(df[transect_id].isna()): + raise ValueError(f"All slope values for transect {transect_id} are NaN") + + # Filter non-NA values for the given transect ID + transect_id_dates = df[transect_id].dropna() + + # Find the index of the date closest to the provided date + closest_date_idx = np.abs(transect_id_dates.index - provided_date).argmin() + + # Get the value (slope) at the closest date + closest_slope = transect_id_dates.iloc[closest_date_idx] + + return closest_slope + + +def get_closest_slope_matrix(matrix_csv_file_path, target_date:str): + provided_date = pd.to_datetime(target_date) + matrix_df = pd.read_csv(matrix_csv_file_path, index_col=0, parse_dates=True) + + # Find the closest date for each transect + closest_slopes = {} + for transect_id in matrix_df.columns: + transect_id_dates = matrix_df[transect_id].dropna() + closest_date_idx = np.abs(transect_id_dates.index - provided_date).argmin() + closest_slope = transect_id_dates.iloc[closest_date_idx] + closest_slopes[transect_id] = closest_slope + + return closest_slopes + def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, transects: gpd.GeoDataFrame,)->pd.DataFrame: """ @@ -115,7 +164,6 @@ def intersect_with_buffered_transects(points_gdf, transects, buffer_distance = 0 return filtered, dropped_rows - def filter_points_outside_transects(merged_timeseries_gdf:gpd.GeoDataFrame, transects_gdf:gpd.GeoDataFrame, save_location: str, name: str = ""): """ Filters points outside of transects from a merged timeseries GeoDataFrame. @@ -184,6 +232,7 @@ def convert_date_gdf(gdf): def create_complete_line_string(points): """ Create a complete LineString from a list of points. + If there is only a single point in the list, a Point object is returned instead of a LineString. Args: points (numpy.ndarray): An array of points representing the coordinates. @@ -229,8 +278,12 @@ def create_complete_line_string(points): current_point = nearest_point # Convert the sorted list of points to a LineString + if len(sorted_points) < 2: + return Point(sorted_points[0]) + return LineString(sorted_points) + def order_linestrings_gdf(gdf,dates, output_crs='epsg:4326'): """ Orders the linestrings in a GeoDataFrame by creating complete line strings from the given points. @@ -1027,6 +1080,7 @@ def get_location(filename: str, check_parent_directory: bool = False) -> Path: return file_path + def parse_arguments() -> argparse.Namespace: """ Parse command-line arguments for the tide correction script. @@ -1109,6 +1163,13 @@ def parse_arguments() -> argparse.Namespace: default=False, help="Add -d to drop any shoreline transect intersections points that are not on the transect from the csv files", ) + parser.add_argument( + "--matrix", + "-m", + dest="matrix", + type=str, + help="Path to the matrix CSV file with transect ID as columns and dates as rows", + ) return parser.parse_args() @@ -1131,7 +1192,6 @@ def setup_tide_model_config(model_path: str) -> dict: "REGION_DIRECTORY": os.path.join(model_path, "region"), } - def main(): args = parse_arguments() # Assigning the parsed arguments to the respective variables @@ -1149,12 +1209,21 @@ def main(): MODEL_REGIONS_GEOJSON_PATH = args.regions FES_2014_MODEL_PATH = args.model DROP_INTERSECTIONS = args.drop + MATRIX_CSV_FILE_PATH = args.matrix tide_model_config = setup_tide_model_config(FES_2014_MODEL_PATH) + if MATRIX_CSV_FILE_PATH and os.path.isfile(MATRIX_CSV_FILE_PATH): + target_date = '2011-08-02' # Example date, you can change as needed + closest_slopes = get_closest_slope_matrix(MATRIX_CSV_FILE_PATH, target_date) + print("Closest slopes for each transect:") + for transect, slope in closest_slopes.items(): + print(f"Transect ID {transect}: Closest Slope {slope}") + return + # Read timeseries data raw_timeseries_df = read_csv(RAW_TIMESERIES_FILE_PATH) - # Optionlly read tide predictions from another session + # Optionally read tide predictions from another session # predicted_tides_df = read_csv(TIDE_PREDICTIONS_FILE_NAME) start_time = time.time() @@ -1169,14 +1238,14 @@ def main(): print(f"Time taken for all tide predictions: {end_time - start_time}s") # Save the tide_predictions print(f"Predicted tides saved to {os.path.abspath(TIDE_PREDICTIONS_FILE_NAME)}") - + # format the predicted tides as a matrix of date vs transect id with the tide as the values # Pivot the table pivot_df = predicted_tides_df.pivot_table(index='dates', columns='transect_id', values='tide', aggfunc='first') # Reset index if you want 'dates' back as a column - pivot_df.reset_index(inplace=True) + pivot_df.reset_index(inplace=True) - pivot_df.to_csv(TIDE_PREDICTIONS_FILE_NAME,index=False) + pivot_df.to_csv(TIDE_PREDICTIONS_FILE_NAME, index=False) print(f"Applying tide corrections to {RAW_TIMESERIES_FILE_PATH}") tide_corrected_timeseries_df = tidally_correct_timeseries( @@ -1185,26 +1254,26 @@ def main(): REFERENCE_ELEVATION, BEACH_SLOPE, ) - + # Load the GeoJSON file containing transect data transects_gdf = read_and_filter_geojson(CONFIG_FILE_PATH) tide_corrected_timeseries_df_matrix = tide_corrected_timeseries_df.pivot_table(index='dates', columns='transect_id', values='cross_distance', aggfunc='first') # Reset index if you want 'dates' back as a column - tide_corrected_timeseries_df_matrix.reset_index(inplace=True) + tide_corrected_timeseries_df_matrix.reset_index(inplace=True) # Add lat lon to the timeseries data - tide_corrected_timeseries_df,tide_corrected_timeseries_df_matrix =add_lat_lon_to_timeseries(tide_corrected_timeseries_df,transects_gdf,tide_corrected_timeseries_df_matrix,os.getcwd(), - only_keep_points_on_transects=DROP_INTERSECTIONS,extension='tidally_corrected') + tide_corrected_timeseries_df, tide_corrected_timeseries_df_matrix = add_lat_lon_to_timeseries(tide_corrected_timeseries_df, transects_gdf, tide_corrected_timeseries_df_matrix, os.getcwd(), + only_keep_points_on_transects=DROP_INTERSECTIONS, extension='tidally_corrected') # optionally save to session location in ROI the tide_corrected_timeseries_df to csv tide_corrected_timeseries_df.to_csv( - os.path.join(os.getcwd(), "tidally_corrected_transect_time_series_merged.csv"),index=False + os.path.join(os.getcwd(), "tidally_corrected_transect_time_series_merged.csv"), index=False ) # Tidally correct the raw time series print(f"Tidally corrected data saved to {os.path.abspath(TIDALLY_CORRECTED_FILE_NAME)}") # Save the Tidally corrected time series - tide_corrected_timeseries_df.to_csv(TIDALLY_CORRECTED_FILE_NAME,index=False) - + tide_corrected_timeseries_df.to_csv(TIDALLY_CORRECTED_FILE_NAME, index=False) + # save the time series as a matrix of date vs transect id with the cross_distance as the values pivot_df = tide_corrected_timeseries_df.pivot_table(index='dates', columns='transect_id', values='cross_distance', aggfunc='first') @@ -1213,7 +1282,9 @@ def main(): # Tidally correct the raw time series print(f"Tidally corrected data saved to {os.path.abspath(TIDALLY_CORRECTED_MATRIX_FILE_NAME)}") # Save the Tidally corrected time series - pivot_df.to_csv(TIDALLY_CORRECTED_MATRIX_FILE_NAME,index=False) + pivot_df.to_csv(TIDALLY_CORRECTED_MATRIX_FILE_NAME, index=False) + + if __name__ == "__main__": main() diff --git a/scripts/predict_tides.py b/scripts/predict_tides.py index aae0c8a0..4ed94634 100644 --- a/scripts/predict_tides.py +++ b/scripts/predict_tides.py @@ -54,6 +54,7 @@ def convert_date_gdf(gdf): def create_complete_line_string(points): """ Create a complete LineString from a list of points. + If there is only a single point in the list, a Point object is returned instead of a LineString. Args: points (numpy.ndarray): An array of points representing the coordinates. @@ -99,8 +100,12 @@ def create_complete_line_string(points): current_point = nearest_point # Convert the sorted list of points to a LineString + if len(sorted_points) < 2: + return Point(sorted_points[0]) + return LineString(sorted_points) + def order_linestrings_gdf(gdf,dates, output_crs='epsg:4326'): """ Orders the linestrings in a GeoDataFrame by creating complete line strings from the given points. From 0d8e4f157458f5c067c33de3c9cf5fcdfbab7854 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 10 Jul 2024 12:19:08 -0700 Subject: [PATCH 53/99] #270 fix the infinite calls to GEE by setting max attempts and add tests --- src/coastseg/common.py | 18 +++++++------- tests/test_common.py | 55 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 105eb3ed..efa0f6a2 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -460,8 +460,7 @@ def initialize_gee( # Authenticate and initialize authenticate_and_initialize(print_mode, force, auth_args, kwargs) - -def authenticate_and_initialize(print_mode:bool, force:bool, auth_args:dict, kwargs:dict): +def authenticate_and_initialize(print_mode: bool, force: bool, auth_args: dict, kwargs: dict, attempt: int = 1, max_attempts: int = 2): """ Handles the authentication and initialization of Google Earth Engine. @@ -470,8 +469,10 @@ def authenticate_and_initialize(print_mode:bool, force:bool, auth_args:dict, kwa force (bool): Flag indicating whether to force authentication. auth_args (dict): Dictionary of authentication arguments for ee.Authenticate(). kwargs (dict): Dictionary of initialization arguments for ee.Initialize(). + attempt (int): Current attempt number for authentication. + max_attempts (int): Maximum number of authentication attempts. """ - logger.info(f"kwargs {kwargs} force {force} auth_args {auth_args} print_mode {print_mode}") + logger.info(f"kwargs {kwargs} force {force} auth_args {auth_args} print_mode {print_mode} attempt {attempt} max_attempts {max_attempts}") if print_mode: print(f"{'Forcing authentication and ' if force else ''}Initializing Google Earth Engine...\n") try: @@ -489,13 +490,12 @@ def authenticate_and_initialize(print_mode:bool, force:bool, auth_args:dict, kwa else: print(f"An error occurred: {error_message}\n") - # Re-attempt authentication only if not already attempted - if not force: - print("Re-attempting authentication...\n") - ee.Authenticate(**auth_args) - authenticate_and_initialize( print_mode, True, auth_args, kwargs) # Force re-authentication on retry + # Re-attempt authentication only if not already attempted and attempts are less than max_attempts + if attempt < max_attempts: + print(f"Re-attempting authentication (Attempt {attempt + 1}/{max_attempts})...\n") + authenticate_and_initialize(print_mode, True, auth_args, kwargs, attempt + 1, max_attempts) # Force re-authentication on retry else: - raise Exception(f"Failed to initialize Google Earth Engine: {error_message}") + raise Exception(f"Failed to initialize Google Earth Engine after {attempt} attempts: {error_message}") def create_new_config(roi_ids: list, settings: dict, roi_settings: dict) -> dict: diff --git a/tests/test_common.py b/tests/test_common.py index d291ba53..c7cfc933 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -16,11 +16,62 @@ from shapely import geometry import pandas as pd import pytest -from unittest.mock import patch +from unittest.mock import patch, call import pytest from coastseg import common from typing import Dict, List, Union -from unittest.mock import patch + + +def test_authenticate_and_initialize_success(): + with patch('coastseg.common.ee.Authenticate') as mock_authenticate, \ + patch('coastseg.common.ee.Initialize') as mock_initialize: + + # Mock successful initialization + mock_initialize.return_value = None + + common.authenticate_and_initialize(print_mode=True, force=False, auth_args={}, kwargs={}) + + mock_authenticate.assert_called_once() # this will call once becase ee.credentials is None + mock_initialize.assert_called_once() + +def test_authenticate_and_initialize_force_auth(): + with patch('coastseg.common.ee.Authenticate') as mock_authenticate, \ + patch('coastseg.common.ee.Initialize') as mock_initialize: + + # Mock successful initialization + mock_initialize.return_value = None + + common.authenticate_and_initialize(print_mode=True, force=True, auth_args={}, kwargs={}) + + mock_authenticate.assert_called_once_with(force=True) + mock_initialize.assert_called_once() + +def test_authenticate_and_initialize_retry(): + with patch('coastseg.common.ee.Authenticate') as mock_authenticate, \ + patch('coastseg.common.ee.Initialize') as mock_initialize: + + # Mock an exception on first initialize, then success + mock_initialize.side_effect = [Exception("Credentials file not found"), None] + + common.authenticate_and_initialize(print_mode=True, force=False, auth_args={}, kwargs={}) + + assert mock_authenticate.call_count == 2 + assert mock_initialize.call_count == 2 + +def test_authenticate_and_initialize_max_attempts(): + with patch('coastseg.common.ee.Authenticate') as mock_authenticate, \ + patch('coastseg.common.ee.Initialize') as mock_initialize: + + # Mock an exception for all initialize attempts + mock_initialize.side_effect = Exception("Credentials file not found") + + with pytest.raises(Exception) as excinfo: + common.authenticate_and_initialize(print_mode=True, force=False, auth_args={}, kwargs={}) + + assert "Failed to initialize Google Earth Engine after 3 attempts" in str(excinfo.value) + assert mock_authenticate.call_count == 3 + assert mock_initialize.call_count == 3 + def test_order_linestrings_gdf_empty(): gdf = gpd.GeoDataFrame({'geometry': []}) From 6830914e999f6f94f7ec21f2b297a4eea314cc63 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 10 Jul 2024 12:58:01 -0700 Subject: [PATCH 54/99] fix broken tests for GEE authenticate --- src/coastseg/common.py | 4 ++-- tests/test_common.py | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index efa0f6a2..552f6cb7 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -460,6 +460,7 @@ def initialize_gee( # Authenticate and initialize authenticate_and_initialize(print_mode, force, auth_args, kwargs) + def authenticate_and_initialize(print_mode: bool, force: bool, auth_args: dict, kwargs: dict, attempt: int = 1, max_attempts: int = 2): """ Handles the authentication and initialization of Google Earth Engine. @@ -490,14 +491,13 @@ def authenticate_and_initialize(print_mode: bool, force: bool, auth_args: dict, else: print(f"An error occurred: {error_message}\n") - # Re-attempt authentication only if not already attempted and attempts are less than max_attempts + # Re-attempt authentication only if attempts are less than max_attempts if attempt < max_attempts: print(f"Re-attempting authentication (Attempt {attempt + 1}/{max_attempts})...\n") authenticate_and_initialize(print_mode, True, auth_args, kwargs, attempt + 1, max_attempts) # Force re-authentication on retry else: raise Exception(f"Failed to initialize Google Earth Engine after {attempt} attempts: {error_message}") - def create_new_config(roi_ids: list, settings: dict, roi_settings: dict) -> dict: """ Creates a new configuration dictionary by combining the given settings and ROI settings. diff --git a/tests/test_common.py b/tests/test_common.py index c7cfc933..d924f1c8 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -68,9 +68,9 @@ def test_authenticate_and_initialize_max_attempts(): with pytest.raises(Exception) as excinfo: common.authenticate_and_initialize(print_mode=True, force=False, auth_args={}, kwargs={}) - assert "Failed to initialize Google Earth Engine after 3 attempts" in str(excinfo.value) - assert mock_authenticate.call_count == 3 - assert mock_initialize.call_count == 3 + assert "Failed to initialize Google Earth Engine after 2 attempts" in str(excinfo.value) + assert mock_authenticate.call_count == 2 + assert mock_initialize.call_count == 2 def test_order_linestrings_gdf_empty(): From bbc84aff5db0edece5a13792225de06a1bf32d05 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 10 Jul 2024 12:58:52 -0700 Subject: [PATCH 55/99] v1.2.12 Fixes #270 #271 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index c3f9d638..6a950c94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.11" +version = "1.2.12" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 982fcc1fb7652db1f1da4ed576fb5a84f67ebcb8 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 15 Jul 2024 08:17:44 -0700 Subject: [PATCH 56/99] output_img = (green_band-infrared) / (infrared + green_band) fixed reversed MNDWI creation --- src/coastseg/zoo_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 5ae6ac90..0bf18206 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -398,7 +398,7 @@ def RGB_to_infrared( infrared = common.scale(infrared, np.maximum(gx, nx), np.maximum(gy, ny)) # output_img(MNDWI/NDWI) imagery formula (Green - SWIR) / (Green + SWIR) - output_img = np.divide(infrared - green_band, infrared + green_band) + output_img = (green_band-infrared) / (infrared + green_band) # Convert the NaNs to -1 output_img[np.isnan(output_img)] = -1 # Rescale to be between 0 - 255 From 08ce024149fb5c9ebd6cb4a1a9219ceff774ab0b Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 15 Jul 2024 08:20:02 -0700 Subject: [PATCH 57/99] 1.2.13 fix swapped water/other classes bug in MNDWI file created in zoo workflow --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 6a950c94..38ea7841 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.12" +version = "1.2.13" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From c6ba68a4aa0bce05a134627b99b664093eff8953 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 19 Jul 2024 20:47:25 -0700 Subject: [PATCH 58/99] Fix #274 --- scripts/preview_images_for_dates.py | 2 +- src/coastseg/common.py | 9 --------- src/coastseg/downloads.py | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/scripts/preview_images_for_dates.py b/scripts/preview_images_for_dates.py index 801dbbfa..e2401eab 100644 --- a/scripts/preview_images_for_dates.py +++ b/scripts/preview_images_for_dates.py @@ -315,7 +315,7 @@ def main(): # Check if EE was initialized or not try: - ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA") + ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA") except: ee.Initialize() diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 552f6cb7..18d7f07f 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1488,15 +1488,6 @@ def get_filtered_files_dict(directory: str, file_type: str, sitename: str) -> di ) continue - # satname_parts = parts[-1].split(".") - - # if len(satname_parts) < 2: - # logging.warning( - # f"Skipping file with unexpected name format: {old_filename}" - # ) - # continue - - # satname = satname_parts[0] tif_filename = f"{date}_{satname}_{sitename}_ms.tif" if satname in satellites: diff --git a/src/coastseg/downloads.py b/src/coastseg/downloads.py index 5d224a6b..5a1406a0 100644 --- a/src/coastseg/downloads.py +++ b/src/coastseg/downloads.py @@ -169,7 +169,7 @@ def count_images_in_ee_collection( # Check if EE was initialized or not try: - ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA") + ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA") except: ee.Initialize() From ac807b985ed4f11d285791cee3f0eaf9bad07d86 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 22 Jul 2024 09:26:05 -0700 Subject: [PATCH 59/99] v1.2.14 fixes #274 closed #275 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 38ea7841..eb1562b4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.13" +version = "1.2.14" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 83a008c3fc00063bdf92095b34698c3e2f7601da Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 24 Oct 2024 17:49:41 -0700 Subject: [PATCH 60/99] fix download bug in #278 #277. Release version 1.2.15 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index eb1562b4..3323c103 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.14" +version = "1.2.15" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] @@ -18,7 +18,7 @@ description = "An interactive python package for satellite derived shoreline wor dependencies = [ "h5py>=3.10.0", "pyTMD", - "coastsat-package>=0.1.71", + "coastsat-package>=0.1.74", "area", "aiohttp", "chardet", From d06e2166e0509cd115fd2d72967239e8405986c2 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 10:09:25 -0700 Subject: [PATCH 61/99] remove unneeded prints --- src/coastseg/coastseg_map.py | 2 -- src/coastseg/common.py | 3 --- 2 files changed, 5 deletions(-) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 5ce4b47e..02a0b181 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -2685,11 +2685,9 @@ def add_feature_on_map( if new_feature is None: logger.warning(f"No {feature_name} was None") return - print(f"Adding {feature_name} to map") # get on hover and on click handlers for feature on_hover = self.get_on_hover_handler(feature_name) on_click = self.get_on_click_handler(feature_name) - print(f"on_click handler: {on_click}") # if layer name is not given use the layer name of the feature if not layer_name and hasattr(new_feature, "LAYER_NAME"): layer_name = new_feature.LAYER_NAME diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 18d7f07f..826c190a 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -832,7 +832,6 @@ def remove_matching_rows(gdf: gpd.GeoDataFrame, **kwargs) -> gpd.GeoDataFrame: combined_mask = pd.Series([True] * len(gdf)) for column_name, items_list in kwargs.items(): - print(f"column namme : {column_name} \n items_list : {items_list}") # Ensure the column exists in the DataFrame if column_name not in gdf.columns: continue @@ -3221,8 +3220,6 @@ def rename_jpgs(src_path: str) -> None: new_name = folder_path + os.sep + base + "_" + folder_id + ext old_name = folder_path + os.sep + jpg os.rename(old_name, new_name) - if files_renamed: - print(f"Renamed files in {src_path} ") def do_rois_filepaths_exist(roi_settings: dict, roi_ids: list) -> bool: From 4386edd5018771a7e78dde86817d8a274c87e8aa Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 10:20:00 -0700 Subject: [PATCH 62/99] update test matrix to include gdal and rename the publish package to pypi action --- .github/workflows/Publish_package_to_pypi.yml | 2 +- ci/envs/311-coastseg.yaml | 2 +- ci/envs/313-coastseg.yaml | 11 +++++++++++ ci/envs/38-coastseg.yaml | 2 +- ci/envs/39-coastseg.yaml | 2 +- 5 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 ci/envs/313-coastseg.yaml diff --git a/.github/workflows/Publish_package_to_pypi.yml b/.github/workflows/Publish_package_to_pypi.yml index 773a5ac1..c7f599b4 100644 --- a/.github/workflows/Publish_package_to_pypi.yml +++ b/.github/workflows/Publish_package_to_pypi.yml @@ -3,7 +3,7 @@ # It will create a create a new pip package to release it to pypi with the version specificed by the git tag. # 🚨 GTHUB SECRETS REQUIRED: secrets.PYPI_TOKEN # - Used to publish the package to the pypi -name: Publish to Package to PyPi +name: Publish Package to PyPi on: push: # only release a new pip package if the commit it tagged ex.v1.0.3 or v1.2.0dev1 diff --git a/ci/envs/311-coastseg.yaml b/ci/envs/311-coastseg.yaml index a4274b95..74d0d292 100644 --- a/ci/envs/311-coastseg.yaml +++ b/ci/envs/311-coastseg.yaml @@ -4,8 +4,8 @@ channels: dependencies: - python=3.11 # required - - jupyterlab - geopandas + - gdal - pip - pip: - tensorflow diff --git a/ci/envs/313-coastseg.yaml b/ci/envs/313-coastseg.yaml new file mode 100644 index 00000000..fe548f39 --- /dev/null +++ b/ci/envs/313-coastseg.yaml @@ -0,0 +1,11 @@ +name: test +channels: + - conda-forge +dependencies: + - python=3.13 + # required + - geopandas + - gdal + - pip + - pip: + - tensorflow diff --git a/ci/envs/38-coastseg.yaml b/ci/envs/38-coastseg.yaml index ed9a751a..8e9145cd 100644 --- a/ci/envs/38-coastseg.yaml +++ b/ci/envs/38-coastseg.yaml @@ -4,8 +4,8 @@ channels: dependencies: - python=3.8 # required - - jupyterlab - geopandas + - gdal - pip - pip: - tensorflow diff --git a/ci/envs/39-coastseg.yaml b/ci/envs/39-coastseg.yaml index 02807b97..3abd8e7c 100644 --- a/ci/envs/39-coastseg.yaml +++ b/ci/envs/39-coastseg.yaml @@ -4,8 +4,8 @@ channels: dependencies: - python=3.9 # required - - jupyterlab - geopandas + - gdal - pip - pip: - tensorflow From ab418afaa285990065be768ec2874a9fed9f0a90 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 10:21:22 -0700 Subject: [PATCH 63/99] update yaml files for testing for python 3.10 and 3.12 --- ci/envs/310-coastseg.yaml | 2 +- ci/envs/312-coastseg.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ci/envs/310-coastseg.yaml b/ci/envs/310-coastseg.yaml index 27463da1..1c65c0c5 100644 --- a/ci/envs/310-coastseg.yaml +++ b/ci/envs/310-coastseg.yaml @@ -4,8 +4,8 @@ channels: dependencies: - python=3.10 # required - - jupyterlab - geopandas + - gdal - pip - pip: - tensorflow diff --git a/ci/envs/312-coastseg.yaml b/ci/envs/312-coastseg.yaml index a4274b95..61056ea3 100644 --- a/ci/envs/312-coastseg.yaml +++ b/ci/envs/312-coastseg.yaml @@ -2,10 +2,10 @@ name: test channels: - conda-forge dependencies: - - python=3.11 + - python=3.12 # required - - jupyterlab - geopandas + - gdal - pip - pip: - tensorflow From e5d848629541bc4e0d457d15aa2c437a9b95d3b0 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 10:44:54 -0700 Subject: [PATCH 64/99] remove deprecated np.NaN --- src/coastseg/extracted_shoreline.py | 4 ++-- tests/test_merge_utils.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index 96035b39..dd895766 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -1261,9 +1261,9 @@ def simplified_find_contours( # make a copy of the im_labels array as a float (this allows find contours to work)) im_labels_masked = im_labels.copy().astype(float) # Apply the cloud mask by setting masked pixels to NaN - im_labels_masked[cloud_mask] = np.NaN + im_labels_masked[cloud_mask] = np.nan # only keep the pixels inside the reference shoreline buffer - im_labels_masked[~reference_shoreline_buffer] = np.NaN + im_labels_masked[~reference_shoreline_buffer] = np.nan # 0 or 1 labels means 0.5 is the threshold contours = measure.find_contours(im_labels_masked, 0.5) diff --git a/tests/test_merge_utils.py b/tests/test_merge_utils.py index fe254d33..595f297a 100644 --- a/tests/test_merge_utils.py +++ b/tests/test_merge_utils.py @@ -707,7 +707,7 @@ def merged_config_no_nulls_no_index_right(): def merged_config_nulls(): data = { "type": ["bbox", "bbox", "roi", "roi", "shoreline", "shoreline"], - "id": [None, np.NaN, "B", "B", "D", "C"], + "id": [None, np.nan, "B", "B", "D", "C"], "geometry": [ Point(0, 0), Point(0, 0), @@ -725,7 +725,7 @@ def merged_config_nulls(): def merged_config_nulls_all_unique(): data = { "type": ["bbox", "bbox", "roi", "roi", "shoreline", "shoreline"], - "id": [None, np.NaN, "Z", "B", "D", "C"], + "id": [None, np.nan, "Z", "B", "D", "C"], "geometry": [ Point(0, 0), Point(1, 1), From e1b6be18b4315a3020168c7bde8819a0fa533522 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 16:20:45 -0700 Subject: [PATCH 65/99] #279 update tide correction to be compatible with pyTMD 2.1.7 --- scripts/apply_tidal_correction.py | 37 ++++++++++++++--------------- src/coastseg/tide_correction.py | 39 +++++++++++++++---------------- 2 files changed, 36 insertions(+), 40 deletions(-) diff --git a/scripts/apply_tidal_correction.py b/scripts/apply_tidal_correction.py index e09fd0ff..c89fbbad 100644 --- a/scripts/apply_tidal_correction.py +++ b/scripts/apply_tidal_correction.py @@ -677,26 +677,23 @@ def model_tides( # number of time points n_times = len(time) - if model.format == "FES": - amp, ph = pyTMD.io.FES.extract_constants( - lon, - lat, - model.model_file, - type=model.type, - version=model.version, - method=method, - extrapolate=extrapolate, - cutoff=cutoff, - scale=model.scale, - compressed=model.compressed, - ) - - # Available model constituents - c = model.constituents - - # Delta time (TT - UT1) - # calculating the difference between Terrestrial Time (TT) and UT1 (Universal Time 1), - deltat = timescale.tt_ut1 + amp, ph = pyTMD.io.FES.extract_constants( + lon, + lat, + model.model_file, + type=model.type, + version=model.version, + method=method, + extrapolate=extrapolate, + cutoff=cutoff, + scale=model.scale, + compressed=model.compressed, + ) + # Available model constituents + c = model.constituents + # Delta time (TT - UT1) + # calculating the difference between Terrestrial Time (TT) and UT1 (Universal Time 1), + deltat = timescale.tt_ut1 # Calculate complex phase in radians for Euler's cph = -1j * ph * np.pi / 180.0 diff --git a/src/coastseg/tide_correction.py b/src/coastseg/tide_correction.py index 0a858385..e4a279af 100644 --- a/src/coastseg/tide_correction.py +++ b/src/coastseg/tide_correction.py @@ -641,6 +641,7 @@ def model_tides( model ) + # If time passed as a single Timestamp, convert to datetime64 if isinstance(time, pd.Timestamp): time = time.to_datetime64() @@ -674,26 +675,24 @@ def model_tides( # number of time points n_times = len(time) - if model.format == "FES": - amp, ph = pyTMD.io.FES.extract_constants( - lon, - lat, - model.model_file, - type=model.type, - version=model.version, - method=method, - extrapolate=extrapolate, - cutoff=cutoff, - scale=model.scale, - compressed=model.compressed, - ) - - # Available model constituents - c = model.constituents - - # Delta time (TT - UT1) - # calculating the difference between Terrestrial Time (TT) and UT1 (Universal Time 1), - deltat = timescale.tt_ut1 + + amp, ph = pyTMD.io.FES.extract_constants( + lon, + lat, + model.model_file, + type=model.type, + version=model.version, + method=method, + extrapolate=extrapolate, + cutoff=cutoff, + scale=model.scale, + compressed=model.compressed, + ) + # Available model constituents + c = model.constituents + # Delta time (TT - UT1) + # calculating the difference between Terrestrial Time (TT) and UT1 (Universal Time 1), + deltat = timescale.tt_ut1 # Calculate complex phase in radians for Euler's cph = -1j * ph * np.pi / 180.0 From bda1a14ab723516184ef384828bfc4e2fdab3f96 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 25 Oct 2024 16:25:52 -0700 Subject: [PATCH 66/99] release 1.2.16. Fixes issues #279 --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 3323c103..1a32d6af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.15" +version = "1.2.16" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] @@ -17,7 +17,7 @@ keywords = [ description = "An interactive python package for satellite derived shoreline workflows" dependencies = [ "h5py>=3.10.0", - "pyTMD", + "pyTMD >= 2.1.7", "coastsat-package>=0.1.74", "area", "aiohttp", From 40fab7b086d4c012369430ff0cff2a932314c663 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 14:45:21 -0800 Subject: [PATCH 67/99] update scripts to test the CoastSeg zoo workflow models --- .../test_extract_shorelines_with_models.py | 144 +++++++++++++++++ debug_scripts/test_models.py | 146 ++++++++++-------- debug_scripts/test_new_models.py | 99 ------------ 3 files changed, 224 insertions(+), 165 deletions(-) create mode 100644 debug_scripts/test_extract_shorelines_with_models.py delete mode 100644 debug_scripts/test_new_models.py diff --git a/debug_scripts/test_extract_shorelines_with_models.py b/debug_scripts/test_extract_shorelines_with_models.py new file mode 100644 index 00000000..92dae98e --- /dev/null +++ b/debug_scripts/test_extract_shorelines_with_models.py @@ -0,0 +1,144 @@ +import os +import argparse + +# internal python imports +from coastseg import zoo_model +from transformers import TFSegformerForSemanticSegmentation + +# how to run this script +# Replace parameter after -P with path to ROI's RGB directory +# python test_models.py -P " +# Example +# python test_models.py -P C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" + +# Create the parser +parser = argparse.ArgumentParser(description="Run models on provided input directory.") +parser.add_argument( + "-P", + "--path", + type=str, + help="Path to an ROI's RGB directory from the data directory", +) +args = parser.parse_args() + +# get input directory from the args +input_directory = args.path + +# uncomment the following lines for local testing only +CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg +roi_name = "ID_ppy1_datetime07-19-24__10_59_31" # name of the ROI directory in CoastSeg +input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + +def create_settings(new_settings:dict={}): + settings ={ + 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid + 'max_dist_ref':600, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline + 'cloud_thresh': 0.5, # threshold on maximum cloud cover (0-1). If the cloud cover is above this threshold, no shorelines will be extracted from that image + 'dist_clouds': 100, # distance(m) around clouds where shoreline will not be mapped + 'min_beach_area': 100, # minimum area (m^2) for an object to be labelled as a beach + 'sand_color': 'default', # 'default', 'latest', 'dark' (for grey/black sand beaches) or 'bright' (for white sand beaches) + "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. + } + settings.update(new_settings) + return settings + +def create_model_settings(input_directory:str,img_type:str,implementation: str="BEST"): + """ + Creates a settings dictionary for model configuration. + Args: + input_directory (str): The directory containing the input images. + img_type (str): The type of images (e.g., 'RGB', 'NIR'). + implementation (str, optional): The implementation type, either 'BEST' or 'ENSEMBLE'. Defaults to 'BEST'. + Returns: + dict: A dictionary containing the model settings. + Raises: + AssertionError: If the input directory does not exist. + """ + model_setting = { + "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", + "use_GPU": "0", # 0 or 1 0 means no GPU + "implementation": "BEST", # BEST or ENSEMBLE + "model_type": "segformer_RGB_4class_8190958", # model name ex. segformer_RGB_4class_8190958 + "otsu": False, # Otsu Thresholding + "tta": False, # Test Time Augmentation + } + # assrt the input directory exists + assert os.path.exists(input_directory), f"Input directory {input_directory} does not exist" + model_setting["sample_direc"] = input_directory + model_setting["img_type"] = img_type + return model_setting + +def test_model(img_types:list, available_models_dict:dict, input_directory:str): + """ + Tests models on different types of images. + Parameters: + img_types (list): A list of image types to be tested. + available_models_dict (dict): A dictionary where keys are image types and values are lists of models available for those image types. + input_directory (str): The directory where input images are stored. Should be the RGB directory for the ROI containing the images + Raises: + Exception: If session_name is not generated correctly. + Prints: + Various debug information including the session name, implementation type, selected image type, selected model, and sample directory. + """ + for img_type_index in range(len(img_types)): + print(f"Running models for image input type {img_type_index}") + selected_img_type = img_types[img_type_index] + model_list = available_models_dict.get(selected_img_type) + if not model_list: + print(f"No models available for {selected_img_type}") + continue + + for model_selected in model_list: + print(f"Running model {model_selected}") + implementation = "BEST" # "ENSEMBLE" or "BEST" + session_name = ( + model_selected + + "_" + + selected_img_type + + "_" + + implementation + + "_" + + "session" + ) + if not session_name: + raise Exception("Something went wrong...") + + print(f"session_name: {session_name}") + print(f"implementation: {implementation}") + print(f"selected_img_type: {selected_img_type}") + print(f"model_selected: {model_selected}") + print(f"sample_directory: {input_directory}") + + zoo_model_instance = zoo_model.Zoo_Model() + # create and set settings for the model + model_setting = create_model_settings(input_directory, selected_img_type, implementation) + extract_shoreline_settings = create_settings() + model_setting.update(extract_shoreline_settings) + zoo_model_instance.set_settings(**model_setting) + + # run the model and extract shorelines + zoo_model_instance.run_model_and_extract_shorelines( + model_setting["sample_direc"], + session_name=session_name, + shoreline_path="", + transects_path="", + shoreline_extraction_area_path = "", + ) + +available_models_dict = { + "RGB": [ + "global_segformer_RGB_4class_14036903", # global segformer model + # "AK_segformer_RGB_4class_14037041", # AK segformer model + ], + # "MNDWI": [ + # "segformer_MNDWI_4class_8213443", + # ], + # "NDWI": [ + # "segformer_NDWI_4class_8213427", + # ], +} + +# img_types = ["RGB"] +img_types = ["RGB", "MNDWI", "NDWI"] + +test_model(img_types, available_models_dict, input_directory) \ No newline at end of file diff --git a/debug_scripts/test_models.py b/debug_scripts/test_models.py index 5bd5de41..df79473b 100644 --- a/debug_scripts/test_models.py +++ b/debug_scripts/test_models.py @@ -5,6 +5,11 @@ from coastseg import zoo_model from transformers import TFSegformerForSemanticSegmentation +# Last update 11/04/2024 +# Added new RGB segformer models to the available_models_dict +# removed old sat models from the available_models_dict + + # how to run this script # Replace parameter after -P with path to ROI's RGB directory # python test_models.py -P " @@ -12,7 +17,7 @@ # python test_models.py -P C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" # Create the parser -parser = argparse.ArgumentParser(description="Run models on provided inpput directory.") +parser = argparse.ArgumentParser(description="Run models on provided input directory.") parser.add_argument( "-P", "--path", @@ -23,82 +28,91 @@ # get input directory from the args input_directory = args.path -# for local testing only -input_directory = r"C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" - -# move them into their parent directories -parent_directory_names = [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", - "segformer_MNDWI_4class_8213443", - "sat_MNDWI_4class_7352850", - "segformer_NDWI_4class_8213427", - "sat_NDWI_4class_7352859", -] + +# uncomment the following lines for local testing only +CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg +roi_name = "ID_ztg2_datetime07-01-24__02_39_39" # name of the ROI directory in CoastSeg +input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + +def test_model(img_types:list, available_models_dict:dict, input_directory:str): + """ + Tests models on different types of images. + Parameters: + img_types (list): A list of image types to be tested. + available_models_dict (dict): A dictionary where keys are image types and values are lists of models available for those image types. + input_directory (str): The directory where input images are stored. Should be the RGB directory for the ROI containing the images + Raises: + Exception: If session_name is not generated correctly. + Prints: + Various debug information including the session name, implementation type, selected image type, selected model, and sample directory. + """ + for img_type_index in range(len(img_types)): + print(f"Running models for image input type {img_type_index}") + selected_img_type = img_types[img_type_index] + model_list = available_models_dict.get(selected_img_type) + if not model_list: + print(f"No models available for {selected_img_type}") + continue + + for model_selected in model_list: + print(f"Running model {model_selected}") + implementation = "BEST" # "ENSEMBLE" or "BEST" + session_name = ( + model_selected + + "_" + + selected_img_type + + "_" + + implementation + + "_" + + "session" + ) + if not session_name: + raise Exception("Something went wrong...") + + print(f"session_name: {session_name}") + print(f"implementation: {implementation}") + print(f"selected_img_type: {selected_img_type}") + print(f"model_selected: {model_selected}") + print(f"sample_directory: {input_directory}") + + # load the basic zoo_model settings + model_dict = { + "sample_direc": input_directory, + "use_GPU": "0", + "implementation": implementation, + "model_type": model_selected, + "otsu": False, + "tta": False, + } + + zoo_model_instance = zoo_model.Zoo_Model() + + zoo_model_instance.run_model( + img_types[img_type_index], + model_dict["implementation"], + session_name, + model_dict["sample_direc"], + model_name=model_dict["model_type"], + use_GPU="0", + use_otsu=model_dict["otsu"], + use_tta=model_dict["tta"], + percent_no_data=50.0, + ) + available_models_dict = { "RGB": [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", + "global_segformer_RGB_4class_14036903", # global segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ "segformer_MNDWI_4class_8213443", - "sat_MNDWI_4class_7352850", ], "NDWI": [ "segformer_NDWI_4class_8213427", - "sat_NDWI_4class_7352859", ], } - img_types = ["RGB", "MNDWI", "NDWI"] -for img_type_index in range(len(img_types)): - print(f"Running models for image input type {img_type_index}") - selected_img_type = img_types[img_type_index] - model_list = available_models_dict.get(selected_img_type) - for model_selected in model_list: - print(f"Running model {model_selected}") - implementation = "BEST" # "ENSEMBLE" or "BEST" - session_name = ( - model_selected - + "_" - + selected_img_type - + "_" - + implementation - + "_" - + "session" - ) - if not session_name: - raise Exception("Something went wrong...") - - print(f"session_name: {session_name}") - print(f"implementation: {implementation}") - print(f"selected_img_type: {selected_img_type}") - print(f"model_selected: {model_selected}") - print(f"sample_directory: {input_directory}") - - # load the basic zoo_model settings - model_dict = { - "sample_direc": input_directory, - "use_GPU": "0", - "implementation": implementation, - "model_type": model_selected, - "otsu": False, - "tta": False, - } - - zoo_model_instance = zoo_model.Zoo_Model() - - zoo_model_instance.run_model( - img_types[img_type_index], - model_dict["implementation"], - session_name, - model_dict["sample_direc"], - model_name=model_dict["model_type"], - use_GPU="0", - use_otsu=model_dict["otsu"], - use_tta=model_dict["tta"], - percent_no_data=50.0, - ) +test_model(img_types, available_models_dict, input_directory) \ No newline at end of file diff --git a/debug_scripts/test_new_models.py b/debug_scripts/test_new_models.py deleted file mode 100644 index 091008c9..00000000 --- a/debug_scripts/test_new_models.py +++ /dev/null @@ -1,99 +0,0 @@ -import os -import zipfile -import re -import glob - -# internal python imports -from coastseg import zoo_model - -# def unzip_and_rename(directory): -# for item in os.listdir(directory): # loop through items in dir -# item_path = os.path.join(directory, item) -# if item.endswith('.zip'): # check for ".zip" extension -# zip_ref = zipfile.ZipFile(item_path) # create zipfile object -# zip_ref.extractall(directory) # extract file to dir -# zip_ref.close() # close file -# os.remove(item_path) # delete zipped file - -# for item in os.listdir(directory): -# item_path = os.path.join(directory, item) -# if os.path.isdir(item_path): -# new_folder_name = re.sub('_model.*', '', item) -# new_folder_path = os.path.join(directory, new_folder_name) -# os.rename(item_path, new_folder_path) - -# # unzip and rename the downloaded files -# uncomment these lines when unzipping your first fir the first time -# dir_path = put your directory here -# unzip_and_rename(dir_path) - -# move them into their parent directories -parent_directory_names=['sat_5band_2class_7448390', 'sat_5band_4class_7344606', 'sat_MNDWI_2class_7557080', 'sat_MNDWI_4class_7352850', 'sat_NDWI_2class_7557072', 'sat_NDWI_4class_7352859', 'sat_RGB_2class_7865364', 'sat_RGB_4class_6950472'] -# I did this manually - -available_models_dict = { - "RGB": [ - "sat_RGB_2class_7865364", - "sat_RGB_4class_6950472", - ], - "RGB+MNDWI+NDWI": [ - "sat_5band_4class_7344606", - "sat_5band_2class_7448390", - ], - "MNDWI": [ - "sat_MNDWI_4class_7352850", - "sat_MNDWI_2class_7557080", - ], - "NDWI": [ - "sat_NDWI_4class_7352859", - "sat_NDWI_2class_7557072", - ] -} - -img_types = ['RGB',"RGB+MNDWI+NDWI","MNDWI","NDWI"] -# for img_type_index in range(len(img_types)): -# for img_type_index in [2,3]: -for img_type_index in range(len(img_types)): - print(img_type_index) - for model_index in range(2): - print(model_index) - implementation= "BEST" # "ENSEMBLE" or "BEST" - selected_img_type = img_types[img_type_index] - # selected_img_type = "RGB" - model_selected = available_models_dict.get(selected_img_type)[model_index] - # model_selected = 'sat_RGB_2class_7865364' - session_name = model_selected + '_'+selected_img_type+'_'+implementation+'_'+'session' - if not session_name: - raise Exception('Something went wrong...') - - sample_directory= r'C:\1_USGS\1_CoastSeg\1_official_CoastSeg_repo\CoastSeg\data\ID_0_datetime04-25-23__02_19_04\jpg_files\preprocessed\RGB' - - print(f'session_name: {session_name}') - print(f'implementation: {implementation}') - print(f'selected_img_type: {selected_img_type}') - print(f'model_selected: {model_selected}') - print(f'sample_directory: {sample_directory}') - - # load the basic zoo_model settings - model_dict = { - "sample_direc": sample_directory, - "use_GPU": "0", - "implementation": implementation, - "model_type": model_selected, - "otsu": False, - "tta": False, - } - - zoo_model_instance = zoo_model.Zoo_Model() - - zoo_model_instance.run_model( - img_types[img_type_index], - model_dict["implementation"], - session_name, - model_dict["sample_direc"], - model_name=model_dict["model_type"], - use_GPU="0", - use_otsu=model_dict["otsu"], - use_tta=model_dict["tta"], - percent_no_data=50.0, - ) \ No newline at end of file From f49b976a823c05edf4b10e26071d653ed3e207bb Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 14:46:32 -0800 Subject: [PATCH 68/99] replace np.NaN with np.nan in zoo_model.py --- src/coastseg/zoo_model.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 0bf18206..f888e543 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -380,7 +380,7 @@ def RGB_to_infrared( green_band = skimage.io.imread(file[0])[:, :, 1].astype("float") # Read infrared(SWIR or NIR) and cast to float infrared = skimage.io.imread(file[1]).astype("float") - # Transform 0 to np.NAN + # Transform 0 to np.nan green_band[green_band == 0] = np.nan infrared[infrared == 0] = np.nan # Mask out NaNs @@ -1167,7 +1167,7 @@ def get_files_for_seg( # filter out files with no data pixels greater than percent_no_data len_before = len(model_ready_files) model_ready_files = filter_no_data_pixels(model_ready_files, percent_no_data) - print(f"From {len_before} files {len_before - len(model_ready_files)} files were filtered out due to no data pixels percentage being greater than {percent_no_data*100}%.") + print(f"{len_before - len(model_ready_files)}/{len_before} files were filtered out because the percentage of no data pixels in the image was greater than {percent_no_data}%.") return model_ready_files @@ -1608,6 +1608,7 @@ def download_model( zenodo_id = model_id.split("_")[-1] # get list of files available in zenodo release json_content = get_zenodo_release(zenodo_id) + print(f"json_content: {json_content}") available_files = json_content["files"] # Download the best model if best or all models if ensemble From e0bbace5a2dd11ddea618e7828827bddffa805da Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 14:47:22 -0800 Subject: [PATCH 69/99] replace RGB models with new RGB models for AK and globe 11/4 --- src/coastseg/models_UI.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 842e8007..637c79a5 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -60,8 +60,8 @@ def __init__(self): } # list of RGB and MNDWI models available self.RGB_models = [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", + "global_segformer_RGB_4class_14036903", # global segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model ] # self.five_band_models = [ # "sat_5band_4class_7344606", From cb85f9830a1a0d3fc1a5ad3ca30088356e03fa2c Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 15:42:46 -0800 Subject: [PATCH 70/99] update the available default model in both zoo_workflow and zoo_model --- 3_zoo_workflow.py | 13 +++++++------ src/coastseg/extracted_shoreline.py | 1 - src/coastseg/models_UI.py | 5 +---- src/coastseg/zoo_model.py | 1 - 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/3_zoo_workflow.py b/3_zoo_workflow.py index 116998a3..0f93ee94 100644 --- a/3_zoo_workflow.py +++ b/3_zoo_workflow.py @@ -9,26 +9,27 @@ # Extract Shoreline Settings settings ={ - 'min_length_sl': 500, # minimum length (m) of shoreline perimeter to be valid - 'max_dist_ref':300, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline + 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid + 'max_dist_ref':500, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline 'cloud_thresh': 0.5, # threshold on maximum cloud cover (0-1). If the cloud cover is above this threshold, no shorelines will be extracted from that image - 'dist_clouds': 300, # distance(m) around clouds where shoreline will not be mapped - 'min_beach_area': 500, # minimum area (m^2) for an object to be labelled as a beach + 'dist_clouds': 100, # distance(m) around clouds where shoreline will not be mapped + 'min_beach_area': 50, # minimum area (m^2) for an object to be labelled as a beach 'sand_color': 'default', # 'default', 'latest', 'dark' (for grey/black sand beaches) or 'bright' (for white sand beaches) "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. } + # The model can be run using the following settings: model_setting = { "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", "use_GPU": "0", # 0 or 1 0 means no GPU "implementation": "BEST", # BEST or ENSEMBLE - "model_type": "segformer_RGB_4class_8190958", # model name ex. segformer_RGB_4class_8190958 + "model_type": "global_segformer_RGB_4class_14036903", # model name from the zoo "otsu": False, # Otsu Thresholding "tta": False, # Test Time Augmentation } # Available models can run input "RGB" # or "MNDWI" or "NDWI" -img_type = "RGB" +img_type = "RGB" # make sure the model name is compatible with the image type # percentage of no data allowed in the image eg. 0.75 means 75% of the image can be no data percent_no_data = 0.75 diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index dd895766..ec7fab9c 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -622,7 +622,6 @@ def process_satellite_image( min_beach_area = settings["min_beach_area"] land_mask = remove_small_objects_and_binarize(land_mask, min_beach_area) - # get the shoreline from the image shoreline = find_shoreline( fn, diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 637c79a5..77831d6d 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -53,7 +53,7 @@ def __init__(self): "sample_direc": None, "use_GPU": "0", "implementation": "BEST", - "model_type": "segformer_RGB_4class_8190958", + "model_type": "global_segformer_RGB_4class_14036903", "otsu": False, "tta": False, "img_type": "RGB", @@ -63,9 +63,6 @@ def __init__(self): "global_segformer_RGB_4class_14036903", # global segformer model "AK_segformer_RGB_4class_14037041", # AK segformer model ] - # self.five_band_models = [ - # "sat_5band_4class_7344606", - # ] self.MNDWI_models = [ "segformer_MNDWI_4class_8213443", ] diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index f888e543..2d46b3f7 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -1608,7 +1608,6 @@ def download_model( zenodo_id = model_id.split("_")[-1] # get list of files available in zenodo release json_content = get_zenodo_release(zenodo_id) - print(f"json_content: {json_content}") available_files = json_content["files"] # Download the best model if best or all models if ensemble From b5abbf46756fb4e4a560fa11dbb4216f5aaf5f00 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 16:05:53 -0800 Subject: [PATCH 71/99] update default model in test_extract_shorelines_with_models --- .../test_extract_shorelines_with_models.py | 16 ++++++++-------- src/coastseg/zoo_model.py | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/debug_scripts/test_extract_shorelines_with_models.py b/debug_scripts/test_extract_shorelines_with_models.py index 92dae98e..c798506d 100644 --- a/debug_scripts/test_extract_shorelines_with_models.py +++ b/debug_scripts/test_extract_shorelines_with_models.py @@ -58,7 +58,7 @@ def create_model_settings(input_directory:str,img_type:str,implementation: str=" "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", "use_GPU": "0", # 0 or 1 0 means no GPU "implementation": "BEST", # BEST or ENSEMBLE - "model_type": "segformer_RGB_4class_8190958", # model name ex. segformer_RGB_4class_8190958 + "model_type":"global_segformer_RGB_4class_14036903", # model name ex. global_segformer_RGB_4class_14036903 "otsu": False, # Otsu Thresholding "tta": False, # Test Time Augmentation } @@ -128,14 +128,14 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): available_models_dict = { "RGB": [ "global_segformer_RGB_4class_14036903", # global segformer model - # "AK_segformer_RGB_4class_14037041", # AK segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model + ], + "MNDWI": [ + "segformer_MNDWI_4class_8213443", + ], + "NDWI": [ + "segformer_NDWI_4class_8213427", ], - # "MNDWI": [ - # "segformer_MNDWI_4class_8213443", - # ], - # "NDWI": [ - # "segformer_NDWI_4class_8213427", - # ], } # img_types = ["RGB"] diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 2d46b3f7..d91e63aa 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -607,7 +607,7 @@ def set_settings(self, **kwargs): "sample_direc": None, "use_GPU": "0", "implementation": "BEST", - "model_type": "segformer_RGB_4class_8190958", + "model_type": "global_segformer_RGB_4class_14036903", "otsu": False, "tta": False, "cloud_thresh": 0.5, # threshold on maximum cloud cover From 707021ff9eed938929ba7e7ea94af9d7bc559915 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 16:07:23 -0800 Subject: [PATCH 72/99] update readme to include new models on zenodo 14037041 and 14036903 --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ee05db8d..a5bfe27d 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,8 @@ The models currently available are: * Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 MNDWI images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8213443 * Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 NDWI images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8213427 -* Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 3-band (RGB) images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8190958 +* Buscombe, D. (2024). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of PlanetScope, Sentinel-2 and Landsat-5/7/8/9 visible-band (RGB) images of coasts. 'Global' version. Zenodo. https://doi.org/10.5281/zenodo.14036903 +* Buscombe, D. (2024). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of PlanetScope, Sentinel-2 and Landsat-5/7/8/9 visible-band (RGB) images of coasts. 'Alaska-only' version. Zenodo. https://doi.org/10.5281/zenodo.14037041 Made using the following software, implemented as [Doodleverse/Segmentation Gym]([Zoo](https://github.com/Doodleverse/segmentation_gym)): From 30dc9f9927b3b9a89051d1e3db35d52279b12ce5 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 16:10:53 -0800 Subject: [PATCH 73/99] refactor code to allow type : reference shoreline --- src/coastseg/coastseg_map.py | 9 ++-- src/coastseg/common.py | 13 ++++-- src/coastseg/geodata_processing.py | 68 ++++++++---------------------- 3 files changed, 31 insertions(+), 59 deletions(-) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 02a0b181..a78d5ad2 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -837,14 +837,15 @@ def load_gdf_config(self, filepath: str) -> None: del gdf def _extract_feature_gdf( - self, gdf: gpd.GeoDataFrame, feature_type: str, columns: List[str] + self, gdf: gpd.GeoDataFrame, feature_type: Union[int, str], columns: List[str] ) -> gpd.GeoDataFrame: """ Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. Args: gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. - feature_type (str): The type of feature to extract. + feature_type Union[int, str]: The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + Feature_type can also be list of strings such as ['shoreline','shorelines', 'reference shoreline'] to match the same kind of feature with muliple names. columns (List[str]): A list of column names to extract from the GeoDataFrame. Returns: @@ -869,8 +870,8 @@ def _extract_feature_gdf( ) # select only the features that are of the correct type and have the correct columns - feature_gdf = gdf[gdf["type"] == feature_type][keep_columns] - + feature_gdf = common.extract_feature_from_geodataframe(gdf, feature_type) + feature_gdf = feature_gdf[keep_columns] return feature_gdf def preview_available_images(self,selected_ids: set = None): diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 826c190a..5af83ebd 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1505,14 +1505,15 @@ def create_unique_ids(data, prefix_length: int = 3): def extract_feature_from_geodataframe( - gdf: gpd.GeoDataFrame, feature_type: str, type_column: str = "type" + gdf: gpd.GeoDataFrame, feature_type: Union[int, str], type_column: str = "type" ) -> gpd.GeoDataFrame: """ Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. Args: gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. - feature_type (str): The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + feature_type Union[int, str]: The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + Feature_type can also be list of strings such as ['shoreline','shorelines', 'reference shoreline'] to match the same kind of feature with muliple names. type_column (str, optional): The name of the column containing feature types. Defaults to 'type'. Returns: @@ -1527,8 +1528,12 @@ def extract_feature_from_geodataframe( f"Column '{type_column}' does not exist in the GeoDataFrame. Incorrect config_gdf.geojson loaded" ) - # select only the features that are of the correct type and have the correct columns - feature_gdf = gdf[gdf[type_column] == feature_type] + if isinstance(feature_type, list): + # select only the features that are of the correct type and have the correct columns + feature_gdf = gdf[gdf[type_column].isin(feature_type)] + else: + # select only the features that are of the correct type and have the correct columns + feature_gdf = gdf[gdf[type_column] == feature_type] return feature_gdf diff --git a/src/coastseg/geodata_processing.py b/src/coastseg/geodata_processing.py index 0f83d611..e59e7be6 100644 --- a/src/coastseg/geodata_processing.py +++ b/src/coastseg/geodata_processing.py @@ -110,6 +110,16 @@ def create_geofeature_geodataframe( return geofeature_gdf +FEATURE_TYPE_MAP = { + "transect": transects.Transects, + "transects": transects.Transects, + "shoreline": shoreline.Shoreline, + "shorelines": shoreline.Shoreline, + "reference_shoreline": shoreline.Shoreline, + "reference_shorelines": shoreline.Shoreline, + "shoreline_extraction_area": shoreline_extraction_area.Shoreline_Extraction_Area, +} + def load_geofeatures_from_roi( roi_gdf: gpd.GeoDataFrame, feature_type: str ) -> gpd.GeoDataFrame: @@ -127,14 +137,10 @@ def load_geofeatures_from_roi( Raises: ValueError: If no geographic features were found in the given ROI. """ - feature_type = ( - feature_type.lower() - ) # Convert to lower case for case insensitive comparison + feature_type = feature_type.lower() # Convert to lower case for case insensitive comparison - if feature_type == "transect" or feature_type == "transects": - feature_object = transects.Transects(bbox=roi_gdf) - elif feature_type == "shoreline" or feature_type == "shorelines": - feature_object = shoreline.Shoreline(bbox=roi_gdf) + if feature_type in FEATURE_TYPE_MAP: + feature_object = FEATURE_TYPE_MAP[feature_type](bbox=roi_gdf) else: logger.error(f"Unsupported feature_type: {feature_type}") raise ValueError(f"Unsupported feature_type: {feature_type}") @@ -203,12 +209,10 @@ def load_feature_from_file(feature_path: str, feature_type: str): def create_feature(feature_type: str, gdf): - if feature_type == "transect" or feature_type == "transects": - feature_object = transects.Transects(transects=gdf) - elif feature_type == "shoreline" or feature_type == "shorelines": - feature_object = shoreline.Shoreline(shoreline=gdf) - elif feature_type == "shoreline_extraction_area": - feature_object = shoreline_extraction_area.Shoreline_Extraction_Area(gdf) + feature_type = feature_type.lower() # Convert to lower case for case insensitive comparison + + if feature_type in FEATURE_TYPE_MAP: + feature_object = FEATURE_TYPE_MAP[feature_type](gdf) else: raise ValueError(f"Unsupported feature_type: {feature_type}") @@ -253,41 +257,3 @@ def extract_feature_from_geodataframe( filtered_gdf = gdf[gdf[type_column].str.lower().isin(feature_types)] return filtered_gdf - - -# def extract_feature_from_geodataframe( -# gdf: gpd.GeoDataFrame, feature_type: str, type_column: str = "type" -# ) -> gpd.GeoDataFrame: -# """ -# Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. - -# Args: -# gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. -# feature_type (str): The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' -# type_column (str, optional): The name of the column containing feature types. Defaults to 'type'. - -# Returns: -# gpd.GeoDataFrame: A new GeoDataFrame containing only the features of the specified type and columns. - -# Raises: -# ValueError: Raised when feature_type or any of the columns specified do not exist in the GeoDataFrame. -# """ -# # Check if type_column exists in the GeoDataFrame -# if type_column not in gdf.columns: -# raise ValueError( -# f"Column '{type_column}' does not exist in the GeoDataFrame. Incorrect config_gdf.geojson loaded" -# ) - -# # Check if feature_type ends with 's' and define alternative feature_type -# if feature_type.endswith("s"): -# alt_feature_type = feature_type[:-1] -# else: -# alt_feature_type = feature_type + "s" - -# # Filter using both feature_types -# main_feature_gdf = gdf[gdf[type_column] == feature_type] -# alt_feature_gdf = gdf[gdf[type_column] == alt_feature_type] - -# # Combine both GeoDataFrames -# combined_gdf = pd.concat([main_feature_gdf, alt_feature_gdf]) -# return combined_gdf From 917eeb679c7c7db63fe5af5026a6b5ff23b22a04 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 5 Nov 2024 16:26:46 -0800 Subject: [PATCH 74/99] update factory to allow multiple names for the reference shoreline to ba passed in --- src/coastseg/factory.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/coastseg/factory.py b/src/coastseg/factory.py index 5b31b98f..8e0a513b 100644 --- a/src/coastseg/factory.py +++ b/src/coastseg/factory.py @@ -68,7 +68,7 @@ def create_shoreline( # check if coastsegmap has a ROI if coastsegmap.rois is not None: if coastsegmap.rois.gdf.empty == False: - # merge ROI geometeries together and use that as the bbbox + # merge ROI geometeries together and use that as the bbox merged_rois = merge_rectangles(coastsegmap.rois.gdf) shoreline = Shoreline(merged_rois) exception_handler.check_if_default_feature_available(shoreline.gdf, "shoreline") @@ -202,6 +202,10 @@ class Factory: _feature_makers: Dict[str, Callable] = { "shoreline": create_shoreline, "shorelines": create_shoreline, + "reference_shoreline": create_shoreline, + "reference shorelines": create_shoreline, + "reference shoreline": create_shoreline, + "reference_shorelines": create_shoreline, "transects": create_transects, "transect": create_transects, "bbox": create_bbox, From 7995154d583b7141aedb0a03fc5467c19f58ccae Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 5 Nov 2024 16:28:10 -0800 Subject: [PATCH 75/99] modify load_gdf_config to allow reference_shoreline type to be passed in and allow a single roi_id to be passed to extract all shoreline and save_session --- src/coastseg/coastseg_map.py | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index a78d5ad2..9180567c 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -792,28 +792,46 @@ def load_gdf_config(self, filepath: str) -> None: """Load features from GeoDataFrame located in geojson file at filepath onto map. Features in config file should contain a column named "type" which contains one of the - following possible feature types: "roi", "shoreline", "transect", "bbox". + following possible feature types: "roi", "shoreline", "reference_shoreline" "transect", "bbox". Args: filepath (str): full path to config_gdf.geojson """ gdf = geodata_processing.read_gpd_file(filepath) - gdf = common.stringify_datetime_columns(gdf) + gdf = common.stringify_datetime_columns(gdf) # each possible type of feature and the columns that should be loaded feature_types = { "bbox": ["geometry"], "roi": ["id", "geometry"], "transect": list(Transects.COLUMNS_TO_KEEP), - "shoreline": ["geometry"], + "shoreline": ["geometry","id"], "shoreline_extraction_area": ["geometry"], } + feature_names = { + "bbox": ["bbox"], + "roi": ["roi"], + "transect": ["transect", "transects"], + "shoreline": ["shoreline", "shorelines", "reference_shoreline", "reference_shorelines","reference shoreline","reference shorelines"], + "shoreline_extraction_area": ["shoreline_extraction_area"], + } + # attempt to load each feature type onto the map from the config_gdf.geojson file for feature_name, columns in feature_types.items(): - feature_gdf = self._extract_feature_gdf(gdf, feature_name, columns) + # create an empty geodataframe to store the features + feature_gdf = gpd.GeoDataFrame() + + # Step 1: Group the like features into a single feature_gdf + for name in feature_names[feature_name]: + new_feature_gdf = self._extract_feature_gdf(gdf, name, columns) + if new_feature_gdf.empty: + continue + # append all the features into a single geodataframe + feature_gdf = pd.concat([feature_gdf, new_feature_gdf]) + # Step 2: Load each feature gdf as a separate kind of feature eg. roi, shoreline, transect, bbox # if the feature is not an ROI use the load_feature_on_map method to load it. (eg. shorelines, transects, bbox) if feature_name != "roi": self.load_feature_on_map(feature_name, gdf=feature_gdf, zoom_to_bounds=True) @@ -1841,6 +1859,9 @@ def extract_all_shorelines(self,roi_ids:list=None) -> None: Returns: None """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] + # 1. validate the inputs for shoreline extraction exist: ROIs, transects,shorelines and a downloaded data for each ROI self.validate_extract_shoreline_inputs(roi_ids) @@ -2100,6 +2121,8 @@ def save_session(self, roi_ids: list[str], save_transects: bool = True): roi_ids (list[str]): List of ROI IDs. save_transects (bool, optional): Flag to save transects. Defaults to True. """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] # Save extracted shoreline info to session directory session_name = self.get_session_name() for roi_id in roi_ids: From 1b1ebccab95c40d937e8ce0aaf3bc395ff47efb2 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 5 Nov 2024 16:30:40 -0800 Subject: [PATCH 76/99] output_img = (green_band-infrared) / (green_band + infrared ) --- src/coastseg/zoo_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index d91e63aa..cb48f0a0 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -398,7 +398,7 @@ def RGB_to_infrared( infrared = common.scale(infrared, np.maximum(gx, nx), np.maximum(gy, ny)) # output_img(MNDWI/NDWI) imagery formula (Green - SWIR) / (Green + SWIR) - output_img = (green_band-infrared) / (infrared + green_band) + output_img = (green_band-infrared) / (green_band + infrared ) # Convert the NaNs to -1 output_img[np.isnan(output_img)] = -1 # Rescale to be between 0 - 255 From 9709954ed25b342bd3205351912b6431da74d004 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 5 Nov 2024 18:30:41 -0800 Subject: [PATCH 77/99] get_model_card_classes if the model card file does not have "CLASSES" attribute then load a default set of classes --- src/coastseg/extracted_shoreline.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index ec7fab9c..f7819cce 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -682,14 +682,25 @@ def get_model_card_classes(model_card_path: str) -> dict: dict: dictionary of classes in model card and their corresponding index """ model_card_data = file_utilities.read_json_file(model_card_path, raise_error=True) - # logger.info( - # f"model_card_path: {model_card_path} \nmodel_card_data: {model_card_data}" - # ) # read the classes the model was trained with from either the dictionary under key "DATASET" or "DATASET1" - model_card_dataset = common.get_value_by_key_pattern( - model_card_data, patterns=("DATASET", "DATASET1") - ) - model_card_classes = model_card_dataset["CLASSES"] + try: + model_card_dataset = common.get_value_by_key_pattern( + model_card_data, patterns=("DATASET", "DATASET1") + ) + model_card_classes = model_card_dataset["CLASSES"] + except KeyError: + try: + model_card_classes = common.get_value_by_key_pattern( + model_card_data, patterns=("CLASSES",) + ) + except KeyError: + # use the default classes below if the model card does not have the classes + # This is the case for the ak only model and the global models (11/05/2024) + model_card_classes = {"0": "water", + "1": "whitewater", + "2": "sediment", + "3": "other" + } return model_card_classes From 2af3eea964a7514d972508db588e1d98edeb97ab Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 7 Nov 2024 16:39:33 -0800 Subject: [PATCH 78/99] sort the transect ids columns in raw_transect_time_series.csv --- src/coastseg/coastseg_map.py | 2 ++ src/coastseg/common.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 02a0b181..96db8def 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -1840,6 +1840,8 @@ def extract_all_shorelines(self,roi_ids:list=None) -> None: Returns: None """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] # 1. validate the inputs for shoreline extraction exist: ROIs, transects,shorelines and a downloaded data for each ROI self.validate_extract_shoreline_inputs(roi_ids) diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 826c190a..491c3810 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1921,8 +1921,13 @@ def save_transects( filepath = os.path.join(save_location, "raw_transect_time_series_merged.csv") merged_timeseries_df.to_csv(filepath, sep=",",index=False) + # sort the columns + sorted_columns = [timeseries_df.columns[0]] + sorted(timeseries_df.columns[1:], key=lambda x: int(''.join(filter(str.isdigit, x)))) + timeseries_df = timeseries_df[sorted_columns] + filepath = os.path.join(save_location, "raw_transect_time_series.csv") timeseries_df.to_csv(filepath, sep=",",index=False) + # save transect settings to file transect_settings = get_transect_settings(settings) transect_settings_path = os.path.join(save_location, "transects_settings.json") From e268173582fd056578d5870e2091d1685251db11 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 7 Nov 2024 16:40:41 -0800 Subject: [PATCH 79/99] sort the transect id columns in tidally_corrected_transect_time_series.csv --- src/coastseg/tide_correction.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/coastseg/tide_correction.py b/src/coastseg/tide_correction.py index e4a279af..3c9142c5 100644 --- a/src/coastseg/tide_correction.py +++ b/src/coastseg/tide_correction.py @@ -249,6 +249,8 @@ def correct_tides( 'tidally_corrected') # Save the Tidally corrected time series + sorted_columns = [timeseries_df.columns[0]] + sorted(timeseries_df.columns[1:], key=lambda x: int(''.join(filter(str.isdigit, x)))) + timeseries_df = timeseries_df[sorted_columns] timeseries_df.to_csv(os.path.join(session_path, 'tidally_corrected_transect_time_series.csv'),index=False) From 929fceba4b016652e2f4d8cd3c191ff7dc80fa0d Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 13 Nov 2024 15:42:11 -0800 Subject: [PATCH 80/99] #280 fix add_shore_points_to_timeseries to correctly get the last point of transect & add code to filter out dropped points from merged time series --- scripts/apply_tidal_correction.py | 8 ++++++-- src/coastseg/coastseg_map.py | 2 ++ src/coastseg/common.py | 8 ++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/scripts/apply_tidal_correction.py b/scripts/apply_tidal_correction.py index c89fbbad..8f2bf1ec 100644 --- a/scripts/apply_tidal_correction.py +++ b/scripts/apply_tidal_correction.py @@ -101,7 +101,7 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, transect = transects_utm.iloc[i] transect_id = transect['id'] first = transect.geometry.coords[0] - last = transect.geometry.coords[1] + last = transect.geometry.coords[-1] idx = timeseries_data['transect_id'].str.contains(transect_id) ##in case there is a transect in the config_gdf that doesn't have any intersections @@ -377,7 +377,11 @@ def add_lat_lon_to_timeseries(merged_timeseries_df, transects_gdf,timeseries_df, merged_timeseries_gdf,dropped_points_df = filter_points_outside_transects(merged_timeseries_gdf,transects_gdf,save_location,ext) if not dropped_points_df.empty: timeseries_df = filter_dropped_points_out_of_timeseries(timeseries_df, dropped_points_df) - + merged_timeseries_df = merged_timeseries_df[~merged_timeseries_df.set_index(['dates', 'transect_id']).index.isin(dropped_points_df.set_index(['dates', 'transect_id']).index)] + if len(merged_timeseries_df) == 0: + print("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + + # save the time series of along shore points as points to a geojson (saves shore_x and shore_y as x and y coordinates in the geojson) cross_shore_pts = convert_date_gdf(merged_timeseries_gdf.drop(columns=['x','y','shore_x','shore_y','cross_distance']).to_crs('epsg:4326')) # rename the dates column to date diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 96db8def..91f90b3c 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -2101,6 +2101,8 @@ def save_session(self, roi_ids: list[str], save_transects: bool = True): roi_ids (list[str]): List of ROI IDs. save_transects (bool, optional): Flag to save transects. Defaults to True. """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] # Save extracted shoreline info to session directory session_name = self.get_session_name() for roi_id in roi_ids: diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 491c3810..e13f16f7 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1708,7 +1708,7 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, for i, transect in transects_utm.iterrows(): transect_id = transect['id'] first = transect.geometry.coords[0] - last = transect.geometry.coords[1] + last = transect.geometry.coords[-1] # Filter timeseries data for the current transect_id idx = timeseries_data['transect_id'] == transect_id @@ -1776,7 +1776,11 @@ def add_lat_lon_to_timeseries(merged_timeseries_df, transects_gdf,timeseries_df, merged_timeseries_gdf,dropped_points_df = filter_points_outside_transects(merged_timeseries_gdf,transects_gdf,save_location,ext) if not dropped_points_df.empty: timeseries_df = filter_dropped_points_out_of_timeseries(timeseries_df, dropped_points_df) - + merged_timeseries_df = merged_timeseries_df[~merged_timeseries_df.set_index(['dates', 'transect_id']).index.isin(dropped_points_df.set_index(['dates', 'transect_id']).index)] + if len(merged_timeseries_df) == 0: + logger.warning("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + print("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + # save the time series of along shore points as points to a geojson (saves shore_x and shore_y as x and y coordinates in the geojson) cross_shore_pts = convert_date_gdf(merged_timeseries_gdf.drop(columns=['x','y','shore_x','shore_y','cross_distance']).to_crs('epsg:4326')) # rename the dates column to date From 425c047d4d4361c908401279f22077e955178cd5 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 14 Nov 2024 15:51:01 -0800 Subject: [PATCH 81/99] add a .zenodo.json file to list contributors --- .zenodo.json | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 .zenodo.json diff --git a/.zenodo.json b/.zenodo.json new file mode 100644 index 00000000..a8f3845d --- /dev/null +++ b/.zenodo.json @@ -0,0 +1,111 @@ +{ + "title": "CoastSeg: An Accessible and Extendable Hub for Satellite-Derived Shoreline (SDS) Detection and Mapping", + "description": "CoastSeg is an interactive browser-based program that aims to broaden the adoption of satellite-derived shoreline (SDS) detection workflows among coastal scientists and coastal resource management practitioners. SDS is a sub-field of coastal sciences that aims to detect and post-process a time-series of shoreline locations from publicly available satellite imagery.", + "creators": [ + { + "name": "Fitzpatrick, Sharon", + "orcid": "0000-0001-6513-9132", + "affiliation": "Contracted to U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Buscombe, Daniel", + "orcid": "0000-0001-6217-5584", + "affiliation": "Contracted to U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Warrick, Jonathan A.", + "orcid": "0000-0002-0205-3814", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Lundine, Mark A.", + "orcid": "0000-0002-2878-1713", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Vos, Kilian", + "orcid": "0000-0002-9518-1582", + "affiliation": "New South Wales Department of Planning and Environment, Sydney, Australia" + } + ], + "contributors": [ + { + "name": "Doran, K.S.", + "orcid": "0000-0001-8050-5727", + "affiliation": "U.S. Geological Survey St. Petersburg Coastal and Marine Science Center, St. Petersburg, FL 33701, United States" + }, + { + "name": "Janda, Catherine", + "orcid": "0009-0004-5153-3680", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Gibbs, Ann", + "orcid": "0000-0002-0883-3774", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Weber, Kathryn M.", + "orcid": "0000-0002-5498-7117", + "affiliation": "U.S. Geological Survey Woods Hole Coastal and Marine Science Center, Woods Hole, MA 02543, United States" + }, + { + "name": "O'Neill, Andrea", + "orcid": "0000-0003-1656-4372", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Heslin, Julia L.", + "orcid": "0000-0002-6895-800X", + "affiliation": "U.S. Geological Survey Woods Hole Coastal and Marine Science Center, Woods Hole, MA 02543, United States" + }, + { + "name": "Burgess, Joseph", + "affiliation": "U.S. Geological Survey St. Petersburg Coastal and Marine Science Center, St. Petersburg, FL 33701, United States" + }, + { + "name": "Vitousek, Sean", + "orcid": "0000-0002-3369-4673", + "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" + }, + { + "name": "Himmelstoss, Emily A.", + "orcid": "0000-0002-1760-5474", + "affiliation": "U.S. Geological Survey Woods Hole Coastal and Marine Science Center, Woods Hole, MA 02543, United States" + }, + { + "name": "Bishop-Taylor, Robbi", + "affiliation": "Geoscience Australia" + }, + { + "name": "Lazarus, Eli D." + }, + { + "name": "Ku, Venus" + }, + { + "name": "Goldstein, Evan B.", + "orcid": "0000-0001-9358-1016", + "affiliation": "Sediment-Science" + } + ], + "license": { + "id": "GPL-3.0-only" + }, + "keywords": [ + "CoastSeg", + "Satellite-Derived Shoreline", + "SDS", + "Coastal Mapping", + "Remote Sensing" + ], + "access_right": "open", + "communities": [ + { + "identifier": "coastal-science" + } + ], + "upload_type": "software", + "language": "eng" + } + \ No newline at end of file From 01427603b2ce5b560e022ea2bc72ddaedf1ef75c Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 14 Nov 2024 15:55:30 -0800 Subject: [PATCH 82/99] add missing contributor to .zenodo.json --- .zenodo.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.zenodo.json b/.zenodo.json index a8f3845d..278f8d95 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -68,6 +68,10 @@ "orcid": "0000-0002-3369-4673", "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" }, + { + "name": "Floris R. Calkoen", + "orcid": "0000-0002-7155-6247" + }, { "name": "Himmelstoss, Emily A.", "orcid": "0000-0002-1760-5474", From ac94d75ac7e398fe962a6c34203ff98b0b79b5f5 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 14 Nov 2024 16:13:07 -0800 Subject: [PATCH 83/99] add missing info for contributors --- .zenodo.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.zenodo.json b/.zenodo.json index 278f8d95..bac5ec19 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -63,14 +63,10 @@ "name": "Burgess, Joseph", "affiliation": "U.S. Geological Survey St. Petersburg Coastal and Marine Science Center, St. Petersburg, FL 33701, United States" }, - { - "name": "Vitousek, Sean", - "orcid": "0000-0002-3369-4673", - "affiliation": "U.S. Geological Survey Pacific Coastal and Marine Science Center, Santa Cruz, California, United States" - }, { "name": "Floris R. Calkoen", - "orcid": "0000-0002-7155-6247" + "orcid": "0000-0002-7155-6247", + "affiliation": "Deltares | Delft, Netherlands" }, { "name": "Himmelstoss, Emily A.", @@ -79,13 +75,17 @@ }, { "name": "Bishop-Taylor, Robbi", + "orcid": "0000-0002-1533-2599", "affiliation": "Geoscience Australia" }, { - "name": "Lazarus, Eli D." + "name": "Lazarus, Eli D.", + "orcid": "0000-0003-2404-9661", + "affiliation": "University of Southampton" }, { - "name": "Ku, Venus" + "name": "Ku, Venus", + "orcid": "0000-0002-7454-8277" }, { "name": "Goldstein, Evan B.", From 0fce216b00235948c2e34bf2b6f53db70e9a0ad6 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 18 Nov 2024 15:28:10 -0800 Subject: [PATCH 84/99] update NDWI models to include global_segformer_NDWI_4class_14172182 and AK_segformer_NDWI_4class_14183210 --- src/coastseg/models_UI.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 77831d6d..9ed7ccdb 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -67,7 +67,10 @@ def __init__(self): "segformer_MNDWI_4class_8213443", ] self.NDWI_models = [ - "segformer_NDWI_4class_8213427", + "NDWI": [ + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model + ], ] self.session_name = "" self.shoreline_session_directory = "" From 5ee27491fae5dc32218e1a1c1b2ae9ebe8a6fae4 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 22 Nov 2024 14:20:25 -0800 Subject: [PATCH 85/99] add the latests MNDWI models to CoastSeg zoo --- src/coastseg/models_UI.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 9ed7ccdb..033ab7f2 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -64,13 +64,12 @@ def __init__(self): "AK_segformer_RGB_4class_14037041", # AK segformer model ] self.MNDWI_models = [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", + "AK_segformer_MNDWI_4class_14187478 ", # AK segformer model ] self.NDWI_models = [ - "NDWI": [ "global_segformer_NDWI_4class_14172182", # global segformer model "AK_segformer_NDWI_4class_14183210", # AK segformer model - ], ] self.session_name = "" self.shoreline_session_directory = "" From f414db401f15567e2c9a85bacdfc40a0eea265fe Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 22 Nov 2024 15:46:22 -0800 Subject: [PATCH 86/99] allow model to be loaded locally by the new settings use_local_model and local_model_path --- src/coastseg/zoo_model.py | 42 +++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index cb48f0a0..6a23e3cc 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -608,6 +608,8 @@ def set_settings(self, **kwargs): "use_GPU": "0", "implementation": "BEST", "model_type": "global_segformer_RGB_4class_14036903", + "local_model_path": "", # local path to the directory containing the model + "use_local_model": True, # Use local model (not one from zeneodo) "otsu": False, "tta": False, "cloud_thresh": 0.5, # threshold on maximum cloud cover @@ -995,6 +997,39 @@ def postprocess_data( file_utilities.move_files(outputs_path, session_path, delete_src=True) session.save(session.path) + def get_weights_directory(self,model_implementation:str, model_id: str) -> str: + """ + Retrieves the directory path where the model weights are stored. + This method determines whether to use a local model path or to download the model + from a remote source based on the settings provided. If the local model path is + specified and exists, it will use that path. Otherwise, it will create a directory + for the model and download the weights. + Args: + model_implementation (str): The implementation type of the model either 'BEST' or 'ENSEMBLE' + model_id (str): The identifier for the model. This is the zenodo ID located at the end of the URL + Returns: + str: The directory path where the model weights are stored. + Raises: + FileNotFoundError: If the local model path is specified but does not exist. + """ + + USE_LOCAL_MODEL = self.settings.get("use_local_model", False) + LOCAL_MODEL_PATH = self.settings.get("local_model_path", "") + + if USE_LOCAL_MODEL and not os.path.exists(LOCAL_MODEL_PATH): + raise FileNotFoundError(f"The local model path does not exist at {LOCAL_MODEL_PATH}") + + # check if a local model should be loaded or not + if USE_LOCAL_MODEL == False or LOCAL_MODEL_PATH == "": + # create the model directory & download the model + weights_directory = self.get_model_directory(model_id) + self.download_model(model_implementation, model_id, weights_directory) + else: + # load the model from the local model path + weights_directory = LOCAL_MODEL_PATH + + return weights_directory + def prepare_model(self, model_implementation: str, model_id: str): """ Prepares the model for use by downloading the required files and loading the model. @@ -1003,12 +1038,10 @@ def prepare_model(self, model_implementation: str, model_id: str): model_implementation (str): The model implementation either 'BEST' or 'ENSEMBLE' model_id (str): The ID of the model. """ - self.clear_zoo_model() - # create the model directory - self.weights_directory = self.get_model_directory(model_id) + # weights_directory is the directory that contains the model weights, the model card json files and the BEST_MODEL.txt file + self.weights_directory = self.get_weights_directory(model_implementation, model_id) logger.info(f"self.weights_directory:{self.weights_directory}") - self.download_model(model_implementation, model_id, self.weights_directory) weights_list = self.get_weights_list(model_implementation) # Load the model from the config files @@ -1096,6 +1129,7 @@ def run_model( logger.info(f"use_tta: {use_tta}") print(f"Running model {model_name}") + # print(f"self.settings: {self.settings}") self.prepare_model(model_implementation, model_name) # create a session From 3cf64b6663ba475e8ac26a359bc917e5c5135978 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 22 Nov 2024 16:25:30 -0800 Subject: [PATCH 87/99] update the scripts to test the zoo models --- debug_scripts/test_extract_shorelines_with_models.py | 10 +++++++--- debug_scripts/test_models.py | 10 ++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/debug_scripts/test_extract_shorelines_with_models.py b/debug_scripts/test_extract_shorelines_with_models.py index c798506d..7026df54 100644 --- a/debug_scripts/test_extract_shorelines_with_models.py +++ b/debug_scripts/test_extract_shorelines_with_models.py @@ -24,11 +24,13 @@ # get input directory from the args input_directory = args.path -# uncomment the following lines for local testing only +# uncomment the following lines for local testing only DUCK CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg roi_name = "ID_ppy1_datetime07-19-24__10_59_31" # name of the ROI directory in CoastSeg input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + + def create_settings(new_settings:dict={}): settings ={ 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid @@ -131,10 +133,12 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", # global segformer model + "AK_segformer_MNDWI_4class_14187478", # AK segformer model ], "NDWI": [ - "segformer_NDWI_4class_8213427", + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model ], } diff --git a/debug_scripts/test_models.py b/debug_scripts/test_models.py index df79473b..e841b290 100644 --- a/debug_scripts/test_models.py +++ b/debug_scripts/test_models.py @@ -106,13 +106,19 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", # global segformer model + "AK_segformer_MNDWI_4class_14187478", # AK segformer model ], "NDWI": [ - "segformer_NDWI_4class_8213427", + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model ], } + + img_types = ["RGB", "MNDWI", "NDWI"] +# img_types = [ "NDWI"] +# img_types = [ "MNDWI"] test_model(img_types, available_models_dict, input_directory) \ No newline at end of file From a6dfdbddf835f0cad8d7e47f365de9e25806cb04 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 4 Nov 2024 14:45:21 -0800 Subject: [PATCH 88/99] update scripts to test the CoastSeg zoo workflow models replace np.NaN with np.nan in zoo_model.py replace RGB models with new RGB models for AK and globe 11/4 update the available default model in both zoo_workflow and zoo_model update default model in test_extract_shorelines_with_models update readme to include new models on zenodo 14037041 and 14036903 --- 3_zoo_workflow.py | 13 +- README.md | 3 +- .../test_extract_shorelines_with_models.py | 144 +++++++++++++++++ debug_scripts/test_models.py | 146 ++++++++++-------- debug_scripts/test_new_models.py | 99 ------------ src/coastseg/extracted_shoreline.py | 1 - src/coastseg/models_UI.py | 9 +- src/coastseg/zoo_model.py | 6 +- 8 files changed, 239 insertions(+), 182 deletions(-) create mode 100644 debug_scripts/test_extract_shorelines_with_models.py delete mode 100644 debug_scripts/test_new_models.py diff --git a/3_zoo_workflow.py b/3_zoo_workflow.py index 116998a3..0f93ee94 100644 --- a/3_zoo_workflow.py +++ b/3_zoo_workflow.py @@ -9,26 +9,27 @@ # Extract Shoreline Settings settings ={ - 'min_length_sl': 500, # minimum length (m) of shoreline perimeter to be valid - 'max_dist_ref':300, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline + 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid + 'max_dist_ref':500, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline 'cloud_thresh': 0.5, # threshold on maximum cloud cover (0-1). If the cloud cover is above this threshold, no shorelines will be extracted from that image - 'dist_clouds': 300, # distance(m) around clouds where shoreline will not be mapped - 'min_beach_area': 500, # minimum area (m^2) for an object to be labelled as a beach + 'dist_clouds': 100, # distance(m) around clouds where shoreline will not be mapped + 'min_beach_area': 50, # minimum area (m^2) for an object to be labelled as a beach 'sand_color': 'default', # 'default', 'latest', 'dark' (for grey/black sand beaches) or 'bright' (for white sand beaches) "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. } + # The model can be run using the following settings: model_setting = { "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", "use_GPU": "0", # 0 or 1 0 means no GPU "implementation": "BEST", # BEST or ENSEMBLE - "model_type": "segformer_RGB_4class_8190958", # model name ex. segformer_RGB_4class_8190958 + "model_type": "global_segformer_RGB_4class_14036903", # model name from the zoo "otsu": False, # Otsu Thresholding "tta": False, # Test Time Augmentation } # Available models can run input "RGB" # or "MNDWI" or "NDWI" -img_type = "RGB" +img_type = "RGB" # make sure the model name is compatible with the image type # percentage of no data allowed in the image eg. 0.75 means 75% of the image can be no data percent_no_data = 0.75 diff --git a/README.md b/README.md index ee05db8d..a5bfe27d 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,8 @@ The models currently available are: * Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 MNDWI images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8213443 * Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 NDWI images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8213427 -* Buscombe, D. (2023). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of Sentinel-2 and Landsat-7/8 3-band (RGB) images of coasts. (v1.0) [Data set]. Zenodo. https://doi.org/10.5281/zenodo.8190958 +* Buscombe, D. (2024). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of PlanetScope, Sentinel-2 and Landsat-5/7/8/9 visible-band (RGB) images of coasts. 'Global' version. Zenodo. https://doi.org/10.5281/zenodo.14036903 +* Buscombe, D. (2024). Doodleverse/CoastSeg Segformer models for 4-class (water, whitewater, sediment and other) segmentation of PlanetScope, Sentinel-2 and Landsat-5/7/8/9 visible-band (RGB) images of coasts. 'Alaska-only' version. Zenodo. https://doi.org/10.5281/zenodo.14037041 Made using the following software, implemented as [Doodleverse/Segmentation Gym]([Zoo](https://github.com/Doodleverse/segmentation_gym)): diff --git a/debug_scripts/test_extract_shorelines_with_models.py b/debug_scripts/test_extract_shorelines_with_models.py new file mode 100644 index 00000000..c798506d --- /dev/null +++ b/debug_scripts/test_extract_shorelines_with_models.py @@ -0,0 +1,144 @@ +import os +import argparse + +# internal python imports +from coastseg import zoo_model +from transformers import TFSegformerForSemanticSegmentation + +# how to run this script +# Replace parameter after -P with path to ROI's RGB directory +# python test_models.py -P " +# Example +# python test_models.py -P C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" + +# Create the parser +parser = argparse.ArgumentParser(description="Run models on provided input directory.") +parser.add_argument( + "-P", + "--path", + type=str, + help="Path to an ROI's RGB directory from the data directory", +) +args = parser.parse_args() + +# get input directory from the args +input_directory = args.path + +# uncomment the following lines for local testing only +CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg +roi_name = "ID_ppy1_datetime07-19-24__10_59_31" # name of the ROI directory in CoastSeg +input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + +def create_settings(new_settings:dict={}): + settings ={ + 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid + 'max_dist_ref':600, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline + 'cloud_thresh': 0.5, # threshold on maximum cloud cover (0-1). If the cloud cover is above this threshold, no shorelines will be extracted from that image + 'dist_clouds': 100, # distance(m) around clouds where shoreline will not be mapped + 'min_beach_area': 100, # minimum area (m^2) for an object to be labelled as a beach + 'sand_color': 'default', # 'default', 'latest', 'dark' (for grey/black sand beaches) or 'bright' (for white sand beaches) + "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. + } + settings.update(new_settings) + return settings + +def create_model_settings(input_directory:str,img_type:str,implementation: str="BEST"): + """ + Creates a settings dictionary for model configuration. + Args: + input_directory (str): The directory containing the input images. + img_type (str): The type of images (e.g., 'RGB', 'NIR'). + implementation (str, optional): The implementation type, either 'BEST' or 'ENSEMBLE'. Defaults to 'BEST'. + Returns: + dict: A dictionary containing the model settings. + Raises: + AssertionError: If the input directory does not exist. + """ + model_setting = { + "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", + "use_GPU": "0", # 0 or 1 0 means no GPU + "implementation": "BEST", # BEST or ENSEMBLE + "model_type":"global_segformer_RGB_4class_14036903", # model name ex. global_segformer_RGB_4class_14036903 + "otsu": False, # Otsu Thresholding + "tta": False, # Test Time Augmentation + } + # assrt the input directory exists + assert os.path.exists(input_directory), f"Input directory {input_directory} does not exist" + model_setting["sample_direc"] = input_directory + model_setting["img_type"] = img_type + return model_setting + +def test_model(img_types:list, available_models_dict:dict, input_directory:str): + """ + Tests models on different types of images. + Parameters: + img_types (list): A list of image types to be tested. + available_models_dict (dict): A dictionary where keys are image types and values are lists of models available for those image types. + input_directory (str): The directory where input images are stored. Should be the RGB directory for the ROI containing the images + Raises: + Exception: If session_name is not generated correctly. + Prints: + Various debug information including the session name, implementation type, selected image type, selected model, and sample directory. + """ + for img_type_index in range(len(img_types)): + print(f"Running models for image input type {img_type_index}") + selected_img_type = img_types[img_type_index] + model_list = available_models_dict.get(selected_img_type) + if not model_list: + print(f"No models available for {selected_img_type}") + continue + + for model_selected in model_list: + print(f"Running model {model_selected}") + implementation = "BEST" # "ENSEMBLE" or "BEST" + session_name = ( + model_selected + + "_" + + selected_img_type + + "_" + + implementation + + "_" + + "session" + ) + if not session_name: + raise Exception("Something went wrong...") + + print(f"session_name: {session_name}") + print(f"implementation: {implementation}") + print(f"selected_img_type: {selected_img_type}") + print(f"model_selected: {model_selected}") + print(f"sample_directory: {input_directory}") + + zoo_model_instance = zoo_model.Zoo_Model() + # create and set settings for the model + model_setting = create_model_settings(input_directory, selected_img_type, implementation) + extract_shoreline_settings = create_settings() + model_setting.update(extract_shoreline_settings) + zoo_model_instance.set_settings(**model_setting) + + # run the model and extract shorelines + zoo_model_instance.run_model_and_extract_shorelines( + model_setting["sample_direc"], + session_name=session_name, + shoreline_path="", + transects_path="", + shoreline_extraction_area_path = "", + ) + +available_models_dict = { + "RGB": [ + "global_segformer_RGB_4class_14036903", # global segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model + ], + "MNDWI": [ + "segformer_MNDWI_4class_8213443", + ], + "NDWI": [ + "segformer_NDWI_4class_8213427", + ], +} + +# img_types = ["RGB"] +img_types = ["RGB", "MNDWI", "NDWI"] + +test_model(img_types, available_models_dict, input_directory) \ No newline at end of file diff --git a/debug_scripts/test_models.py b/debug_scripts/test_models.py index 5bd5de41..df79473b 100644 --- a/debug_scripts/test_models.py +++ b/debug_scripts/test_models.py @@ -5,6 +5,11 @@ from coastseg import zoo_model from transformers import TFSegformerForSemanticSegmentation +# Last update 11/04/2024 +# Added new RGB segformer models to the available_models_dict +# removed old sat models from the available_models_dict + + # how to run this script # Replace parameter after -P with path to ROI's RGB directory # python test_models.py -P " @@ -12,7 +17,7 @@ # python test_models.py -P C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" # Create the parser -parser = argparse.ArgumentParser(description="Run models on provided inpput directory.") +parser = argparse.ArgumentParser(description="Run models on provided input directory.") parser.add_argument( "-P", "--path", @@ -23,82 +28,91 @@ # get input directory from the args input_directory = args.path -# for local testing only -input_directory = r"C:\development\doodleverse\coastseg\CoastSeg\data\ID_12_datetime06-05-23__04_16_45\jpg_files\preprocessed\RGB" - -# move them into their parent directories -parent_directory_names = [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", - "segformer_MNDWI_4class_8213443", - "sat_MNDWI_4class_7352850", - "segformer_NDWI_4class_8213427", - "sat_NDWI_4class_7352859", -] + +# uncomment the following lines for local testing only +CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg +roi_name = "ID_ztg2_datetime07-01-24__02_39_39" # name of the ROI directory in CoastSeg +input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + +def test_model(img_types:list, available_models_dict:dict, input_directory:str): + """ + Tests models on different types of images. + Parameters: + img_types (list): A list of image types to be tested. + available_models_dict (dict): A dictionary where keys are image types and values are lists of models available for those image types. + input_directory (str): The directory where input images are stored. Should be the RGB directory for the ROI containing the images + Raises: + Exception: If session_name is not generated correctly. + Prints: + Various debug information including the session name, implementation type, selected image type, selected model, and sample directory. + """ + for img_type_index in range(len(img_types)): + print(f"Running models for image input type {img_type_index}") + selected_img_type = img_types[img_type_index] + model_list = available_models_dict.get(selected_img_type) + if not model_list: + print(f"No models available for {selected_img_type}") + continue + + for model_selected in model_list: + print(f"Running model {model_selected}") + implementation = "BEST" # "ENSEMBLE" or "BEST" + session_name = ( + model_selected + + "_" + + selected_img_type + + "_" + + implementation + + "_" + + "session" + ) + if not session_name: + raise Exception("Something went wrong...") + + print(f"session_name: {session_name}") + print(f"implementation: {implementation}") + print(f"selected_img_type: {selected_img_type}") + print(f"model_selected: {model_selected}") + print(f"sample_directory: {input_directory}") + + # load the basic zoo_model settings + model_dict = { + "sample_direc": input_directory, + "use_GPU": "0", + "implementation": implementation, + "model_type": model_selected, + "otsu": False, + "tta": False, + } + + zoo_model_instance = zoo_model.Zoo_Model() + + zoo_model_instance.run_model( + img_types[img_type_index], + model_dict["implementation"], + session_name, + model_dict["sample_direc"], + model_name=model_dict["model_type"], + use_GPU="0", + use_otsu=model_dict["otsu"], + use_tta=model_dict["tta"], + percent_no_data=50.0, + ) + available_models_dict = { "RGB": [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", + "global_segformer_RGB_4class_14036903", # global segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ "segformer_MNDWI_4class_8213443", - "sat_MNDWI_4class_7352850", ], "NDWI": [ "segformer_NDWI_4class_8213427", - "sat_NDWI_4class_7352859", ], } - img_types = ["RGB", "MNDWI", "NDWI"] -for img_type_index in range(len(img_types)): - print(f"Running models for image input type {img_type_index}") - selected_img_type = img_types[img_type_index] - model_list = available_models_dict.get(selected_img_type) - for model_selected in model_list: - print(f"Running model {model_selected}") - implementation = "BEST" # "ENSEMBLE" or "BEST" - session_name = ( - model_selected - + "_" - + selected_img_type - + "_" - + implementation - + "_" - + "session" - ) - if not session_name: - raise Exception("Something went wrong...") - - print(f"session_name: {session_name}") - print(f"implementation: {implementation}") - print(f"selected_img_type: {selected_img_type}") - print(f"model_selected: {model_selected}") - print(f"sample_directory: {input_directory}") - - # load the basic zoo_model settings - model_dict = { - "sample_direc": input_directory, - "use_GPU": "0", - "implementation": implementation, - "model_type": model_selected, - "otsu": False, - "tta": False, - } - - zoo_model_instance = zoo_model.Zoo_Model() - - zoo_model_instance.run_model( - img_types[img_type_index], - model_dict["implementation"], - session_name, - model_dict["sample_direc"], - model_name=model_dict["model_type"], - use_GPU="0", - use_otsu=model_dict["otsu"], - use_tta=model_dict["tta"], - percent_no_data=50.0, - ) +test_model(img_types, available_models_dict, input_directory) \ No newline at end of file diff --git a/debug_scripts/test_new_models.py b/debug_scripts/test_new_models.py deleted file mode 100644 index 091008c9..00000000 --- a/debug_scripts/test_new_models.py +++ /dev/null @@ -1,99 +0,0 @@ -import os -import zipfile -import re -import glob - -# internal python imports -from coastseg import zoo_model - -# def unzip_and_rename(directory): -# for item in os.listdir(directory): # loop through items in dir -# item_path = os.path.join(directory, item) -# if item.endswith('.zip'): # check for ".zip" extension -# zip_ref = zipfile.ZipFile(item_path) # create zipfile object -# zip_ref.extractall(directory) # extract file to dir -# zip_ref.close() # close file -# os.remove(item_path) # delete zipped file - -# for item in os.listdir(directory): -# item_path = os.path.join(directory, item) -# if os.path.isdir(item_path): -# new_folder_name = re.sub('_model.*', '', item) -# new_folder_path = os.path.join(directory, new_folder_name) -# os.rename(item_path, new_folder_path) - -# # unzip and rename the downloaded files -# uncomment these lines when unzipping your first fir the first time -# dir_path = put your directory here -# unzip_and_rename(dir_path) - -# move them into their parent directories -parent_directory_names=['sat_5band_2class_7448390', 'sat_5band_4class_7344606', 'sat_MNDWI_2class_7557080', 'sat_MNDWI_4class_7352850', 'sat_NDWI_2class_7557072', 'sat_NDWI_4class_7352859', 'sat_RGB_2class_7865364', 'sat_RGB_4class_6950472'] -# I did this manually - -available_models_dict = { - "RGB": [ - "sat_RGB_2class_7865364", - "sat_RGB_4class_6950472", - ], - "RGB+MNDWI+NDWI": [ - "sat_5band_4class_7344606", - "sat_5band_2class_7448390", - ], - "MNDWI": [ - "sat_MNDWI_4class_7352850", - "sat_MNDWI_2class_7557080", - ], - "NDWI": [ - "sat_NDWI_4class_7352859", - "sat_NDWI_2class_7557072", - ] -} - -img_types = ['RGB',"RGB+MNDWI+NDWI","MNDWI","NDWI"] -# for img_type_index in range(len(img_types)): -# for img_type_index in [2,3]: -for img_type_index in range(len(img_types)): - print(img_type_index) - for model_index in range(2): - print(model_index) - implementation= "BEST" # "ENSEMBLE" or "BEST" - selected_img_type = img_types[img_type_index] - # selected_img_type = "RGB" - model_selected = available_models_dict.get(selected_img_type)[model_index] - # model_selected = 'sat_RGB_2class_7865364' - session_name = model_selected + '_'+selected_img_type+'_'+implementation+'_'+'session' - if not session_name: - raise Exception('Something went wrong...') - - sample_directory= r'C:\1_USGS\1_CoastSeg\1_official_CoastSeg_repo\CoastSeg\data\ID_0_datetime04-25-23__02_19_04\jpg_files\preprocessed\RGB' - - print(f'session_name: {session_name}') - print(f'implementation: {implementation}') - print(f'selected_img_type: {selected_img_type}') - print(f'model_selected: {model_selected}') - print(f'sample_directory: {sample_directory}') - - # load the basic zoo_model settings - model_dict = { - "sample_direc": sample_directory, - "use_GPU": "0", - "implementation": implementation, - "model_type": model_selected, - "otsu": False, - "tta": False, - } - - zoo_model_instance = zoo_model.Zoo_Model() - - zoo_model_instance.run_model( - img_types[img_type_index], - model_dict["implementation"], - session_name, - model_dict["sample_direc"], - model_name=model_dict["model_type"], - use_GPU="0", - use_otsu=model_dict["otsu"], - use_tta=model_dict["tta"], - percent_no_data=50.0, - ) \ No newline at end of file diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index dd895766..ec7fab9c 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -622,7 +622,6 @@ def process_satellite_image( min_beach_area = settings["min_beach_area"] land_mask = remove_small_objects_and_binarize(land_mask, min_beach_area) - # get the shoreline from the image shoreline = find_shoreline( fn, diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 842e8007..77831d6d 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -53,19 +53,16 @@ def __init__(self): "sample_direc": None, "use_GPU": "0", "implementation": "BEST", - "model_type": "segformer_RGB_4class_8190958", + "model_type": "global_segformer_RGB_4class_14036903", "otsu": False, "tta": False, "img_type": "RGB", } # list of RGB and MNDWI models available self.RGB_models = [ - "segformer_RGB_4class_8190958", - "sat_RGB_4class_6950472", + "global_segformer_RGB_4class_14036903", # global segformer model + "AK_segformer_RGB_4class_14037041", # AK segformer model ] - # self.five_band_models = [ - # "sat_5band_4class_7344606", - # ] self.MNDWI_models = [ "segformer_MNDWI_4class_8213443", ] diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 0bf18206..d91e63aa 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -380,7 +380,7 @@ def RGB_to_infrared( green_band = skimage.io.imread(file[0])[:, :, 1].astype("float") # Read infrared(SWIR or NIR) and cast to float infrared = skimage.io.imread(file[1]).astype("float") - # Transform 0 to np.NAN + # Transform 0 to np.nan green_band[green_band == 0] = np.nan infrared[infrared == 0] = np.nan # Mask out NaNs @@ -607,7 +607,7 @@ def set_settings(self, **kwargs): "sample_direc": None, "use_GPU": "0", "implementation": "BEST", - "model_type": "segformer_RGB_4class_8190958", + "model_type": "global_segformer_RGB_4class_14036903", "otsu": False, "tta": False, "cloud_thresh": 0.5, # threshold on maximum cloud cover @@ -1167,7 +1167,7 @@ def get_files_for_seg( # filter out files with no data pixels greater than percent_no_data len_before = len(model_ready_files) model_ready_files = filter_no_data_pixels(model_ready_files, percent_no_data) - print(f"From {len_before} files {len_before - len(model_ready_files)} files were filtered out due to no data pixels percentage being greater than {percent_no_data*100}%.") + print(f"{len_before - len(model_ready_files)}/{len_before} files were filtered out because the percentage of no data pixels in the image was greater than {percent_no_data}%.") return model_ready_files From 013d5a81a1aaa1f9e0166c760ce22e0e92388218 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Tue, 5 Nov 2024 16:30:40 -0800 Subject: [PATCH 89/99] output_img = (green_band-infrared) / (green_band + infrared ) get_model_card_classes if the model card file does not have "CLASSES" attribute then load a default set of classes refactor code to allow type : reference shoreline update factory to allow multiple names for the reference shoreline to ba passed in modify load_gdf_config to allow reference_shoreline type to be passed in and allow a single roi_id to be passed to extract all shoreline and save_session sort the transect ids columns in raw_transect_time_series.csv sort the transect id columns in tidally_corrected_transect_time_series.csv update NDWI models to include global_segformer_NDWI_4class_14172182 and AK_segformer_NDWI_4class_14183210 add the latests MNDWI models to CoastSeg zoo --- scripts/apply_tidal_correction.py | 8 +++- src/coastseg/coastseg_map.py | 39 +++++++++++++---- src/coastseg/common.py | 26 ++++++++--- src/coastseg/extracted_shoreline.py | 25 ++++++++--- src/coastseg/factory.py | 6 ++- src/coastseg/geodata_processing.py | 68 ++++++++--------------------- src/coastseg/models_UI.py | 6 ++- src/coastseg/tide_correction.py | 2 + src/coastseg/zoo_model.py | 2 +- 9 files changed, 104 insertions(+), 78 deletions(-) diff --git a/scripts/apply_tidal_correction.py b/scripts/apply_tidal_correction.py index c89fbbad..8f2bf1ec 100644 --- a/scripts/apply_tidal_correction.py +++ b/scripts/apply_tidal_correction.py @@ -101,7 +101,7 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, transect = transects_utm.iloc[i] transect_id = transect['id'] first = transect.geometry.coords[0] - last = transect.geometry.coords[1] + last = transect.geometry.coords[-1] idx = timeseries_data['transect_id'].str.contains(transect_id) ##in case there is a transect in the config_gdf that doesn't have any intersections @@ -377,7 +377,11 @@ def add_lat_lon_to_timeseries(merged_timeseries_df, transects_gdf,timeseries_df, merged_timeseries_gdf,dropped_points_df = filter_points_outside_transects(merged_timeseries_gdf,transects_gdf,save_location,ext) if not dropped_points_df.empty: timeseries_df = filter_dropped_points_out_of_timeseries(timeseries_df, dropped_points_df) - + merged_timeseries_df = merged_timeseries_df[~merged_timeseries_df.set_index(['dates', 'transect_id']).index.isin(dropped_points_df.set_index(['dates', 'transect_id']).index)] + if len(merged_timeseries_df) == 0: + print("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + + # save the time series of along shore points as points to a geojson (saves shore_x and shore_y as x and y coordinates in the geojson) cross_shore_pts = convert_date_gdf(merged_timeseries_gdf.drop(columns=['x','y','shore_x','shore_y','cross_distance']).to_crs('epsg:4326')) # rename the dates column to date diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 02a0b181..17dedd65 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -792,28 +792,46 @@ def load_gdf_config(self, filepath: str) -> None: """Load features from GeoDataFrame located in geojson file at filepath onto map. Features in config file should contain a column named "type" which contains one of the - following possible feature types: "roi", "shoreline", "transect", "bbox". + following possible feature types: "roi", "shoreline", "reference_shoreline" "transect", "bbox". Args: filepath (str): full path to config_gdf.geojson """ gdf = geodata_processing.read_gpd_file(filepath) - gdf = common.stringify_datetime_columns(gdf) + gdf = common.stringify_datetime_columns(gdf) # each possible type of feature and the columns that should be loaded feature_types = { "bbox": ["geometry"], "roi": ["id", "geometry"], "transect": list(Transects.COLUMNS_TO_KEEP), - "shoreline": ["geometry"], + "shoreline": ["geometry","id"], "shoreline_extraction_area": ["geometry"], } + feature_names = { + "bbox": ["bbox"], + "roi": ["roi"], + "transect": ["transect", "transects"], + "shoreline": ["shoreline", "shorelines", "reference_shoreline", "reference_shorelines","reference shoreline","reference shorelines"], + "shoreline_extraction_area": ["shoreline_extraction_area"], + } + # attempt to load each feature type onto the map from the config_gdf.geojson file for feature_name, columns in feature_types.items(): - feature_gdf = self._extract_feature_gdf(gdf, feature_name, columns) + # create an empty geodataframe to store the features + feature_gdf = gpd.GeoDataFrame() + + # Step 1: Group the like features into a single feature_gdf + for name in feature_names[feature_name]: + new_feature_gdf = self._extract_feature_gdf(gdf, name, columns) + if new_feature_gdf.empty: + continue + # append all the features into a single geodataframe + feature_gdf = pd.concat([feature_gdf, new_feature_gdf]) + # Step 2: Load each feature gdf as a separate kind of feature eg. roi, shoreline, transect, bbox # if the feature is not an ROI use the load_feature_on_map method to load it. (eg. shorelines, transects, bbox) if feature_name != "roi": self.load_feature_on_map(feature_name, gdf=feature_gdf, zoom_to_bounds=True) @@ -837,14 +855,15 @@ def load_gdf_config(self, filepath: str) -> None: del gdf def _extract_feature_gdf( - self, gdf: gpd.GeoDataFrame, feature_type: str, columns: List[str] + self, gdf: gpd.GeoDataFrame, feature_type: Union[int, str], columns: List[str] ) -> gpd.GeoDataFrame: """ Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. Args: gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. - feature_type (str): The type of feature to extract. + feature_type Union[int, str]: The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + Feature_type can also be list of strings such as ['shoreline','shorelines', 'reference shoreline'] to match the same kind of feature with muliple names. columns (List[str]): A list of column names to extract from the GeoDataFrame. Returns: @@ -869,8 +888,8 @@ def _extract_feature_gdf( ) # select only the features that are of the correct type and have the correct columns - feature_gdf = gdf[gdf["type"] == feature_type][keep_columns] - + feature_gdf = common.extract_feature_from_geodataframe(gdf, feature_type) + feature_gdf = feature_gdf[keep_columns] return feature_gdf def preview_available_images(self,selected_ids: set = None): @@ -1840,6 +1859,8 @@ def extract_all_shorelines(self,roi_ids:list=None) -> None: Returns: None """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] # 1. validate the inputs for shoreline extraction exist: ROIs, transects,shorelines and a downloaded data for each ROI self.validate_extract_shoreline_inputs(roi_ids) @@ -2099,6 +2120,8 @@ def save_session(self, roi_ids: list[str], save_transects: bool = True): roi_ids (list[str]): List of ROI IDs. save_transects (bool, optional): Flag to save transects. Defaults to True. """ + if isinstance(roi_ids, str): + roi_ids = [roi_ids] # Save extracted shoreline info to session directory session_name = self.get_session_name() for roi_id in roi_ids: diff --git a/src/coastseg/common.py b/src/coastseg/common.py index 826c190a..ff34fefd 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1505,14 +1505,15 @@ def create_unique_ids(data, prefix_length: int = 3): def extract_feature_from_geodataframe( - gdf: gpd.GeoDataFrame, feature_type: str, type_column: str = "type" + gdf: gpd.GeoDataFrame, feature_type: Union[int, str], type_column: str = "type" ) -> gpd.GeoDataFrame: """ Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. Args: gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. - feature_type (str): The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + feature_type Union[int, str]: The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' + Feature_type can also be list of strings such as ['shoreline','shorelines', 'reference shoreline'] to match the same kind of feature with muliple names. type_column (str, optional): The name of the column containing feature types. Defaults to 'type'. Returns: @@ -1527,8 +1528,12 @@ def extract_feature_from_geodataframe( f"Column '{type_column}' does not exist in the GeoDataFrame. Incorrect config_gdf.geojson loaded" ) - # select only the features that are of the correct type and have the correct columns - feature_gdf = gdf[gdf[type_column] == feature_type] + if isinstance(feature_type, list): + # select only the features that are of the correct type and have the correct columns + feature_gdf = gdf[gdf[type_column].isin(feature_type)] + else: + # select only the features that are of the correct type and have the correct columns + feature_gdf = gdf[gdf[type_column] == feature_type] return feature_gdf @@ -1708,7 +1713,7 @@ def add_shore_points_to_timeseries(timeseries_data: pd.DataFrame, for i, transect in transects_utm.iterrows(): transect_id = transect['id'] first = transect.geometry.coords[0] - last = transect.geometry.coords[1] + last = transect.geometry.coords[-1] # Filter timeseries data for the current transect_id idx = timeseries_data['transect_id'] == transect_id @@ -1776,7 +1781,11 @@ def add_lat_lon_to_timeseries(merged_timeseries_df, transects_gdf,timeseries_df, merged_timeseries_gdf,dropped_points_df = filter_points_outside_transects(merged_timeseries_gdf,transects_gdf,save_location,ext) if not dropped_points_df.empty: timeseries_df = filter_dropped_points_out_of_timeseries(timeseries_df, dropped_points_df) - + merged_timeseries_df = merged_timeseries_df[~merged_timeseries_df.set_index(['dates', 'transect_id']).index.isin(dropped_points_df.set_index(['dates', 'transect_id']).index)] + if len(merged_timeseries_df) == 0: + logger.warning("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + print("All points were dropped from the timeseries. This means all of the detected shoreline points were not on the transects. Turn off the only_keep_points_on_transects parameter to keep all points.") + # save the time series of along shore points as points to a geojson (saves shore_x and shore_y as x and y coordinates in the geojson) cross_shore_pts = convert_date_gdf(merged_timeseries_gdf.drop(columns=['x','y','shore_x','shore_y','cross_distance']).to_crs('epsg:4326')) # rename the dates column to date @@ -1921,8 +1930,13 @@ def save_transects( filepath = os.path.join(save_location, "raw_transect_time_series_merged.csv") merged_timeseries_df.to_csv(filepath, sep=",",index=False) + # sort the columns + sorted_columns = [timeseries_df.columns[0]] + sorted(timeseries_df.columns[1:], key=lambda x: int(''.join(filter(str.isdigit, x)))) + timeseries_df = timeseries_df[sorted_columns] + filepath = os.path.join(save_location, "raw_transect_time_series.csv") timeseries_df.to_csv(filepath, sep=",",index=False) + # save transect settings to file transect_settings = get_transect_settings(settings) transect_settings_path = os.path.join(save_location, "transects_settings.json") diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index ec7fab9c..f7819cce 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -682,14 +682,25 @@ def get_model_card_classes(model_card_path: str) -> dict: dict: dictionary of classes in model card and their corresponding index """ model_card_data = file_utilities.read_json_file(model_card_path, raise_error=True) - # logger.info( - # f"model_card_path: {model_card_path} \nmodel_card_data: {model_card_data}" - # ) # read the classes the model was trained with from either the dictionary under key "DATASET" or "DATASET1" - model_card_dataset = common.get_value_by_key_pattern( - model_card_data, patterns=("DATASET", "DATASET1") - ) - model_card_classes = model_card_dataset["CLASSES"] + try: + model_card_dataset = common.get_value_by_key_pattern( + model_card_data, patterns=("DATASET", "DATASET1") + ) + model_card_classes = model_card_dataset["CLASSES"] + except KeyError: + try: + model_card_classes = common.get_value_by_key_pattern( + model_card_data, patterns=("CLASSES",) + ) + except KeyError: + # use the default classes below if the model card does not have the classes + # This is the case for the ak only model and the global models (11/05/2024) + model_card_classes = {"0": "water", + "1": "whitewater", + "2": "sediment", + "3": "other" + } return model_card_classes diff --git a/src/coastseg/factory.py b/src/coastseg/factory.py index 5b31b98f..8e0a513b 100644 --- a/src/coastseg/factory.py +++ b/src/coastseg/factory.py @@ -68,7 +68,7 @@ def create_shoreline( # check if coastsegmap has a ROI if coastsegmap.rois is not None: if coastsegmap.rois.gdf.empty == False: - # merge ROI geometeries together and use that as the bbbox + # merge ROI geometeries together and use that as the bbox merged_rois = merge_rectangles(coastsegmap.rois.gdf) shoreline = Shoreline(merged_rois) exception_handler.check_if_default_feature_available(shoreline.gdf, "shoreline") @@ -202,6 +202,10 @@ class Factory: _feature_makers: Dict[str, Callable] = { "shoreline": create_shoreline, "shorelines": create_shoreline, + "reference_shoreline": create_shoreline, + "reference shorelines": create_shoreline, + "reference shoreline": create_shoreline, + "reference_shorelines": create_shoreline, "transects": create_transects, "transect": create_transects, "bbox": create_bbox, diff --git a/src/coastseg/geodata_processing.py b/src/coastseg/geodata_processing.py index 0f83d611..e59e7be6 100644 --- a/src/coastseg/geodata_processing.py +++ b/src/coastseg/geodata_processing.py @@ -110,6 +110,16 @@ def create_geofeature_geodataframe( return geofeature_gdf +FEATURE_TYPE_MAP = { + "transect": transects.Transects, + "transects": transects.Transects, + "shoreline": shoreline.Shoreline, + "shorelines": shoreline.Shoreline, + "reference_shoreline": shoreline.Shoreline, + "reference_shorelines": shoreline.Shoreline, + "shoreline_extraction_area": shoreline_extraction_area.Shoreline_Extraction_Area, +} + def load_geofeatures_from_roi( roi_gdf: gpd.GeoDataFrame, feature_type: str ) -> gpd.GeoDataFrame: @@ -127,14 +137,10 @@ def load_geofeatures_from_roi( Raises: ValueError: If no geographic features were found in the given ROI. """ - feature_type = ( - feature_type.lower() - ) # Convert to lower case for case insensitive comparison + feature_type = feature_type.lower() # Convert to lower case for case insensitive comparison - if feature_type == "transect" or feature_type == "transects": - feature_object = transects.Transects(bbox=roi_gdf) - elif feature_type == "shoreline" or feature_type == "shorelines": - feature_object = shoreline.Shoreline(bbox=roi_gdf) + if feature_type in FEATURE_TYPE_MAP: + feature_object = FEATURE_TYPE_MAP[feature_type](bbox=roi_gdf) else: logger.error(f"Unsupported feature_type: {feature_type}") raise ValueError(f"Unsupported feature_type: {feature_type}") @@ -203,12 +209,10 @@ def load_feature_from_file(feature_path: str, feature_type: str): def create_feature(feature_type: str, gdf): - if feature_type == "transect" or feature_type == "transects": - feature_object = transects.Transects(transects=gdf) - elif feature_type == "shoreline" or feature_type == "shorelines": - feature_object = shoreline.Shoreline(shoreline=gdf) - elif feature_type == "shoreline_extraction_area": - feature_object = shoreline_extraction_area.Shoreline_Extraction_Area(gdf) + feature_type = feature_type.lower() # Convert to lower case for case insensitive comparison + + if feature_type in FEATURE_TYPE_MAP: + feature_object = FEATURE_TYPE_MAP[feature_type](gdf) else: raise ValueError(f"Unsupported feature_type: {feature_type}") @@ -253,41 +257,3 @@ def extract_feature_from_geodataframe( filtered_gdf = gdf[gdf[type_column].str.lower().isin(feature_types)] return filtered_gdf - - -# def extract_feature_from_geodataframe( -# gdf: gpd.GeoDataFrame, feature_type: str, type_column: str = "type" -# ) -> gpd.GeoDataFrame: -# """ -# Extracts a GeoDataFrame of features of a given type and specified columns from a larger GeoDataFrame. - -# Args: -# gdf (gpd.GeoDataFrame): The GeoDataFrame containing the features to extract. -# feature_type (str): The type of feature to extract. Typically one of the following 'shoreline','rois','transects','bbox' -# type_column (str, optional): The name of the column containing feature types. Defaults to 'type'. - -# Returns: -# gpd.GeoDataFrame: A new GeoDataFrame containing only the features of the specified type and columns. - -# Raises: -# ValueError: Raised when feature_type or any of the columns specified do not exist in the GeoDataFrame. -# """ -# # Check if type_column exists in the GeoDataFrame -# if type_column not in gdf.columns: -# raise ValueError( -# f"Column '{type_column}' does not exist in the GeoDataFrame. Incorrect config_gdf.geojson loaded" -# ) - -# # Check if feature_type ends with 's' and define alternative feature_type -# if feature_type.endswith("s"): -# alt_feature_type = feature_type[:-1] -# else: -# alt_feature_type = feature_type + "s" - -# # Filter using both feature_types -# main_feature_gdf = gdf[gdf[type_column] == feature_type] -# alt_feature_gdf = gdf[gdf[type_column] == alt_feature_type] - -# # Combine both GeoDataFrames -# combined_gdf = pd.concat([main_feature_gdf, alt_feature_gdf]) -# return combined_gdf diff --git a/src/coastseg/models_UI.py b/src/coastseg/models_UI.py index 77831d6d..033ab7f2 100644 --- a/src/coastseg/models_UI.py +++ b/src/coastseg/models_UI.py @@ -64,10 +64,12 @@ def __init__(self): "AK_segformer_RGB_4class_14037041", # AK segformer model ] self.MNDWI_models = [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", + "AK_segformer_MNDWI_4class_14187478 ", # AK segformer model ] self.NDWI_models = [ - "segformer_NDWI_4class_8213427", + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model ] self.session_name = "" self.shoreline_session_directory = "" diff --git a/src/coastseg/tide_correction.py b/src/coastseg/tide_correction.py index e4a279af..3c9142c5 100644 --- a/src/coastseg/tide_correction.py +++ b/src/coastseg/tide_correction.py @@ -249,6 +249,8 @@ def correct_tides( 'tidally_corrected') # Save the Tidally corrected time series + sorted_columns = [timeseries_df.columns[0]] + sorted(timeseries_df.columns[1:], key=lambda x: int(''.join(filter(str.isdigit, x)))) + timeseries_df = timeseries_df[sorted_columns] timeseries_df.to_csv(os.path.join(session_path, 'tidally_corrected_transect_time_series.csv'),index=False) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index d91e63aa..cb48f0a0 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -398,7 +398,7 @@ def RGB_to_infrared( infrared = common.scale(infrared, np.maximum(gx, nx), np.maximum(gy, ny)) # output_img(MNDWI/NDWI) imagery formula (Green - SWIR) / (Green + SWIR) - output_img = (green_band-infrared) / (infrared + green_band) + output_img = (green_band-infrared) / (green_band + infrared ) # Convert the NaNs to -1 output_img[np.isnan(output_img)] = -1 # Rescale to be between 0 - 255 From 318f7efbf22ff6982d1878f81525b05db157e6d1 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 22 Nov 2024 15:46:22 -0800 Subject: [PATCH 90/99] allow model to be loaded locally by the new settings use_local_model and local_model_path --- src/coastseg/zoo_model.py | 42 +++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index cb48f0a0..6a23e3cc 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -608,6 +608,8 @@ def set_settings(self, **kwargs): "use_GPU": "0", "implementation": "BEST", "model_type": "global_segformer_RGB_4class_14036903", + "local_model_path": "", # local path to the directory containing the model + "use_local_model": True, # Use local model (not one from zeneodo) "otsu": False, "tta": False, "cloud_thresh": 0.5, # threshold on maximum cloud cover @@ -995,6 +997,39 @@ def postprocess_data( file_utilities.move_files(outputs_path, session_path, delete_src=True) session.save(session.path) + def get_weights_directory(self,model_implementation:str, model_id: str) -> str: + """ + Retrieves the directory path where the model weights are stored. + This method determines whether to use a local model path or to download the model + from a remote source based on the settings provided. If the local model path is + specified and exists, it will use that path. Otherwise, it will create a directory + for the model and download the weights. + Args: + model_implementation (str): The implementation type of the model either 'BEST' or 'ENSEMBLE' + model_id (str): The identifier for the model. This is the zenodo ID located at the end of the URL + Returns: + str: The directory path where the model weights are stored. + Raises: + FileNotFoundError: If the local model path is specified but does not exist. + """ + + USE_LOCAL_MODEL = self.settings.get("use_local_model", False) + LOCAL_MODEL_PATH = self.settings.get("local_model_path", "") + + if USE_LOCAL_MODEL and not os.path.exists(LOCAL_MODEL_PATH): + raise FileNotFoundError(f"The local model path does not exist at {LOCAL_MODEL_PATH}") + + # check if a local model should be loaded or not + if USE_LOCAL_MODEL == False or LOCAL_MODEL_PATH == "": + # create the model directory & download the model + weights_directory = self.get_model_directory(model_id) + self.download_model(model_implementation, model_id, weights_directory) + else: + # load the model from the local model path + weights_directory = LOCAL_MODEL_PATH + + return weights_directory + def prepare_model(self, model_implementation: str, model_id: str): """ Prepares the model for use by downloading the required files and loading the model. @@ -1003,12 +1038,10 @@ def prepare_model(self, model_implementation: str, model_id: str): model_implementation (str): The model implementation either 'BEST' or 'ENSEMBLE' model_id (str): The ID of the model. """ - self.clear_zoo_model() - # create the model directory - self.weights_directory = self.get_model_directory(model_id) + # weights_directory is the directory that contains the model weights, the model card json files and the BEST_MODEL.txt file + self.weights_directory = self.get_weights_directory(model_implementation, model_id) logger.info(f"self.weights_directory:{self.weights_directory}") - self.download_model(model_implementation, model_id, self.weights_directory) weights_list = self.get_weights_list(model_implementation) # Load the model from the config files @@ -1096,6 +1129,7 @@ def run_model( logger.info(f"use_tta: {use_tta}") print(f"Running model {model_name}") + # print(f"self.settings: {self.settings}") self.prepare_model(model_implementation, model_name) # create a session From f878cf528b11d906d23fb8c68e88cf77d1f3bce8 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Fri, 22 Nov 2024 16:25:30 -0800 Subject: [PATCH 91/99] update the scripts to test the zoo models --- debug_scripts/test_extract_shorelines_with_models.py | 10 +++++++--- debug_scripts/test_models.py | 10 ++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/debug_scripts/test_extract_shorelines_with_models.py b/debug_scripts/test_extract_shorelines_with_models.py index c798506d..7026df54 100644 --- a/debug_scripts/test_extract_shorelines_with_models.py +++ b/debug_scripts/test_extract_shorelines_with_models.py @@ -24,11 +24,13 @@ # get input directory from the args input_directory = args.path -# uncomment the following lines for local testing only +# uncomment the following lines for local testing only DUCK CoastSeg_location = r"C:\development\doodleverse\coastseg\CoastSeg" # path to CoastSeg roi_name = "ID_ppy1_datetime07-19-24__10_59_31" # name of the ROI directory in CoastSeg input_directory = os.path.join(CoastSeg_location, "data", roi_name, "jpg_files", "preprocessed", "RGB") # this is the path to the RGB directory of the ROI + + def create_settings(new_settings:dict={}): settings ={ 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid @@ -131,10 +133,12 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", # global segformer model + "AK_segformer_MNDWI_4class_14187478", # AK segformer model ], "NDWI": [ - "segformer_NDWI_4class_8213427", + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model ], } diff --git a/debug_scripts/test_models.py b/debug_scripts/test_models.py index df79473b..e841b290 100644 --- a/debug_scripts/test_models.py +++ b/debug_scripts/test_models.py @@ -106,13 +106,19 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): "AK_segformer_RGB_4class_14037041", # AK segformer model ], "MNDWI": [ - "segformer_MNDWI_4class_8213443", + "global_segformer_MNDWI_4class_14183366", # global segformer model + "AK_segformer_MNDWI_4class_14187478", # AK segformer model ], "NDWI": [ - "segformer_NDWI_4class_8213427", + "global_segformer_NDWI_4class_14172182", # global segformer model + "AK_segformer_NDWI_4class_14183210", # AK segformer model ], } + + img_types = ["RGB", "MNDWI", "NDWI"] +# img_types = [ "NDWI"] +# img_types = [ "MNDWI"] test_model(img_types, available_models_dict, input_directory) \ No newline at end of file From 03d27df35d882c22d62f651adf9467323eb6aa0a Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Mon, 2 Dec 2024 15:30:31 -0800 Subject: [PATCH 92/99] release 1.2.17 - add coregister parameter - convert transect id column to string - fix metadata filtering to filter by date - add use local model to model settings in zoo workflow - add two new functions to coastseg_map --- debug_scripts/test_models.py | 1 + src/coastseg/coastseg_map.py | 67 +++++++++- src/coastseg/common.py | 181 +++++++++++++++------------- src/coastseg/extracted_shoreline.py | 121 ++++++++----------- src/coastseg/file_utilities.py | 5 +- src/coastseg/filters.py | 64 +++++++--- src/coastseg/geodata_processing.py | 19 ++- src/coastseg/roi.py | 12 +- src/coastseg/transects.py | 7 +- src/coastseg/validation.py | 6 +- src/coastseg/zoo_model.py | 19 ++- tests/test_common.py | 47 ++++---- 12 files changed, 331 insertions(+), 218 deletions(-) diff --git a/debug_scripts/test_models.py b/debug_scripts/test_models.py index e841b290..88d6ed76 100644 --- a/debug_scripts/test_models.py +++ b/debug_scripts/test_models.py @@ -83,6 +83,7 @@ def test_model(img_types:list, available_models_dict:dict, input_directory:str): "model_type": model_selected, "otsu": False, "tta": False, + "use_local_model": False, } zoo_model_instance = zoo_model.Zoo_Model() diff --git a/src/coastseg/coastseg_map.py b/src/coastseg/coastseg_map.py index 27c35a88..3c552906 100644 --- a/src/coastseg/coastseg_map.py +++ b/src/coastseg/coastseg_map.py @@ -264,6 +264,35 @@ def __init__(self,create_map:bool=True): # Warning and information boxes that appear on top of the map self._init_info_boxes() + def print_features(self): + """ + Prints the number of each kind of feature currently loaded in the object. + + This method checks for the presence of various geographic features (ROIs, shorelines, transects, bounding boxes, and shoreline extraction areas) + and prints the count of each feature type. If no features are loaded, it prints a message indicating that no features are loaded. + + Attributes: + rois (GeoDataFrame): Regions of Interest (ROIs) with their respective IDs. + shoreline (GeoDataFrame): Shoreline data. + transects (GeoDataFrame): Transect data. + bbox (GeoDataFrame): Bounding box data. + shoreline_extraction_area (GeoDataFrame): Shoreline extraction area data. + """ + # print the number of each kind of feature + if self.rois is not None: + print(f"Number of ROIs: {len(self.rois.gdf)}") + print(f"ROI IDs: {self.rois.gdf.id}") + if self.shoreline is not None: + print(f"Number of shorelines: {len(self.shoreline.gdf)}") + if self.transects is not None: + print(f"Number of transects: {len(self.transects.gdf)}") + if self.bbox is not None: + print(f"Number of bounding boxes: {len(self.bbox.gdf)}") + if self.shoreline_extraction_area is not None: + print(f"Number of shoreline extraction areas: {len(self.shoreline_extraction_area.gdf)}") + if self.rois is None and self.shoreline is None and self.transects is None and self.bbox is None and self.shoreline_extraction_area is None: + print("No features loaded") + def get_map(self): if self.map is None: self.map = self.create_map() @@ -703,6 +732,30 @@ def load_session_from_directory(self, dir_path: str,data_path:str="") -> None: # add extracted shoreline and transect intersections to ROI they were extracted from self.rois.add_cross_shore_distances(cross_distances, roi_id) + def load_data_from_directory(self, dir_path: str,data_path:str="") -> None: + """ + Clears the previous session and loads data from the specified directory. + This will load the config_gdf.geojson, config.json, shoreline_settings.json, and transects_settings.json files + Also loads the metadata for each ROI in the config_gdf.geojson file if it exists. + + Args: + dir_path (str): The path to the directory containing the session data. + data_path (str, optional): The path to the specific data file within the directory. Defaults to an empty string. + + Raises: + FileNotFoundError: If the specified directory does not exist. + + Returns: + None + """ + if not os.path.exists(dir_path): + raise FileNotFoundError(f"Session path {dir_path} does not exist") + # remove all the old features from the map + self.remove_all() + # only load data from the directory + self.load_session_files(dir_path,data_path) + + def load_fresh_session(self, session_path: str) -> None: """ Load a fresh session by removing all the old features from the map and loading a new session. @@ -740,25 +793,31 @@ def get_parent_session_name(session_path: str) -> str: # get the index of the sessions directory which contains all the sessions if "data" in split_array: return os.path.basename(session_path) - if "sessions" in split_array: + elif "sessions" in split_array: parent_index = split_array.index("sessions") + else: + return "" # get the parent session name aka not a sub directory for a specific ROI parent_session_name = split_array[parent_index + 1] if not ( os.path.exists(os.sep.join(split_array[: parent_index + 1])) and os.path.isdir(os.sep.join(split_array[: parent_index + 1])) ): - raise FileNotFoundError(f"{os.sep.join(split_array[:parent_index+1])}") + return "" return parent_session_name if not data_path: base_path = os.path.abspath(core_utilities.get_base_dir()) data_path = file_utilities.create_directory(base_path, "data") - # load the session name session_path = os.path.abspath(session_path) - + # load the session name + session_name = get_parent_session_name(session_path) + if session_name == "": + raise Exception(f"A session can only be loaded from the /sessions or /data directory. The {session_path} directory is not a valid session directory.") + + logger.info(f"session_name: {session_name} session_path: {session_path}") self.set_session_name(session_name) logger.info(f"Loading session from session directory: {session_path}") diff --git a/src/coastseg/common.py b/src/coastseg/common.py index ff34fefd..1d8bbb23 100644 --- a/src/coastseg/common.py +++ b/src/coastseg/common.py @@ -1322,7 +1322,73 @@ def get_response(url, stream=True): return response -def filter_metadata(metadata: dict, sitename: str, filepath_data: str) -> dict[str]: +def extract_date_from_filename(filename: str) -> str: + """Extracts the first instance date string "YYYY-MM-DD-HH-MM-SS" from a filename. + - The date string is expected to be in the format "YYYY-MM-DD-HH-MM-SS". + - Example 2024-05-28-22-18-07 would be extracted from "2024-05-28-22-18-07_S2_ID_1_datetime11-04-24__04_30_52_ms.tif" + """ + pattern = r"^\d{4}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2}" + match = re.match(pattern, filename) + if match: + return match.group(0) + else: + return "" + +def get_filtered_dates_dict(directory: str, file_type: str, ) -> dict: + """ + Scans the directory for files with the given file_type and extracts the date from the filename and returns a dictionary with the satellite name as the key and a set of dates as the value. + + + Parameters: + ----------- + directory : str + The directory where the files are located. + + file_type : str + The filetype of the files to be included. + Ex. 'jpg' + + + Returns: + -------- + dict + a dictionary where each key is a satellite name and each value is a set of the dates in the format "YYYY-MM-DD-HH-MM-SS" that represents the time the scene was captured. + + Example: + { + "L5":{'2014-12-19-18-22-40',}, + "L7":{}, + "L8":{'2014-12-19-18-22-40',}, + "L9":{}, + "S2":{}, + } + + """ + filepaths = glob.iglob(os.path.join(directory, f"*.{file_type}")) + + satellites = {"L5": set(), "L7": set(), "L8": set(), "L9": set(), "S2": set()} + for filepath in filepaths: + filename = os.path.basename(filepath) + date = extract_date_from_filename(filename) + if date == "": + logging.warning( + f"Skipping file with unexpected name format which was missing a date: {filename}" + ) + continue + + satname = find_satellite_in_filename(filename) + if not satname: + logging.warning( + f"Skipping file with unexpected name format which was missing a satname: {filename}" + ) + continue + + if satname in satellites: + satellites[satname].add(date) + + return satellites + +def filter_metadata_with_dates(metadata: dict, directory:str,file_type:str="jpg") -> dict[str]: """ This function filters metadata to include only those files that exist in the given directory. @@ -1331,35 +1397,33 @@ def filter_metadata(metadata: dict, sitename: str, filepath_data: str) -> dict[s metadata : dict The metadata dictionary to be filtered. - sitename : str - The site name used for filtering. - - filepath_data : str - The base filepath where the data is located. + directory : str + The directory containing the files that have been filtered. These files should contain + dates that match the format "YYYY-MM-DD-HH-MM-SS". + file_type : str + The filetype of the files in the directory. Default is 'jpg'. + Returns: -------- dict The filtered metadata dictionary. """ - # Get the RGB directory - RGB_directory = os.path.join( - filepath_data, sitename, "jpg_files", "preprocessed", "RGB" - ) - if not os.path.exists(RGB_directory): + if not os.path.exists(directory): raise FileNotFoundError( - f"Cannot extract shorelines from imagery. RGB directory did not exist. {RGB_directory}" + f"Cannot extract shorelines from imagery. RGB directory did not exist. {directory}" ) - # filter out files that were removed from RGB directory - filtered_files = get_filtered_files_dict(RGB_directory, "jpg", sitename) - metadata = edit_metadata(metadata, filtered_files) + # Get the dates of the files in the RGB directory (this is the one the user filtered into good/bad) + filtered_dates_by_sat = get_filtered_dates_dict(directory, file_type) + # print(f"filtered_dates_by_sat: {filtered_dates_by_sat}") + metadata = edit_metadata_by_dates(metadata, filtered_dates_by_sat) return metadata -def edit_metadata( +def edit_metadata_by_dates( metadata: Dict[str, Dict[str, Union[str, List[Union[str, datetime, int, float]]]]], - filtered_files: Dict[str, Set[str]], -) -> Dict[str, Dict[str, Union[str, List[Union[str, datetime, int, float]]]]]: + filtered_dates: Dict[str, Set[str]], +) -> dict: """Filters the metadata so that it contains the data for the filenames in filered_files Args: @@ -1385,8 +1449,8 @@ def edit_metadata( filtered_files = { "L5": {}, "L7": {}, - "L8": {"2019-02-16-18-22-17_L8_sitename_ms.tif"}, - "L9": {"2019-02-16-18-22-17_L9_sitename_ms.tif"}, + "L8": {"2019-02-16-18-22-17"}, + "L9": {"2019-02-16-18-22-17"}, "S2": {}, } @@ -1408,20 +1472,24 @@ def edit_metadata( } } """ - # Iterate over satellite names in filtered_files - for sat_name, files in filtered_files.items(): + # Loop over each satellite which contains all the dates that images were captured for that satellite + for sat_name, filtered_dates in filtered_dates.items(): # Check if sat_name is present in metadata if sat_name in metadata: satellite_metadata = metadata[sat_name] - # Find the indices to keep based on filenames in filtered_files + # basically instead of matching the filenames directory check if the dates match + # 1. convert the satellite_metadata["filenames"] to dates + metadata_dates = [extract_date_from_filename(filename) for filename in satellite_metadata["filenames"]] + # 2. get the matching indices indices_to_keep = [ idx - for idx, filename in enumerate(satellite_metadata["filenames"]) - if filename in files + for idx, metadata_date in enumerate(metadata_dates) + if metadata_date in filtered_dates ] - # Loop through each key in the satellite_metadata dictionary + # Loop through each key in the satellite_metadata dictionary and keep only the values that match the indices_to_keep + # this keeps only the metadata for the files whose date was found in the filtered_files for key, values in satellite_metadata.items(): # Check if values is a list if isinstance(values, list): @@ -1434,67 +1502,6 @@ def edit_metadata( return metadata -def get_filtered_files_dict(directory: str, file_type: str, sitename: str) -> dict: - """ - Scans the directory for files of a given type and groups them by satellite names into a dictionary. - Each entry in the dictionary contains a set of multispectral tif filenames associated with the original filenames and site name. - - Example : - file_type = "tif" - sitename = "ID_onn15_datetime06-07-23__01_02_19" - { - "L5":{2014-12-19-18-22-40_L5_ID_onn15_datetime06-07-23__01_02_19_ms.tif,}, - "L7":{}, - "L8":{2014-12-19-18-22-40_L8_ID_onn15_datetime06-07-23__01_02_19_ms.tif,}, - "L9":{}, - "S2":{}, - } - - Parameters: - ----------- - directory : str - The directory where the files are located. - - file_type : str - The filetype of the files to be included. - Ex. 'jpg' - - sitename : str - The site name to be included in the new filename. - - Returns: - -------- - dict - a dictionary where each key is a satellite name and each value is a set of the tif filenames. - """ - filepaths = glob.iglob(os.path.join(directory, f"*.{file_type}")) - - satellites = {"L5": set(), "L7": set(), "L8": set(), "L9": set(), "S2": set()} - for filepath in filepaths: - filename = os.path.basename(filepath) - parts = filename.split("_") - - if len(parts) < 2: - logging.warning(f"Skipping file with unexpected name format: {filename}") - continue - - date = parts[0] - - satname = find_satellite_in_filename(filename) - if satname is None: - logging.warning( - f"Skipping file with unexpected name format which was missing a satname: {filename}" - ) - continue - - - tif_filename = f"{date}_{satname}_{sitename}_ms.tif" - if satname in satellites: - satellites[satname].add(tif_filename) - - return satellites - - def create_unique_ids(data, prefix_length: int = 3): # if not all the ids in data are unique if not check_unique_ids(data): diff --git a/src/coastseg/extracted_shoreline.py b/src/coastseg/extracted_shoreline.py index f7819cce..6e601da3 100644 --- a/src/coastseg/extracted_shoreline.py +++ b/src/coastseg/extracted_shoreline.py @@ -47,7 +47,7 @@ import skimage.morphology as morphology from coastsat.SDS_download import get_metadata -from coastsat.SDS_shoreline import extract_shorelines +# from coastsat.SDS_shoreline import extract_shorelines from coastsat.SDS_tools import ( get_filenames, get_filepath, @@ -67,8 +67,8 @@ # Internal dependencies imports from coastseg import common, exceptions from coastseg.validation import get_satellites_in_directory -from coastseg.filters import filter_model_outputs, apply_land_mask -from coastseg.common import get_filtered_files_dict, edit_metadata +from coastseg.filters import filter_model_outputs + # Set pandas option @@ -610,7 +610,6 @@ def process_satellite_image( npz_file = find_matching_npz(filename, os.path.join(session_path, "good")) if npz_file is None: npz_file = find_matching_npz(filename, session_path) - # logger.info(f"npz_file: {npz_file}") if npz_file is None: logger.warning(f"npz file not found for {filename}") return None @@ -1146,7 +1145,6 @@ def shoreline_detection_figures( os.makedirs(filepath, exist_ok=True) - # logger.info(f"shoreline_detection_figures filepath: {filepath}") logger.info(f"im_ref_buffer.shape: {im_ref_buffer.shape}") # increase the intensity of the image for visualization @@ -1355,44 +1353,13 @@ def extract_shorelines_with_dask( Returns: dict: A dictionary containing the extracted shorelines for each satellite. """ - sitename = settings["inputs"]["sitename"] - filepath_data = settings["inputs"]["filepath"] - - # create a subfolder to store the .jpg images showing the detection + # create a subfolder to store the .jpg images showing the extracted shoreline detection if not save_location: + sitename = settings["inputs"]["sitename"] + filepath_data = settings["inputs"]["filepath"] filepath_jpg = os.path.join(filepath_data, sitename, "jpg_files", "detection") os.makedirs(filepath_jpg, exist_ok=True) - # get the directory containing the good model outputs - good_folder = get_sorted_model_outputs_directory(session_path) - - # get the list of files that were sorted as 'good' - filtered_files = get_filtered_files_dict(good_folder, "npz", sitename) - # keep only the metadata for the files that were sorted as 'good' - metadata = edit_metadata(metadata, filtered_files) - - for satname in metadata.keys(): - if not metadata[satname]: - logger.warning(f"metadata['{satname}'] is empty") - else: - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('epsg',[]))} of epsg: {np.unique(metadata[satname].get('epsg',[]))}" - ) - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('dates',[]))} of dates Sample first five: {list(islice(metadata[satname].get('dates',[]),5))}" - ) - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('filenames',[]))} of filenames Sample first five: {list(islice(metadata[satname].get('filenames',[]),5))}" - ) - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('im_dimensions',[]))} of im_dimensions: {np.unique(metadata[satname].get('im_dimensions',[]))}" - ) - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('acc_georef',[]))} of acc_georef: {np.unique(metadata[satname].get('acc_georef',[]))}" - ) - logger.info( - f"edit_metadata metadata['{satname}'] length {len(metadata[satname].get('im_quality',[]))} of im_quality: {np.unique(metadata[satname].get('im_quality',[]))}" - ) shoreline_dict = {} for satname in metadata.keys(): @@ -1456,17 +1423,21 @@ def get_sorted_model_outputs_directory( # for each satellite, sort the model outputs into good & bad good_folder = os.path.join(session_path, "good") bad_folder = os.path.join(session_path, "bad") + + os.makedirs(good_folder, exist_ok=True) # Ensure good_folder exists. + os.makedirs(bad_folder, exist_ok=True) # Ensure bad_folder exists. + + satellites = get_satellites_in_directory(session_path) + # if there is nothing to sort return the good folder + if not satellites: + return good_folder + # empty the good and bad folders if os.path.exists(good_folder): shutil.rmtree(good_folder) if os.path.exists(bad_folder): shutil.rmtree(bad_folder) - - os.makedirs(good_folder, exist_ok=True) # Ensure good_folder exists. - os.makedirs(bad_folder, exist_ok=True) # Ensure bad_folder exists. - - satellites = get_satellites_in_directory(session_path) - print(f"Satellites in directory: {satellites}") + for satname in satellites: print(f"Filtering model outputs for {satname}") # Define the pattern for matching files related to the current satellite. @@ -1486,9 +1457,6 @@ def get_sorted_model_outputs_directory( # If there are files sort the files into good and bad folders filter_model_outputs(satname, files, good_folder, bad_folder) - # Apply the land mask if there are files in the good folder. - # if os.listdir(good_folder): - # apply_land_mask(good_folder) return good_folder @@ -1649,25 +1617,26 @@ def get_roi_id(self) -> Optional[str]: """ Extracts the region of interest (ROI) ID from the shoreline settings. - The method retrieves the sitename field from the shoreline settings inputs dictionary and extracts the - ROI ID from it, if present. The sitename field is expected to be in the format "ID_XXXX_datetime03-22-23__07_29_15", - where XXXX is the id of the ROI. If the sitename field is not present or is not in the - expected format, the method returns None. - shoreline_settings: { 'inputs' { "sitename": 'ID_0_datetime03-22-23__07_29_15', + "roi_id": 'ID_0', + 'polygon': [[[-160.8452704000395, 63.897979992144656], [-160.8452704000395, 63.861546670361975],...]]] + 'dates':[,], + 'sat_list': ['S2', 'L8', 'L9'], + ''filepath': 'path/to/Coastseg/data', } } Returns: The ROI ID as a string, or None if the sitename field is not present or is not in the expected format. """ + if self.shoreline_settings is None: + return None inputs = self.shoreline_settings.get("inputs", {}) - sitename = inputs.get("sitename", "") - # checks if the ROI ID is present in the 'sitename' saved in the shoreline settings - roi_id = sitename.split("_")[1] if sitename else None + # inputs has an 'roi_id' key thats the roi id as a string + roi_id = inputs.get("roi_id", None) return roi_id def remove_selected_shorelines( @@ -1846,7 +1815,7 @@ def create_extracted_shorelines_from_session( session_path: str = None, new_session_path: str = None, output_directory: str = None, - shoreline_extraction_area : gpd.geodataframe = None, + shoreline_extraction_area : gpd.GeoDataFrame = None, **kwargs: dict, ) -> "Extracted_Shoreline": """ @@ -1880,7 +1849,7 @@ def create_extracted_shorelines_from_session( - output_directory (str): The path to the directory where the extracted shorelines will be saved. - detection figures will be saved in a subfolder called 'jpg_files' within the output_directory. - extract_shoreline reports will be saved within the output_directory. - - shoreline_extraction_area (gpd.geodataframe, optional): A GeoDataFrame containing the area to extract shorelines from. Defaults to None. + - shoreline_extraction_area (gpd.GeoDataFrame, optional): A GeoDataFrame containing the area to extract shorelines from. Defaults to None. Returns: - object: The Extracted_Shoreline class instance. """ @@ -1924,6 +1893,7 @@ def create_extracted_shorelines_from_session( self.shoreline_settings = self.create_shoreline_settings( settings, roi_settings, reference_shoreline ) + logger.info(f"self.shoreline_settings['inputs'] {self.shoreline_settings['inputs']}") # Log all items except 'reference shoreline' and handle 'reference shoreline' separately logger.info( "self.shoreline_settings : " @@ -1933,6 +1903,7 @@ def create_extracted_shorelines_from_session( if key != "reference_shoreline" ) ) + # Check and log 'reference_shoreline' if it exists ref_sl = self.shoreline_settings.get("reference_shoreline", np.array([])) if isinstance(ref_sl, np.ndarray): @@ -1947,7 +1918,18 @@ def create_extracted_shorelines_from_session( # filter out files that were removed from RGB directory try: - metadata = common.filter_metadata(metadata, sitename, filepath_data) + # For coregistered files where I artifically altered the sitename the sitename is different that what I modified it to + # If I set the sitename to the original sitename I'll be fine + # @todo remove this hardcoded variable for testing only + RGB_directory = os.path.join( + filepath_data, sitename, "jpg_files", "preprocessed", "RGB" + ) + metadata= common.filter_metadata_with_dates(metadata,RGB_directory,file_type="jpg") + # sort the good/bad model segmentations and return the directory containing the good model outputs (this is where to put good/bad shoreline segmentation model) + good_directory = get_sorted_model_outputs_directory(session_path) + + metadata= common.filter_metadata_with_dates(metadata,good_directory,file_type="npz") + except FileNotFoundError as e: logger.warning(f"No RGB files existed so no metadata.") self.dictionary = {} @@ -2073,16 +2055,16 @@ def _validate_input_params( def extract_shorelines( self, - shoreline_gdf: gpd.geodataframe, + shoreline_gdf: gpd.GeoDataFrame, roi_settings: dict, settings: dict, output_directory: str = None, - shoreline_extraction_area : gpd.geodataframe = None + shoreline_extraction_area : gpd.GeoDataFrame = None ) -> dict: """ Extracts shorelines for a specified region of interest (ROI). Args: - shoreline_gdf (gpd.geodataframe): GeoDataFrame containing the shoreline data. + shoreline_gdf (gpd.GeoDataFrame): GeoDataFrame containing the shoreline data. roi_settings (dict): Dictionary containing settings for the ROI. It must have the following keys: { "dates": ["2018-12-01", "2019-03-01"], @@ -2109,7 +2091,7 @@ def extract_shorelines( output_directory (str): The path to the directory where the extracted shorelines will be saved. - detection figures will be saved in a subfolder called 'jpg_files' within the output_directory. - extract_shoreline reports will be saved within the output_directory. - shoreline_extraction_area (gpd.geodataframe, optional): A GeoDataFrame containing the area to extract shorelines from. Defaults to None. + shoreline_extraction_area (gpd.GeoDataFrame, optional): A GeoDataFrame containing the area to extract shorelines from. Defaults to None. Returns: dict: Dictionary containing the extracted shorelines for the specified ROI. """ @@ -2129,7 +2111,10 @@ def extract_shorelines( # filter out files that were removed from RGB directory try: - metadata = common.filter_metadata(metadata, sitename, filepath_data) + RGB_directory = os.path.join( + filepath_data, sitename, "jpg_files", "preprocessed", "RGB" + ) + metadata= common.filter_metadata_with_dates(metadata,RGB_directory,file_type="jpg") except FileNotFoundError as e: logger.warning(f"No RGB files existed so no metadata.") print( @@ -2161,7 +2146,7 @@ def extract_shorelines( ) # extract shorelines with coastsat's models - extracted_shorelines = extract_shorelines(metadata, self.shoreline_settings,output_directory=output_directory, shoreline_extraction_area=shoreline_extraction_area) + extracted_shorelines = SDS_shoreline.extract_shorelines(metadata, self.shoreline_settings,output_directory=output_directory, shoreline_extraction_area=shoreline_extraction_area) logger.info(f"extracted_shoreline_dict: {extracted_shorelines}") # postprocessing by removing duplicates and removing in inaccurate georeferencing (set threshold to 10 m) extracted_shorelines = remove_duplicates( @@ -2347,7 +2332,7 @@ def get_styled_layer( def get_reference_shoreline( - shoreline_gdf: gpd.geodataframe, output_crs: str + shoreline_gdf: gpd.GeoDataFrame, output_crs: str ) -> np.ndarray: """ Converts a GeoDataFrame of shoreline features into a numpy array of latitudes, longitudes, and zeroes representing the mean sea level. @@ -2379,11 +2364,11 @@ def get_colors(length: int) -> list: return cmap_list -def make_coastsat_compatible(feature: gpd.geodataframe) -> list: +def make_coastsat_compatible(feature: gpd.GeoDataFrame) -> list: """Return the feature as an np.array in the form: [([lat,lon],[lat,lon],[lat,lon]),([lat,lon],[lat,lon],[lat,lon])...]) Args: - feature (gpd.geodataframe): clipped portion of shoreline within a roi + feature (gpd.GeoDataFrame): clipped portion of shoreline within a roi Returns: list: shorelines in form: [([lat,lon],[lat,lon],[lat,lon]),([lat,lon],[lat,lon],[lat,lon])...]) diff --git a/src/coastseg/file_utilities.py b/src/coastseg/file_utilities.py index a9d5a93d..7fdf3b86 100644 --- a/src/coastseg/file_utilities.py +++ b/src/coastseg/file_utilities.py @@ -316,7 +316,9 @@ def find_parent_directory( Parameters: path (str): The path to start the search from. - directory_name (str): The name of the directory to search for. + directory_name (str): Part of the name of the directory to find. + For example, directory_name = 'ID' will return the first directory + that contains 'ID' in its name. stop_directory (str): Optional. A directory name to stop the search at. If this is specified, the search will stop when this directory is reached. If not specified, the search will @@ -660,6 +662,7 @@ def find_directory_recursively(path: str = ".", name: str = "RGB") -> str: for dirpath, dirnames, filenames in os.walk(path): if name in dirnames: dir_location = os.path.join(dirpath, name) + break # stop searching once the first directory is found if not os.listdir(dir_location): raise Exception(f"{name} directory is empty.") diff --git a/src/coastseg/filters.py b/src/coastseg/filters.py index f7ff46b4..f58e9421 100644 --- a/src/coastseg/filters.py +++ b/src/coastseg/filters.py @@ -97,6 +97,10 @@ def get_time_vectors(files: list) -> tuple: def get_image_shapes(files: list) -> list: return [load_data(f).shape for f in files] +# count number of files with the same shape +def count_files_with_same_shape(files: list) -> dict: + file_shapes = get_image_shapes(files) + return {shape: file_shapes.count(shape) for shape in set(file_shapes)} def measure_rmse(da: xr.DataArray, times: list, timeav: xr.DataArray) -> tuple: """ @@ -195,6 +199,26 @@ def return_valid_files(files: list) -> list: modal_shape = mode(get_image_shapes(files)) return [f for f in files if load_data(f).shape == modal_shape] +def get_files_with_shape(files: list,shape:tuple) -> list: + """ + Return files whose image shapes match the shape among the given files. + + Args: + files (list): List of file paths. + + Returns: + list: File paths whose image shape matches the mode of all file shapes. + """ + matching_files = [] + for file in files: + if os.path.exists(file): + shape_file = load_data(file).shape + if shape_file == shape: + matching_files.append(file) + return matching_files + # return [f for f in files if load_data(f).shape == shape] + + def apply_land_mask( directory_path: str) -> None: """ Apply land mask to 'good' files and save them to the destination folder. @@ -242,24 +266,30 @@ def filter_model_outputs( dest_folder_good (str): Destination folder for 'good' files. dest_folder_bad (str): Destination folder for 'bad' files. """ - valid_files = return_valid_files(files) - if len(valid_files) <3: - # if there are not enough valid files to perform the analysis, move all files to the good folder - handle_files_and_directories( - [], valid_files, dest_folder_bad, dest_folder_good - ) - return - print(f"Found {len(valid_files)} valid files for {satname}.") - times, time_var = get_time_vectors(valid_files) - da = xr.concat([load_xarray_data(f) for f in valid_files], dim=time_var) - timeav = da.mean(dim="time") - rmse, input_rmse = measure_rmse(da, times, timeav) - labels, scores = get_kmeans_clusters(input_rmse, rmse) - files_bad, files_good = get_good_bad_files(valid_files, labels, scores) - handle_files_and_directories( - files_bad, files_good, dest_folder_bad, dest_folder_good - ) + count_shapes = count_files_with_same_shape(files) + # get the most common shape + # modal_shape = mode(get_image_shapes(files)) + for shape, count in count_shapes.items(): + print(f"Shape: {shape} Count: {count}") + valid_files = get_files_with_shape(files,shape) + if len(valid_files) <3: + # if there are not enough valid files to perform the analysis, move all files to the good folder + handle_files_and_directories( + [], valid_files, dest_folder_bad, dest_folder_good + ) + else: + times, time_var = get_time_vectors(valid_files) + da = xr.concat([load_xarray_data(f) for f in valid_files], dim=time_var) + timeav = da.mean(dim="time") + + rmse, input_rmse = measure_rmse(da, times, timeav) + labels, scores = get_kmeans_clusters(input_rmse, rmse) + files_bad, files_good = get_good_bad_files(valid_files, labels, scores) + handle_files_and_directories( + files_bad, files_good, dest_folder_bad, dest_folder_good + ) + # apply_land_mask(dest_folder_good) diff --git a/src/coastseg/geodata_processing.py b/src/coastseg/geodata_processing.py index e59e7be6..51342e76 100644 --- a/src/coastseg/geodata_processing.py +++ b/src/coastseg/geodata_processing.py @@ -100,7 +100,7 @@ def create_geofeature_geodataframe( # if a geofeature file is not given load features from ROI geofeature_gdf = load_geofeatures_from_roi(roi_gdf, feature_type) - logger.info(f"{feature_type}_gdf: {geofeature_gdf}") + logger.info(f"{feature_type}_gdf: length {len(geofeature_gdf)} sample {geofeature_gdf.head(1)}") if geofeature_gdf.empty: raise Exception( f"None of the {feature_type}s intersected the ROI. Try a different {feature_type}" @@ -187,15 +187,18 @@ def load_geodataframe_from_file( ValueError: If the feature file is empty. """ logger.info(f"Attempting to load {feature_type} from a file") - feature_gdf = read_gpd_file(feature_path) + original_feature_gdf = read_gpd_file(feature_path) try: # attempt to load features from a config file feature_gdf = extract_feature_from_geodataframe( - feature_gdf, feature_type=feature_type + original_feature_gdf, feature_type=feature_type ) except ValueError as e: # if it isn't a config file then just ignore the error logger.info(f"This probably wasn't a config : {feature_path} \n {e}") + feature_gdf = original_feature_gdf # if this wasn't a config then just return the original file + + if feature_gdf.empty: raise ValueError(f"Empty {feature_type} file provided: {feature_path}") return feature_gdf @@ -210,9 +213,15 @@ def load_feature_from_file(feature_path: str, feature_type: str): def create_feature(feature_type: str, gdf): feature_type = feature_type.lower() # Convert to lower case for case insensitive comparison - if feature_type in FEATURE_TYPE_MAP: - feature_object = FEATURE_TYPE_MAP[feature_type](gdf) + if "transect" in feature_type: + feature_object = FEATURE_TYPE_MAP[feature_type](transects=gdf) + elif "shoreline" in feature_type: + feature_object = FEATURE_TYPE_MAP[feature_type](shoreline=gdf) + elif "roi" in feature_type: + feature_object = FEATURE_TYPE_MAP[feature_type](rois_gdf=gdf) + else: + feature_object = FEATURE_TYPE_MAP[feature_type](gdf) else: raise ValueError(f"Unsupported feature_type: {feature_type}") diff --git a/src/coastseg/roi.py b/src/coastseg/roi.py index f68d400a..2b1611ab 100644 --- a/src/coastseg/roi.py +++ b/src/coastseg/roi.py @@ -430,7 +430,7 @@ def remove_cross_shore_distance( def create_geodataframe( self, - bbox: gpd.geodataframe, + bbox: gpd.GeoDataFrame, shoreline: gpd.GeoDataFrame, large_length: float = 7500, small_length: float = 5000, @@ -527,7 +527,7 @@ def create_rois( square_size: float, input_espg="epsg:4326", output_epsg="epsg:4326", - ) -> gpd.geodataframe: + ) -> gpd.GeoDataFrame: """Creates a fishnet of square shaped ROIs with side length= square_size Args: @@ -537,7 +537,7 @@ def create_rois( output_epsg (str, optional): espg code the ROIs will output to. Defaults to "epsg:4326". Returns: - gpd.geodataframe: geodataframe containing all the ROIs + gpd.GeoDataFrame: geodataframe containing all the ROIs """ projected_espg = common.get_epsg_from_geometry(bbox.iloc[0]["geometry"]) logger.info(f"ROI: projected_espg_code: {projected_espg}") @@ -555,17 +555,17 @@ def create_fishnet( input_espg: str, output_epsg: str, square_size: float = 1000, - ) -> gpd.geodataframe: + ) -> gpd.GeoDataFrame: """Returns a fishnet of ROIs that intersects the bounding box specified by bbox_gdf where each ROI(square) has a side length = square size(meters) Args: - bbox_gdf (gpd.geodataframe): Bounding box that fishnet intersects. + bbox_gdf (gpd.GeoDataFrame): Bounding box that fishnet intersects. input_espg (str): espg string that bbox_gdf is projected in output_epsg (str): espg to convert the fishnet of ROIs to. square_size (int, optional): Size of each square in fishnet(meters). Defaults to 1000. Returns: - gpd.geodataframe: fishnet of ROIs that intersects bbox_gdf. Each ROI has a side lenth = sqaure_size + gpd.GeoDataFrame: fishnet of ROIs that intersects bbox_gdf. Each ROI has a side lenth = sqaure_size """ minX, minY, maxX, maxY = bbox_gdf.total_bounds # Create a fishnet where each square has side length = square size diff --git a/src/coastseg/transects.py b/src/coastseg/transects.py index b7a1b01d..54f482d4 100644 --- a/src/coastseg/transects.py +++ b/src/coastseg/transects.py @@ -315,6 +315,9 @@ def initialize_transects_with_transects(self, transects: gpd.GeoDataFrame): ) # if not all the ids in transects are unique then create unique ids transects = create_unique_ids(transects, prefix_length=3) + # if an id column exists then make sure it is a string + if "id" in transects.columns: + transects["id"] = transects["id"].astype(str) self.gdf = transects def initialize_transects_with_bbox(self, bbox: gpd.GeoDataFrame): @@ -413,7 +416,7 @@ def style_layer(self, data, layer_name: str = "transects") -> dict: geojson = data if isinstance(data, dict): geojson = data - elif isinstance(data,gpd.geodataframe.GeoDataFrame): + elif isinstance(data,gpd.GeoDataFrame): gdf = create_transects_with_arrowheads(data, arrow_angle=30) geojson = json.loads(gdf.to_json()) @@ -444,7 +447,7 @@ def style_layer(self, data, layer_name: str = "transects") -> dict: # hover_style={"color": "blue", "fillOpacity": 0.7}, # ) - def get_intersecting_files(self, bbox_gdf: gpd.geodataframe) -> list: + def get_intersecting_files(self, bbox_gdf: gpd.GeoDataFrame) -> list: """Returns a list of filenames that intersect with bbox_gdf Args: diff --git a/src/coastseg/validation.py b/src/coastseg/validation.py index 6412ba9f..ce2fe659 100644 --- a/src/coastseg/validation.py +++ b/src/coastseg/validation.py @@ -14,15 +14,19 @@ def is_valid_satellite(satellite_name: str) -> bool: return satellite_name.upper() in (sat.value.upper() for sat in Satellite) + def find_satellite_in_filename(filename: str) -> str: + """Use regex to find the satellite name in the filename. + Satellite name is case-insensitive and can be separated by underscore (_) or period (.)""" for satellite in Satellite: # Adjusting the regex pattern to consider period (.) as a valid position after the satellite name if re.search(fr'(?<=[\b_]){satellite.value}(?=[\b_.]|$)', filename, re.IGNORECASE): return satellite.value - return None + return "" def get_satellites_in_directory(directory_path: str) -> set: + """Get the set of satellite names for each folder in the directory path.""" satellite_set = set() for filename in os.listdir(directory_path): diff --git a/src/coastseg/zoo_model.py b/src/coastseg/zoo_model.py index 6a23e3cc..f3de2489 100644 --- a/src/coastseg/zoo_model.py +++ b/src/coastseg/zoo_model.py @@ -525,7 +525,7 @@ def get_url_dict_to_download(models_json_dict: dict) -> dict: and urls to download file ex. - {'C:\Home\Project\file.json':"https://website/file.json"} + {'C:\\Home\\Project\\file.json':"https://website/file.json"} Args: models_json_dict (dict): full path to files and links @@ -609,7 +609,7 @@ def set_settings(self, **kwargs): "implementation": "BEST", "model_type": "global_segformer_RGB_4class_14036903", "local_model_path": "", # local path to the directory containing the model - "use_local_model": True, # Use local model (not one from zeneodo) + "use_local_model": False, # Use local model (not one from zeneodo) "otsu": False, "tta": False, "cloud_thresh": 0.5, # threshold on maximum cloud cover @@ -694,6 +694,7 @@ def run_model_and_extract_shorelines(self, use_otsu:bool = False, percent_no_data:float = 50.0, use_GPU:str="0", + coregistered:bool = False, ): """ Runs the model and extracts shorelines using the segmented imagery. @@ -712,7 +713,8 @@ def run_model_and_extract_shorelines(self, use_otsu (bool, optional): Whether to use Otsu thresholding. Defaults to False. percent_no_data (float, optional): The percentage of no-data pixels in the input images. Defaults to 50.0. use_GPU (str, optional): The GPU device to use. Defaults to "0". - """ + coregistered (bool, optional): Whether the input images are coregistered. Defaults to False. + """ settings = self.get_settings() model_name = settings.get('model_type', None) if model_name is None: @@ -732,7 +734,7 @@ def run_model_and_extract_shorelines(self, desc=f"Running {model_name} model and extracting shorelines", leave=True, ) - # run the model + # run the model # todo remove this comment self.run_model( img_type, model_implementation, @@ -743,6 +745,7 @@ def run_model_and_extract_shorelines(self, use_otsu=use_otsu, use_tta=use_tta, percent_no_data=percent_no_data, + coregistered = coregistered, ) prog_bar.update(1) prog_bar.set_description_str( @@ -1102,6 +1105,7 @@ def run_model( use_otsu: bool, use_tta: bool, percent_no_data: float, + coregistered: bool = False, ): """ Runs the model for image segmentation. @@ -1115,7 +1119,8 @@ def run_model( use_GPU (str): Whether to use GPU or not. use_otsu (bool): Whether to use Otsu thresholding or not. use_tta (bool): Whether to use test-time augmentation or not. - percent_no_data (float): The percentage of no data. + percent_no_data (float): The percentage of no data allowed in the image. + coregistered (bool, optional): Whether the images are coregistered or not. Defaults to False. Returns: None @@ -1153,6 +1158,10 @@ def run_model( src_directory, "ID_", "data" ) + if coregistered: + roi_directory = os.path.join(roi_directory, "coregistered") + + print(f"Preprocessing the data at {roi_directory}") model_dict = self.preprocess_data(roi_directory, model_dict, img_type) logger.info(f"model_dict: {model_dict}") diff --git a/tests/test_common.py b/tests/test_common.py index d924f1c8..d9d51090 100644 --- a/tests/test_common.py +++ b/tests/test_common.py @@ -1184,12 +1184,12 @@ def sample_ROI_directory(request): ) filenames = [ - "20210101_sat1_L5.jpg", - "20210101_sat1_L7.jpg", - "20210101_sat1_L8.jpg", - "20210101_sat1_L9.jpg", - "20210101_sat1_S2.jpg", - "20210101_wrong_name.jpg", + "2021-01-05-15-33-53_L5_site1_ms.jpg", + "2021-01-05-15-33-53_L7_site1_ms.jpg", + "2021-01-05-15-33-53_sat1_L8.jpg", + "2021-01-05-15-33-53_sat1_L9.jpg", + "2021-01-05-15-33-53_sat1_S2.jpg", + "2021-01-05-15-33-53_wrong_name.jpg", "wrong_name_2.jpg", ] @@ -1244,9 +1244,11 @@ def expected_satellites(): # Test data @pytest.fixture(scope="module") def sample_metadata(): + # This metadata is total bogus and is just for testing purposes. + # The only thing that matters is the date format for filesnames is in the format "YYYY-MM-DD-HH-MM-SS" metadata = { "L5": { - "filenames": ["20210101_L5_site1_ms.tif", "20220101_L5_site1_ms.tif"], + "filenames": ["2021-01-05-15-33-53_L5_site1_ms.tif", "2022-01-05-15-33-53_L5_site1_ms.tif"], "acc_georef": [9.185, 10.185], "epsg": [32618, 32618], "dates": [ @@ -1255,7 +1257,7 @@ def sample_metadata(): ], }, "L7": { - "filenames": ["20210101_L7_site1_ms.tif", "20220101_L7_site1_ms.tif"], + "filenames": ["2021-01-05-15-33-53_L7_site1_ms.tif", "2022-01-05-15-33-53_L7_site1_ms.tif"], "acc_georef": [7.441, 5.693], "epsg": [32618, 32618], "dates": [ @@ -1272,13 +1274,13 @@ def sample_metadata(): def expected_filtered_metadata(): metadata = { "L5": { - "filenames": ["20210101_L5_site1_ms.tif"], + "filenames": ["2021-01-05-15-33-53_L5_site1_ms.tif"], "acc_georef": [9.185], "epsg": [32618], "dates": ["datetime.datetime(2020, 1, 5, 15, 33, 53, tzinfo=)"], }, "L7": { - "filenames": ["20210101_L7_site1_ms.tif"], + "filenames": ["2021-01-05-15-33-53_L7_site1_ms.tif"], "acc_georef": [7.441], "epsg": [32618], "dates": [ @@ -1314,7 +1316,10 @@ def expected_empty_filtered_metadata(): def test_filter_metadata( sample_ROI_directory, sample_metadata, expected_filtered_metadata ): - result = common.filter_metadata(sample_metadata, "site1", sample_ROI_directory) + directory = os.path.join( + sample_ROI_directory, "site1", "jpg_files", "preprocessed", "RGB" + ) + result = common.filter_metadata_with_dates(sample_metadata, directory, "jpg") assert ( result == expected_filtered_metadata @@ -1329,23 +1334,21 @@ def test_empty_roi_directory_filter_metadata( sample_directory, ): # if the RGB directory but exists and is empty then no filenames in result should be empty lists - result = common.filter_metadata(sample_metadata, "site1", empty_ROI_directory) + directory = os.path.join( + empty_ROI_directory, "site1", "jpg_files", "preprocessed", "RGB" + ) + result = common.filter_metadata_with_dates(sample_metadata, directory, "jpg") + assert ( result == expected_empty_filtered_metadata ), "The output filtered metadata is not as expected." # should raise an error if the RGB directory within the ROI directory does not exist with pytest.raises(Exception): - common.filter_metadata(sample_metadata, "site1", sample_directory) - - -# Test cases -def test_get_filtered_files_dict(sample_directory, expected_satellites): - result = common.get_filtered_files_dict(sample_directory, "jpg", "site1") - - assert ( - result == expected_satellites - ), "The output file name dictionary is not as expected." + directory = os.path.join( + sample_directory, "site1", "jpg_files", "preprocessed", "RGB" + ) + result = common.filter_metadata_with_dates(sample_metadata, directory, "jpg") # Test for preprocessing function From 815e1b9af483d818ea3d086682f2e15fbe608b73 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 11 Dec 2024 20:03:20 -0800 Subject: [PATCH 93/99] fix pip_install_e.yml to install gdal and geopandas so window will work --- .github/workflows/pip_install_e.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pip_install_e.yml b/.github/workflows/pip_install_e.yml index 47134940..ccfffee6 100644 --- a/.github/workflows/pip_install_e.yml +++ b/.github/workflows/pip_install_e.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [main] -name: Test CoastSeg pip install -e . +name: Test CoastSeg Pip Installation jobs: Test: name: ${{ matrix.os }}, ${{ matrix.env }} @@ -28,6 +28,9 @@ jobs: - run: | conda info conda list + - name: Install gdal and geopandas from conda + run: | + conda install -c conda-forge gdal geopandas -y - name: Install coastseg with pip install -e . run: | pip install -e . --user From 8620a83bc9124279dc642a2a9e50c98ba14e99f6 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 11 Dec 2024 20:45:13 -0800 Subject: [PATCH 94/99] update actions used in pip install --- .github/workflows/pip_install_e.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pip_install_e.yml b/.github/workflows/pip_install_e.yml index ccfffee6..43252c10 100644 --- a/.github/workflows/pip_install_e.yml +++ b/.github/workflows/pip_install_e.yml @@ -15,22 +15,19 @@ jobs: strategy: fail-fast: false matrix: - # tensorflow supports up to python 3.10 os: [ubuntu-latest, windows-latest, macos-latest] env: [ci/envs/310-coastseg.yaml] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Setup Conda - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: environment-file: ${{ matrix.env }} miniconda-version: "latest" + python-version: "3.10" - run: | conda info conda list - - name: Install gdal and geopandas from conda - run: | - conda install -c conda-forge gdal geopandas -y - name: Install coastseg with pip install -e . run: | pip install -e . --user From 27d09ce0039804f42c357c9489988e73c128ba92 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Wed, 11 Dec 2024 21:01:42 -0800 Subject: [PATCH 95/99] v1.2.17 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1a32d6af..778978ab 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta" [project] name = "coastseg" dynamic = ["readme"] -version = "1.2.16" +version = "1.2.17" authors = [ { name=" Sharon Fitzpatrick", email="sharon.fitzpatrick23@gmail.com" }, ] From 78c0aaf81d7fce8204fb73f24c10b6a1474fa3f6 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 12 Dec 2024 08:56:40 -0800 Subject: [PATCH 96/99] fix the Test CoastSeg Pip Installation to not use the broken environment file --- .github/workflows/pip_install_e.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pip_install_e.yml b/.github/workflows/pip_install_e.yml index 43252c10..c1d78ff2 100644 --- a/.github/workflows/pip_install_e.yml +++ b/.github/workflows/pip_install_e.yml @@ -7,7 +7,7 @@ on: name: Test CoastSeg Pip Installation jobs: Test: - name: ${{ matrix.os }}, ${{ matrix.env }} + name: ${{ matrix.os }} runs-on: ${{ matrix.os }} defaults: run: @@ -16,21 +16,24 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] - env: [ci/envs/310-coastseg.yaml] steps: - uses: actions/checkout@v4 - name: Setup Conda uses: conda-incubator/setup-miniconda@v3 with: - environment-file: ${{ matrix.env }} miniconda-version: "latest" python-version: "3.10" + channels: conda-forge,defaults - run: | conda info conda list - name: Install coastseg with pip install -e . run: | pip install -e . --user + - name: Install dependencies + run: | + conda install -c conda-forge gdal -y + pip install tensorflow - name: Pip install pytest run: | pip install pytest From e1bf2b136d09816b567490cbdc096f08114f39a7 Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 12 Dec 2024 08:57:03 -0800 Subject: [PATCH 97/99] remove geopandas and gdal from the environment file --- ci/envs/310-coastseg.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/ci/envs/310-coastseg.yaml b/ci/envs/310-coastseg.yaml index 1c65c0c5..cff7a5e7 100644 --- a/ci/envs/310-coastseg.yaml +++ b/ci/envs/310-coastseg.yaml @@ -4,8 +4,6 @@ channels: dependencies: - python=3.10 # required - - geopandas - - gdal - pip - pip: - tensorflow From 690a9e1a9e865133d7b68b2ced0f46a5dbdd1e8b Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 12 Dec 2024 09:03:48 -0800 Subject: [PATCH 98/99] add gdal back to environment file for testing pip install coastseg --- ci/envs/310-coastseg.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/ci/envs/310-coastseg.yaml b/ci/envs/310-coastseg.yaml index cff7a5e7..cc2c089c 100644 --- a/ci/envs/310-coastseg.yaml +++ b/ci/envs/310-coastseg.yaml @@ -4,6 +4,7 @@ channels: dependencies: - python=3.10 # required + - gdal - pip - pip: - tensorflow From a71a042413a122880acf070287a2e45e8962f01a Mon Sep 17 00:00:00 2001 From: Sharon Fitzpatrick Date: Thu, 12 Dec 2024 09:10:32 -0800 Subject: [PATCH 99/99] add example of how to use a local model in the zoo workflow --- 5_zoo_workflow_local_model.py | 91 +++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 5_zoo_workflow_local_model.py diff --git a/5_zoo_workflow_local_model.py b/5_zoo_workflow_local_model.py new file mode 100644 index 00000000..77526ad4 --- /dev/null +++ b/5_zoo_workflow_local_model.py @@ -0,0 +1,91 @@ +import os +from coastseg import coastseg_logs +from coastseg import zoo_model +from coastseg.tide_correction import compute_tidal_corrections +from coastseg import file_utilities + +# The Zoo Model is a machine learning model that can be used to extract shorelines from satellite imagery. +# This script will only run a single ROI at a time. If you want to run multiple ROIs, you will need to run this script multiple times. + +# Extract Shoreline Settings +settings ={ + 'min_length_sl': 100, # minimum length (m) of shoreline perimeter to be valid + 'max_dist_ref':500, # maximum distance (m) from reference shoreline to search for valid shorelines. This detrmines the width of the buffer around the reference shoreline + 'cloud_thresh': 0.5, # threshold on maximum cloud cover (0-1). If the cloud cover is above this threshold, no shorelines will be extracted from that image + 'dist_clouds': 100, # distance(m) around clouds where shoreline will not be mapped + 'min_beach_area': 50, # minimum area (m^2) for an object to be labelled as a beach + 'sand_color': 'default', # 'default', 'latest', 'dark' (for grey/black sand beaches) or 'bright' (for white sand beaches) + "apply_cloud_mask": True, # apply cloud mask to the imagery. If False, the cloud mask will not be applied. +} + + +# The model can be run using the following settings: +model_setting = { + "sample_direc": None, # directory of jpgs ex. C:/Users/username/CoastSeg/data/ID_lla12_datetime11-07-23__08_14_11/jpg_files/preprocessed/RGB/", + "use_GPU": "0", # 0 or 1 0 means no GPU + "implementation": "BEST", # BEST or ENSEMBLE + "model_type": "global_segformer_RGB_4class_14037041", # model name from the zoo + "otsu": False, # Otsu Thresholding + "tta": False, # Test Time Augmentation + "use_local_model": True, # Use local model (not one from zeneodo) + "local_model_path": r"C:\development\doodleverse\coastseg\CoastSeg\src\coastseg\downloaded_models\non_validation_model", # path to the local model + } + +# Available models can run input "RGB" # or "MNDWI" or "NDWI" +img_type = "RGB" # make sure the model name is compatible with the image type +# percentage of no data allowed in the image eg. 0.75 means 75% of the image can be no data +percent_no_data = 0.75 + +# 1. Set the User configuration Settings +# --------------------------- +# a. ENTER THE NAME OF THE SESSION TO SAVE THE MODEL PREDICTIONS TO +model_session_name = "sample_session_demo1" +# b. ENTER THE DIRECTORY WHERE THE INPUT IMAGES ARE STORED +# - Example of the directory where the input images are stored ( this should be the /data folder in the CoastSeg directory) +sample_directory = r"C:\development\doodleverse\coastseg\CoastSeg\data\ID_wra5_datetime03-04-24__03_43_01\jpg_files\preprocessed\RGB" + + +# 2. Save the settings to the model instance +# ----------------- +# Create an instance of the zoo model to run the model predictions +zoo_model_instance = zoo_model.Zoo_Model() +# Set the model settings to read the input images from the sample directory +model_setting["sample_direc"] = sample_directory +model_setting["img_type"] = img_type + +# save settings to the zoo model instance +settings.update(model_setting) +# save the settings to the model instance +zoo_model_instance.set_settings(**settings) + + +# OPTIONAL: If you have a transects and shoreline file, you can extract shorelines from the zoo model outputs +transects_path = "" # path to the transects geojson file (optional, default will be loaded if not provided) +shoreline_path = "" # path to the shoreline geojson file (optional, default will be loaded if not provided) +shoreline_extraction_area_path= "" # path to the shoreline extraction area geojson file (optional) + +# 3. Run the model and extract shorelines +# ------------------------------------- +zoo_model_instance.run_model_and_extract_shorelines( + model_setting["sample_direc"], + session_name=model_session_name, + shoreline_path=shoreline_path, + transects_path=transects_path, + shoreline_extraction_area_path = shoreline_extraction_area_path + ) + +# 4. OPTIONAL: Run Tide Correction +# ------------------------------------------ +# Tide Correction (optional) +# Before running this snippet, you must download the tide model to the CoastSeg/tide_model folder +# Tutorial: https://github.com/Doodleverse/CoastSeg/wiki/09.-How-to-Download-and-clip-Tide-Model +# You will need to uncomment the line below to run the tide correction + +beach_slope = 0.02 # Slope of the beach (m) +reference_elevation = 0 # Elevation of the beach Mean Sea Level (M.S.L) (m) + +# UNCOMMENT THESE LINES TO RUN THE TIDE CORRECTION +# roi_id = file_utilities.get_ROI_ID_from_session(session_name) # read ROI ID from the config.json file found in the extracted shoreline session directory +# compute_tidal_corrections( +# session_name, [roi_id], beach_slope, reference_elevation +# ) \ No newline at end of file