├── .gitignore
├── LICENSE.txt
├── MANIFEST.in
├── README.md
├── apls
├── __init__.py
├── apls.py
├── apls_plots.py
├── apls_utils.py
├── create_spacenet_masks.py
├── data
│ ├── __init__.py
│ ├── _sample_outputs
│ │ ├── all_pairs_paths_diffs_gt_to_prop.png
│ │ ├── all_pairs_paths_diffs_hist_gt_to_prop.png
│ │ ├── all_pairs_paths_diffs_hist_prop_to_gt.png
│ │ ├── all_pairs_paths_diffs_prop_to_gt.png
│ │ ├── gt_graph.png
│ │ ├── gt_graph_midpoints.png
│ │ ├── gt_graph_plus_prop_buff.png
│ │ ├── gt_graph_prop_control_points.png
│ │ ├── gt_without_geom.png
│ │ ├── output__max_snap=4m_hole=4m.txt
│ │ ├── overlaid.png
│ │ ├── prop_cp_without_geom.png
│ │ ├── prop_graph.png
│ │ ├── prop_graph_midpoints.png
│ │ ├── prop_graph_midpoints_gt_control_points.png
│ │ ├── prop_graph_plus_gt_buff.png
│ │ ├── prop_without_geom.png
│ │ ├── single_source_route_ground_truth.png
│ │ └── single_source_route_prop.png
│ ├── gt_json_prop_json
│ │ └── AOI_2_Vegas_Train
│ │ │ ├── osm
│ │ │ ├── AOI_2_Vegas_img99.geojson
│ │ │ ├── AOI_2_Vegas_img990.geojson
│ │ │ ├── AOI_2_Vegas_img991.geojson
│ │ │ ├── AOI_2_Vegas_img995.geojson
│ │ │ ├── AOI_2_Vegas_img997.geojson
│ │ │ ├── AOI_2_Vegas_img998.geojson
│ │ │ └── AOI_2_Vegas_img999.geojson
│ │ │ └── spacenetroads
│ │ │ ├── AOI_2_Vegas_img99.geojson
│ │ │ ├── AOI_2_Vegas_img990.geojson
│ │ │ ├── AOI_2_Vegas_img991.geojson
│ │ │ ├── AOI_2_Vegas_img995.geojson
│ │ │ ├── AOI_2_Vegas_img997.geojson
│ │ │ ├── AOI_2_Vegas_img998.geojson
│ │ │ └── AOI_2_Vegas_img999.geojson
│ ├── gt_json_prop_pkl
│ │ ├── ground_truth_randomized
│ │ │ └── AOI_2_Vegas_img0.geojson
│ │ └── proposal
│ │ │ └── RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
│ ├── gt_json_prop_wkt
│ │ ├── ground_truth_randomized
│ │ │ └── AOI_2_Vegas_img0.geojson
│ │ └── proposal
│ │ │ └── sn3_sample_submission_albu.csv
│ ├── gt_pkl_prop_pkl
│ │ ├── ground_truth_randomized
│ │ │ └── RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
│ │ └── proposal
│ │ │ └── RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
│ └── images
│ │ └── RGB-PanSharpen_AOI_2_Vegas_img0.tif
├── graphTools.py
├── gt_graph_to_wkt.py
├── osmnx_funcs.py
├── road_speed.py
├── sp_metric.py
├── topo_metric.py
└── wkt_to_G.py
├── environment.yml
└── setup.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # APLS specific
2 | _backup/
3 | _extras/
4 |
5 |
6 | # Byte-compiled / optimized / DLL files
7 | __pycache__/
8 | *.py[cod]
9 | *$py.class
10 |
11 | # MacOS stuff:
12 | .DS_Store
13 |
14 | # C extensions
15 | *.so
16 |
17 | # Distribution / packaging
18 | .Python
19 | build/
20 | develop-eggs/
21 | dist/
22 | downloads/
23 | eggs/
24 | .eggs/
25 | lib/
26 | lib64/
27 | parts/
28 | sdist/
29 | var/
30 | wheels/
31 | pip-wheel-metadata/
32 | share/python-wheels/
33 | *.egg-info/
34 | .installed.cfg
35 | *.egg
36 | MANIFEST
37 |
38 | # PyInstaller
39 | # Usually these files are written by a python script from a template
40 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
41 | *.manifest
42 | *.spec
43 |
44 | # Installer logs
45 | pip-log.txt
46 | pip-delete-this-directory.txt
47 |
48 | # Unit test / coverage reports
49 | htmlcov/
50 | .tox/
51 | .nox/
52 | .coverage
53 | .coverage.*
54 | .cache
55 | nosetests.xml
56 | coverage.xml
57 | *.cover
58 | .hypothesis/
59 | .pytest_cache/
60 |
61 | # Translations
62 | *.mo
63 | *.pot
64 |
65 | # Django stuff:
66 | *.log
67 | local_settings.py
68 | db.sqlite3
69 |
70 | # Flask stuff:
71 | instance/
72 | .webassets-cache
73 |
74 | # Scrapy stuff:
75 | .scrapy
76 |
77 | # Sphinx documentation
78 | docs/_build/
79 |
80 | # PyBuilder
81 | target/
82 |
83 | # Jupyter Notebook
84 | .ipynb_checkpoints
85 |
86 | # IPython
87 | profile_default/
88 | ipython_config.py
89 |
90 | # pyenv
91 | .python-version
92 |
93 | # celery beat schedule file
94 | celerybeat-schedule
95 |
96 | # SageMath parsed files
97 | *.sage.py
98 |
99 | # Environments
100 | .env
101 | .venv
102 | env/
103 | venv/
104 | ENV/
105 | env.bak/
106 | venv.bak/
107 |
108 | # Spyder project settings
109 | .spyderproject
110 | .spyproject
111 |
112 | # Rope project settings
113 | .ropeproject
114 |
115 | # mkdocs documentation
116 | /site
117 |
118 | # mypy
119 | .mypy_cache/
120 | .dmypy.json
121 | dmypy.json
122 |
123 | # Pyre type checker
124 | .pyre/
125 |
126 | # Project-specific
127 | sandbox.ipynb
128 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Apache License
2 | Version 2.0, January 2004
3 | http://www.apache.org/licenses/
4 |
5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6 |
7 | 1. Definitions.
8 |
9 | "License" shall mean the terms and conditions for use, reproduction,
10 | and distribution as defined by Sections 1 through 9 of this document.
11 |
12 | "Licensor" shall mean the copyright owner or entity authorized by
13 | the copyright owner that is granting the License.
14 |
15 | "Legal Entity" shall mean the union of the acting entity and all
16 | other entities that control, are controlled by, or are under common
17 | control with that entity. For the purposes of this definition,
18 | "control" means (i) the power, direct or indirect, to cause the
19 | direction or management of such entity, whether by contract or
20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
21 | outstanding shares, or (iii) beneficial ownership of such entity.
22 |
23 | "You" (or "Your") shall mean an individual or Legal Entity
24 | exercising permissions granted by this License.
25 |
26 | "Source" form shall mean the preferred form for making modifications,
27 | including but not limited to software source code, documentation
28 | source, and configuration files.
29 |
30 | "Object" form shall mean any form resulting from mechanical
31 | transformation or translation of a Source form, including but
32 | not limited to compiled object code, generated documentation,
33 | and conversions to other media types.
34 |
35 | "Work" shall mean the work of authorship, whether in Source or
36 | Object form, made available under the License, as indicated by a
37 | copyright notice that is included in or attached to the work
38 | (an example is provided in the Appendix below).
39 |
40 | "Derivative Works" shall mean any work, whether in Source or Object
41 | form, that is based on (or derived from) the Work and for which the
42 | editorial revisions, annotations, elaborations, or other modifications
43 | represent, as a whole, an original work of authorship. For the purposes
44 | of this License, Derivative Works shall not include works that remain
45 | separable from, or merely link (or bind by name) to the interfaces of,
46 | the Work and Derivative Works thereof.
47 |
48 | "Contribution" shall mean any work of authorship, including
49 | the original version of the Work and any modifications or additions
50 | to that Work or Derivative Works thereof, that is intentionally
51 | submitted to Licensor for inclusion in the Work by the copyright owner
52 | or by an individual or Legal Entity authorized to submit on behalf of
53 | the copyright owner. For the purposes of this definition, "submitted"
54 | means any form of electronic, verbal, or written communication sent
55 | to the Licensor or its representatives, including but not limited to
56 | communication on electronic mailing lists, source code control systems,
57 | and issue tracking systems that are managed by, or on behalf of, the
58 | Licensor for the purpose of discussing and improving the Work, but
59 | excluding communication that is conspicuously marked or otherwise
60 | designated in writing by the copyright owner as "Not a Contribution."
61 |
62 | "Contributor" shall mean Licensor and any individual or Legal Entity
63 | on behalf of whom a Contribution has been received by Licensor and
64 | subsequently incorporated within the Work.
65 |
66 | 2. Grant of Copyright License. Subject to the terms and conditions of
67 | this License, each Contributor hereby grants to You a perpetual,
68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69 | copyright license to reproduce, prepare Derivative Works of,
70 | publicly display, publicly perform, sublicense, and distribute the
71 | Work and such Derivative Works in Source or Object form.
72 |
73 | 3. Grant of Patent License. Subject to the terms and conditions of
74 | this License, each Contributor hereby grants to You a perpetual,
75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76 | (except as stated in this section) patent license to make, have made,
77 | use, offer to sell, sell, import, and otherwise transfer the Work,
78 | where such license applies only to those patent claims licensable
79 | by such Contributor that are necessarily infringed by their
80 | Contribution(s) alone or by combination of their Contribution(s)
81 | with the Work to which such Contribution(s) was submitted. If You
82 | institute patent litigation against any entity (including a
83 | cross-claim or counterclaim in a lawsuit) alleging that the Work
84 | or a Contribution incorporated within the Work constitutes direct
85 | or contributory patent infringement, then any patent licenses
86 | granted to You under this License for that Work shall terminate
87 | as of the date such litigation is filed.
88 |
89 | 4. Redistribution. You may reproduce and distribute copies of the
90 | Work or Derivative Works thereof in any medium, with or without
91 | modifications, and in Source or Object form, provided that You
92 | meet the following conditions:
93 |
94 | (a) You must give any other recipients of the Work or
95 | Derivative Works a copy of this License; and
96 |
97 | (b) You must cause any modified files to carry prominent notices
98 | stating that You changed the files; and
99 |
100 | (c) You must retain, in the Source form of any Derivative Works
101 | that You distribute, all copyright, patent, trademark, and
102 | attribution notices from the Source form of the Work,
103 | excluding those notices that do not pertain to any part of
104 | the Derivative Works; and
105 |
106 | (d) If the Work includes a "NOTICE" text file as part of its
107 | distribution, then any Derivative Works that You distribute must
108 | include a readable copy of the attribution notices contained
109 | within such NOTICE file, excluding those notices that do not
110 | pertain to any part of the Derivative Works, in at least one
111 | of the following places: within a NOTICE text file distributed
112 | as part of the Derivative Works; within the Source form or
113 | documentation, if provided along with the Derivative Works; or,
114 | within a display generated by the Derivative Works, if and
115 | wherever such third-party notices normally appear. The contents
116 | of the NOTICE file are for informational purposes only and
117 | do not modify the License. You may add Your own attribution
118 | notices within Derivative Works that You distribute, alongside
119 | or as an addendum to the NOTICE text from the Work, provided
120 | that such additional attribution notices cannot be construed
121 | as modifying the License.
122 |
123 | You may add Your own copyright statement to Your modifications and
124 | may provide additional or different license terms and conditions
125 | for use, reproduction, or distribution of Your modifications, or
126 | for any such Derivative Works as a whole, provided Your use,
127 | reproduction, and distribution of the Work otherwise complies with
128 | the conditions stated in this License.
129 |
130 | 5. Submission of Contributions. Unless You explicitly state otherwise,
131 | any Contribution intentionally submitted for inclusion in the Work
132 | by You to the Licensor shall be under the terms and conditions of
133 | this License, without any additional terms or conditions.
134 | Notwithstanding the above, nothing herein shall supersede or modify
135 | the terms of any separate license agreement you may have executed
136 | with Licensor regarding such Contributions.
137 |
138 | 6. Trademarks. This License does not grant permission to use the trade
139 | names, trademarks, service marks, or product names of the Licensor,
140 | except as required for reasonable and customary use in describing the
141 | origin of the Work and reproducing the content of the NOTICE file.
142 |
143 | 7. Disclaimer of Warranty. Unless required by applicable law or
144 | agreed to in writing, Licensor provides the Work (and each
145 | Contributor provides its Contributions) on an "AS IS" BASIS,
146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147 | implied, including, without limitation, any warranties or conditions
148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149 | PARTICULAR PURPOSE. You are solely responsible for determining the
150 | appropriateness of using or redistributing the Work and assume any
151 | risks associated with Your exercise of permissions under this License.
152 |
153 | 8. Limitation of Liability. In no event and under no legal theory,
154 | whether in tort (including negligence), contract, or otherwise,
155 | unless required by applicable law (such as deliberate and grossly
156 | negligent acts) or agreed to in writing, shall any Contributor be
157 | liable to You for damages, including any direct, indirect, special,
158 | incidental, or consequential damages of any character arising as a
159 | result of this License or out of the use or inability to use the
160 | Work (including but not limited to damages for loss of goodwill,
161 | work stoppage, computer failure or malfunction, or any and all
162 | other commercial damages or losses), even if such Contributor
163 | has been advised of the possibility of such damages.
164 |
165 | 9. Accepting Warranty or Additional Liability. While redistributing
166 | the Work or Derivative Works thereof, You may choose to offer,
167 | and charge a fee for, acceptance of support, warranty, indemnity,
168 | or other liability obligations and/or rights consistent with this
169 | License. However, in accepting such obligations, You may act only
170 | on Your own behalf and on Your sole responsibility, not on behalf
171 | of any other Contributor, and only if You agree to indemnify,
172 | defend, and hold each Contributor harmless for any liability
173 | incurred by, or claims asserted against, such Contributor by reason
174 | of your accepting any such warranty or additional liability.
175 |
176 | END OF TERMS AND CONDITIONS
177 |
178 | APPENDIX: How to apply the Apache License to your work.
179 |
180 | To apply the Apache License to your work, attach the following
181 | boilerplate notice, with the fields enclosed by brackets "[]"
182 | replaced with your own identifying information. (Don't include
183 | the brackets!) The text should be enclosed in the appropriate
184 | comment syntax for the file format. We also recommend that a
185 | file or class name and description of purpose be included on the
186 | same "printed page" as the copyright notice for easier
187 | identification within third-party archives.
188 |
189 | Copyright 2019 CosmiQ Works, an IQT Lab
190 |
191 | Licensed under the Apache License, Version 2.0 (the "License");
192 | you may not use this file except in compliance with the License.
193 | You may obtain a copy of the License at
194 |
195 | http://www.apache.org/licenses/LICENSE-2.0
196 |
197 | Unless required by applicable law or agreed to in writing, software
198 | distributed under the License is distributed on an "AS IS" BASIS,
199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200 | See the License for the specific language governing permissions and
201 | limitations under the License.
--------------------------------------------------------------------------------
/MANIFEST.in:
--------------------------------------------------------------------------------
1 | include *.txt
2 | include *.md
3 | recursive-include sample_data *
4 | include sample_data/*
5 | include sample_data/*.geojson
6 | include sample_data/*.csv
7 | include sample_data/*.png
8 | include sample_data/*.gpickle
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
APLS Metric
2 |
3 |
4 |
5 |
6 |
7 |
8 | - [Installation Instructions](#installation-instructions)
9 | - [Dependencies](#dependencies)
10 | - [License](#license)
11 | - [Useage](#usage)
12 |
13 | ____
14 |
15 | This package evaluates the Average Path Length Similarity (APLS) metric to measure the difference between ground truth and proposal graphs. The metric sums the differences in optimal path lengths between all nodes in the ground truth graph G and the proposal graph G’. This metric was used to score the SpaceNet 3 challenge. For further details, see [Blog1](https://medium.com/the-downlinq/spacenet-road-detection-and-routing-challenge-part-i-d4f59d55bfce) and [Blog2](https://medium.com/the-downlinq/spacenet-road-detection-and-routing-challenge-part-ii-apls-implementation-92acd86f4094).
16 |
17 | ____
18 |
19 | ## Installation Instructions
20 |
21 | #### pip
22 |
23 | ```
24 | pip install apls
25 | ```
26 |
27 | ____
28 |
29 | ## Dependencies
30 | All dependencies can be found in [environment.yml](./environment.yml)
31 |
32 | ____
33 |
34 | ## License
35 | See [LICENSE](./LICENSE.txt).
36 |
37 | ____
38 |
39 | ## Usage
40 |
41 | apls.py compares ground truth and proposal graphs. The actual metric takes up a relatively small portion of this code (functions: _single\_path\_metric_, _path\_sim\_metric__, and _compute\_metric_). Much of the code (e.g. _cut\_linestring_, _get\_closest_edge_, _insert\_point_into\_G_, _insert\_control\_points_, _create\_graph\_midpoints_) is concerned with injecting nodes into graphs. We inject nodes (i.e. control points) into the graph at a predetermined distance along edges, and at the location nearest proposal nodes. Injecting nodes is essential to properly compare graphs, though it unfortunately requires quite a bit of code. graphTools.py parses geojson labels into networkx graphs for analysis. Examples for running apls.py are shown below with the attached sample data
42 |
43 | # for further details: python apls.py --help
44 |
45 | # 1. Compare a ground truth SpaceNet geojson with a submission csv
46 | python apls.py --test_method=gt_json_prop_wkt --output_name=gt_json_prop_wkt \
47 | --truth_dir=data/gt_json_prop_wkt/ground_truth_randomized \
48 | --wkt_file=data/gt_json_prop_wkt/proposal/sn3_sample_submission_albu.csv \
49 | --im_dir=data/images
50 |
51 | # 2. Compare a ground truth geojson with a proposal json
52 | python apls.py --test_method=gt_json_prop_json --output_name=gt_json_prop_json \
53 | --truth_dir=data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads \
54 | --prop_dir=data/gt_json_prop_json/AOI_2_Vegas_Train/osm
55 |
56 | # 3. Compare a ground truth geojson with a pickled proposal graph
57 | python apls.py --test_method=gt_json_prop_pkl --output_name=gt_json_prop_pkl \
58 | --truth_dir=data/gt_json_prop_pkl/ground_truth_randomized \
59 | --prop_dir=data/gt_json_prop_pkl/proposal \
60 | --im_dir=data/images
61 |
62 | # 4. Compare a pickled ground truth graph with a pickled proposal graph
63 | python apls.py --test_method=gt_pkl_prop_pkl --output_name=gt_pkl_prop_pkl \
64 | --truth_dir=data/gt_pkl_prop_pkl/ground_truth_randomized \
65 | --prop_dir=data/gt_pkl_prop_pkl/proposal \
66 | --im_dir=data/images
67 |
68 |
69 | ### Outputs
70 |
71 | Running apls.py yields a number of plots in the _outputs_ directory, along with the APLS score
72 |
73 | 
74 |
75 | 
76 |
77 | ____
78 |
79 | ### SpaceNet Training Masks
80 |
81 | Run the _create\_spacenet\_masks.py_ script to create training masks with spacenet geojsons
82 |
--------------------------------------------------------------------------------
/apls/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/__init__.py
--------------------------------------------------------------------------------
/apls/apls_plots.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Mon May 6 15:34:07 2019
5 |
6 | @author: avanetten
7 | """
8 |
9 | import numpy as np
10 | import matplotlib
11 | import matplotlib.pyplot as plt
12 | import cv2
13 | import shapely
14 | from shapely.geometry import MultiLineString
15 | from matplotlib.patches import PathPatch
16 | from matplotlib import collections as mpl_collections
17 | import matplotlib.path
18 | import skimage.io
19 |
20 |
21 | ###############################################################################
22 | def plot_metric(C, diffs, routes_str=[],
23 | figsize=(10, 5), scatter_png='', hist_png='',
24 | scatter_alpha=0.3, scatter_size=2, scatter_cmap='jet',
25 | dpi=300):
26 | ''' Plot output of cost metric in both scatterplot and histogram format'''
27 |
28 | # plot diffs
29 | title = 'Path Length Similarity: ' + str(np.round(C, 2))
30 | fig, (ax0) = plt.subplots(1, 1, figsize=(1*figsize[0], figsize[1]))
31 | # ax0.plot(diffs)
32 | ax0.scatter(list(range(len(diffs))), diffs, s=scatter_size, c=diffs,
33 | alpha=scatter_alpha,
34 | cmap=scatter_cmap)
35 | if len(routes_str) > 0:
36 | xticklabel_pad = 0.1
37 | ax0.set_xticks(list(range(len(diffs))))
38 | ax0.set_xticklabels(routes_str, rotation=50, fontsize=4)
39 | ax0.tick_params(axis='x', which='major', pad=xticklabel_pad)
40 |
41 | ax0.set_ylabel('Length Diff (Normalized)')
42 | ax0.set_xlabel('Path ID')
43 | ax0.set_title(title)
44 | # plt.tight_layout()
45 | if scatter_png:
46 | plt.savefig(scatter_png, dpi=dpi)
47 |
48 | # plot and plot diffs histo
49 | bins = np.linspace(0, 1, 30)
50 | bin_centers = np.mean(list(zip(bins, bins[1:])), axis=1)
51 | # digitized = np.digitize(diffs, bins)
52 | # bin_means = [np.array(diffs)[digitized == i].mean() for i in range(1, len(bins))]
53 | hist, bin_edges = np.histogram(diffs, bins=bins)
54 | fig, ax1 = plt.subplots(nrows=1, ncols=1, figsize=figsize)
55 | # ax1.plot(bins[1:],hist, type='bar')
56 | # ax1.bar(bin_centers, hist, width=bin_centers[1]-bin_centers[0] )
57 | ax1.bar(bin_centers, 1.*hist/len(diffs),
58 | width=bin_centers[1]-bin_centers[0])
59 | ax1.set_xlim([0, 1])
60 | # ax1.set_ylabel('Num Routes')
61 | ax1.set_ylabel('Frac Num Routes')
62 | ax1.set_xlabel('Length Diff (Normalized)')
63 | ax1.set_title('Length Diff Histogram - Score: ' + str(np.round(C, 2)))
64 | ax1.grid(True)
65 | # plt.tight_layout()
66 | if hist_png:
67 | plt.savefig(hist_png, dpi=dpi)
68 |
69 | return
70 |
71 |
72 | ###############################################################################
73 | ###############################################################################
74 | # For plotting the buffer...
75 | # https://sgillies.net/2010/04/06/painting-punctured-polygons-with-matplotlib.html
76 | def _ring_coding(ob):
77 | # The codes will be all "LINETO" commands, except for "MOVETO"s at the
78 | # beginning of each subpath
79 | n = len(ob.coords)
80 | codes = np.ones(n, dtype=matplotlib.path.Path.code_type) * \
81 | matplotlib.path.Path.LINETO
82 | codes[0] = matplotlib.path.Path.MOVETO
83 | return codes
84 |
85 |
86 | ###############################################################################
87 | # https://sgillies.net/2010/04/06/painting-punctured-polygons-with-matplotlib.html
88 | def _pathify(polygon):
89 | # Convert coordinates to path vertices. Objects produced by Shapely's
90 | # analytic methods have the proper coordinate order, no need to sort.
91 | vertices = np.concatenate(
92 | [np.asarray(polygon.exterior)]
93 | + [np.asarray(r) for r in polygon.interiors])
94 | codes = np.concatenate(
95 | [_ring_coding(polygon.exterior)]
96 | + [_ring_coding(r) for r in polygon.interiors])
97 | return matplotlib.path.Path(vertices, codes)
98 | ###############################################################################
99 |
100 |
101 | ###############################################################################
102 | def _plot_buff(G_, ax, buff=20, color='yellow', alpha=0.3,
103 | title='Proposal Snapping',
104 | title_fontsize=8, outfile='',
105 | dpi=200,
106 | verbose=False):
107 | '''plot buffer around graph using shapely buffer'''
108 |
109 | # get lines
110 | line_list = []
111 | for u, v, key, data in G_.edges(keys=True, data=True):
112 | if verbose:
113 | print(("u, v, key:", u, v, key))
114 | print((" data:", data))
115 | geom = data['geometry']
116 | line_list.append(geom)
117 |
118 | mls = MultiLineString(line_list)
119 | mls_buff = mls.buffer(buff)
120 |
121 | if verbose:
122 | print(("type(mls_buff) == MultiPolygon:", type(
123 | mls_buff) == shapely.geometry.MultiPolygon))
124 |
125 | if type(mls_buff) == shapely.geometry.Polygon:
126 | mls_buff_list = [mls_buff]
127 | else:
128 | mls_buff_list = mls_buff
129 |
130 | for poly in mls_buff_list:
131 | x, y = poly.exterior.xy
132 | coords = np.stack((x, y), axis=1)
133 | interiors = poly.interiors
134 | # coords_inner = np.stack((x_inner,y_inner), axis=1)
135 |
136 | if len(interiors) == 0:
137 | # ax.plot(x, y, color='#6699cc', alpha=0.0, linewidth=3,
138 | # solid_capstyle='round', zorder=2)
139 | ax.add_patch(matplotlib.patches.Polygon(
140 | coords, alpha=alpha, color=color))
141 | else:
142 | path = _pathify(poly)
143 | patch = PathPatch(path, facecolor=color,
144 | edgecolor=color, alpha=alpha)
145 | ax.add_patch(patch)
146 |
147 | ax.axis('off')
148 | if len(title) > 0:
149 | ax.set_title(title, fontsize=title_fontsize)
150 | if outfile:
151 | plt.savefig(outfile, dpi=dpi)
152 | return ax
153 |
154 |
155 | ###############################################################################
156 | def _plot_node_ids(G, ax, node_list=[], alpha=0.8, fontsize=8,
157 | plot_node=False, node_size=15,
158 | node_color='orange'):
159 | '''
160 | for label, x, y in zip(labels, data[:, 0], data[:, 1]):
161 | plt.annotate(
162 | label,
163 | xy=(x, y), xytext=(-20, 20),
164 | textcoords='offset points', ha='right', va='bottom',
165 | bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
166 | arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))
167 | '''
168 | Gnodes = set(G.nodes())
169 |
170 | if len(node_list) == 0:
171 | nodes = G.nodes()
172 | else:
173 | nodes = node_list
174 | for n in nodes: # G.nodes():
175 | if n not in Gnodes:
176 | continue
177 | x, y = G.node[n]['x'], G.node[n]['y']
178 | if plot_node:
179 | ax.scatter(x, y, s=node_size, color=node_color)
180 | ax.annotate(str(n), xy=(x, y), alpha=alpha, fontsize=fontsize)
181 |
182 | return ax
183 |
184 |
185 | ###############################################################################
186 | def plot_graph_on_im(G_, im_test_file, figsize=(8, 8), show_endnodes=False,
187 | width_key='speed_m/s', width_mult=0.125,
188 | color='lime', title='', figname='',
189 | default_node_size=15,
190 | max_speeds_per_line=12, dpi=300, plt_save_quality=75,
191 | ax=None, verbose=False):
192 | '''
193 | Overlay graph on image,
194 | if width_key == int, use a constant width'''
195 |
196 | try:
197 | im_cv2 = cv2.imread(im_test_file, 1)
198 | img_mpl = cv2.cvtColor(im_cv2, cv2.COLOR_BGR2RGB)
199 | except:
200 | img_sk = skimage.io.imread(im_test_file)
201 | # make sure image is h,w,channels (assume less than 20 channels)
202 | if (len(img_sk.shape) == 3) and (img_sk.shape[0] < 20):
203 | img_mpl = np.moveaxis(img_sk, 0, -1)
204 | else:
205 | img_mpl = img_sk
206 | h, w = img_mpl.shape[:2]
207 |
208 | node_x, node_y, lines, widths, title_vals = [], [], [], [], []
209 | # get edge data
210 | for i, (u, v, edge_data) in enumerate(G_.edges(data=True)):
211 | # if type(edge_data['geometry_pix'])
212 | if type(edge_data['geometry_pix']) == str:
213 | coords = list(shapely.wkt.loads(edge_data['geometry_pix']).coords)
214 | else:
215 | coords = list(edge_data['geometry_pix'].coords)
216 | if verbose: # (i % 100) == 0:
217 | print("\n", i, u, v, edge_data)
218 | print("edge_data:", edge_data)
219 | print(" coords:", coords)
220 | lines.append(coords)
221 | node_x.append(coords[0][0])
222 | node_x.append(coords[-1][0])
223 | node_y.append(coords[0][1])
224 | node_y.append(coords[-1][1])
225 | if type(width_key) == str:
226 | if verbose:
227 | print("edge_data[width_key]:", edge_data[width_key])
228 | width = int(np.rint(edge_data[width_key] * width_mult))
229 | title_vals.append(int(np.rint(edge_data[width_key])))
230 | else:
231 | width = width_key
232 | widths.append(width)
233 |
234 | if not ax:
235 | fig, ax = plt.subplots(1, 1, figsize=figsize)
236 |
237 | ax.imshow(img_mpl)
238 | # plot nodes?
239 | if show_endnodes:
240 | ax.scatter(node_x, node_y, color=color, s=default_node_size, alpha=0.5)
241 | # plot segments
242 | # print (lines)
243 | lc = mpl_collections.LineCollection(lines, colors=color,
244 | linewidths=widths, alpha=0.4,
245 | zorder=2)
246 | ax.add_collection(lc)
247 | ax.axis('off')
248 |
249 | # title
250 | if len(title_vals) > 0:
251 | if verbose:
252 | print("title_vals:", title_vals)
253 | title_strs = np.sort(np.unique(title_vals)).astype(str)
254 | # split title str if it's too long
255 | if len(title_strs) > max_speeds_per_line:
256 | # construct new title str
257 | n, b = max_speeds_per_line, title_strs
258 | title_strs = np.insert(b, range(n, len(b), n), "\n")
259 | # title_strs = '\n'.join(s[i:i+ds] for i in range(0, len(s), ds))
260 | if verbose:
261 | print("title_strs:", title_strs)
262 | title = title + '\n' \
263 | + width_key + " = " + " ".join(title_strs)
264 | if title:
265 | # plt.suptitle(title)
266 | ax.set_title(title)
267 |
268 | plt.tight_layout()
269 | print("title:", title)
270 | if title:
271 | plt.subplots_adjust(top=0.96)
272 | # plt.subplots_adjust(left=1, bottom=1, right=1, top=1, wspace=5, hspace=5)
273 |
274 | # set dpi to approximate native resolution
275 | if verbose:
276 | print("img_mpl.shape:", img_mpl.shape)
277 | desired_dpi = int(np.max(img_mpl.shape) / np.max(figsize))
278 | if verbose:
279 | print("desired dpi:", desired_dpi)
280 | # max out dpi at 3500
281 | dpi = int(np.min([3500, desired_dpi]))
282 | if verbose:
283 | print("plot dpi:", dpi)
284 |
285 | if figname:
286 | plt.savefig(figname, dpi=dpi, quality=plt_save_quality)
287 |
288 | return ax
289 |
290 |
291 | ###############################################################################
292 | def _plot_gt_prop_graphs(G_gt, G_prop, im_test_file,
293 | figsize=(16, 8), show_endnodes=False,
294 | width_key='Inferred Speed (mph)', width_mult=0.125,
295 | gt_color='cyan', prop_color='lime',
296 | default_node_size=15,
297 | title='', figname='', adjust=True, verbose=False):
298 | '''Plot the ground truth, and prediction mask Overlay graph on image,
299 | if width_key == int, use a constant width'''
300 |
301 | fig, (ax0, ax1) = plt.subplots(1, 2, figsize=figsize)
302 |
303 | print("Plotting ground truth...")
304 | _ = plot_graph_on_im(G_gt, im_test_file, figsize=figsize,
305 | show_endnodes=show_endnodes,
306 | width_key=width_key, width_mult=width_mult,
307 | color=gt_color,
308 | default_node_size=default_node_size,
309 | title='Ground Truth: ' + title,
310 | figname='',
311 | ax=ax0, verbose=verbose)
312 | print("Plotting proposal...")
313 | _ = plot_graph_on_im(G_prop, im_test_file, figsize=figsize,
314 | show_endnodes=show_endnodes,
315 | width_key=width_key, width_mult=width_mult,
316 | color=prop_color,
317 | default_node_size=default_node_size,
318 | title='Proposal: ' + title, figname='',
319 | ax=ax1, verbose=verbose)
320 |
321 | # if title:
322 | # plt.suptitle(title)
323 | # ax1.set_title(im_test_root)
324 | plt.tight_layout()
325 | if adjust:
326 | plt.subplots_adjust(top=0.96)
327 | # plt.subplots_adjust(left=1, bottom=1, right=1, top=1, wspace=5, hspace=5)
328 |
329 | if figname:
330 | plt.savefig(figname, dpi=300)
331 |
332 | return fig
333 |
334 |
335 | ###############################################################################
336 | def plot_node_ids(G, ax, node_list=[], alpha=0.8, fontsize=8,
337 | plot_node=False, node_size=15,
338 | node_color='orange'):
339 | '''
340 | for label, x, y in zip(labels, data[:, 0], data[:, 1]):
341 | plt.annotate(
342 | label,
343 | xy=(x, y), xytext=(-20, 20),
344 | textcoords='offset points', ha='right', va='bottom',
345 | bbox=dict(boxstyle='round,pad=0.5', fc='yellow', alpha=0.5),
346 | arrowprops=dict(arrowstyle = '->', connectionstyle='arc3,rad=0'))
347 | '''
348 | Gnodes = set(G.nodes())
349 |
350 | if len(node_list) == 0:
351 | nodes = G.nodes()
352 | else:
353 | nodes = node_list
354 | for n in nodes:
355 | if n not in Gnodes:
356 | continue
357 | x, y = G.node[n]['x'], G.node[n]['y']
358 | if plot_node:
359 | ax.scatter(x, y, s=node_size, color=node_color)
360 | ax.annotate(str(n), xy=(x, y), alpha=alpha, fontsize=fontsize)
361 |
362 | return ax
363 |
--------------------------------------------------------------------------------
/apls/create_spacenet_masks.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Tue Dec 5 16:56:31 2017
5 |
6 | @author: avanetten
7 | """
8 |
9 |
10 | import os
11 | import sys
12 | import time
13 | import argparse
14 | import pandas as pd
15 |
16 | # add apls path and import apls_tools
17 | path_apls_src = os.path.dirname(os.path.realpath(__file__))
18 | sys.path.append(path_apls_src)
19 | import apls_utils
20 |
21 |
22 | ###############################################################################
23 | def create_masks(path_data, buffer_meters=2, n_bands=3,
24 | burnValue=150, make_plots=True, overwrite_ims=False,
25 | output_df_file='',
26 | header=['name', 'im_file', 'im_vis_file', 'mask_file',
27 | 'mask_vis_file']):
28 | '''
29 | Create masks from files in path_data.
30 | Write 8bit images and masks to file.
31 | Return a dataframe of file locations with the following columns:
32 | ['name', 'im_file', 'im_vis_file', 'mask_file', 'mask_vis_file']
33 | We record locations of im_vis_file and mask_vis_file in case im_file
34 | or mask_file is not 8-bit or has n_channels != [1,3]
35 | if using 8band data, the RGB-PanSharpen_8bit should already exist, so
36 | 3band should be run prior to 8band
37 | '''
38 |
39 | t0 = time.time()
40 | # set paths
41 | path_labels = os.path.join(path_data, 'geojson/spacenetroads')
42 | # output directories
43 | path_masks = os.path.join(path_data, 'masks_' + str(buffer_meters) + 'm')
44 | path_masks_plot = os.path.join(
45 | path_data, 'masks_' + str(buffer_meters) + 'm_plots')
46 | # image directories
47 | path_images_vis = os.path.join(path_data, 'RGB-PanSharpen_8bit')
48 | if n_bands == 3:
49 | path_images_raw = os.path.join(path_data, 'RGB-PanSharpen')
50 | path_images_8bit = os.path.join(path_data, 'RGB-PanSharpen_8bit')
51 | else:
52 | path_images_raw = os.path.join(path_data, 'MUL-PanSharpen')
53 | path_images_8bit = os.path.join(path_data, 'MUL-PanSharpen_8bit')
54 | if not os.path.exists(path_images_vis):
55 | print("Need to run 3band prior to 8band!")
56 | return
57 |
58 | # create directories
59 | for d in [path_images_8bit, path_masks, path_masks_plot]:
60 | if not os.path.exists(d):
61 | os.mkdir(d)
62 |
63 | # iterate through images, convert to 8-bit, and create masks
64 | outfile_list = []
65 | im_files = os.listdir(path_images_raw)
66 | nfiles = len(im_files)
67 | for i, im_name in enumerate(im_files):
68 | if not im_name.endswith('.tif'):
69 | continue
70 |
71 | # define files
72 | name_root = 'AOI' + im_name.split('AOI')[1].split('.')[0]
73 | im_file_raw = os.path.join(path_images_raw, im_name)
74 | im_file_out = os.path.join(path_images_8bit, im_name)
75 | im_file_out_vis = im_file_out.replace('MUL', 'RGB')
76 | # get visible file (if using 8band imagery we want the 3band file
77 | # for plotting purposes)
78 | # if n_bands == 3:
79 | # im_file_out_vis = im_file_out
80 | # else:
81 | # name_vis = im_name.replace('MUL', 'RGB')
82 | # im_file_out_vis = os.path.join(path_images_vis, name_vis)
83 |
84 | # convert to 8bit, if desired
85 | if not os.path.exists(im_file_out) or overwrite_ims:
86 | apls_utils.convert_to_8Bit(im_file_raw, im_file_out,
87 | outputPixType='Byte',
88 | outputFormat='GTiff',
89 | rescale_type='rescale',
90 | percentiles=[2, 98])
91 |
92 | # determine output files
93 | # label_file = os.path.join(path_labels, 'spacenetroads_AOI_2_Vegas_' \
94 | # + name_root + '.geojson')
95 | label_file = os.path.join(path_labels, 'spacenetroads_' + name_root
96 | + '.geojson')
97 | label_file_tot = os.path.join(path_labels, label_file)
98 | mask_file = os.path.join(path_masks, name_root + '.png')
99 | if make_plots:
100 | plot_file = os.path.join(path_masks_plot, name_root + '.png')
101 | else:
102 | plot_file = ''
103 |
104 | print("\n", i+1, "/", nfiles)
105 | print(" im_name:", im_name)
106 | print(" name_root:", name_root)
107 | print(" im_file_out:", im_file_out)
108 | print(" mask_file:", mask_file)
109 | print(" output_plot_file:", plot_file)
110 |
111 | # create masks
112 | if not os.path.exists(mask_file) or overwrite_ims:
113 | mask, gdf_buffer = apls_utils.get_road_buffer(label_file_tot,
114 | im_file_out_vis,
115 | mask_file,
116 | buffer_meters=buffer_meters,
117 | burnValue=burnValue,
118 | bufferRoundness=6,
119 | plot_file=plot_file,
120 | figsize=(6, 6),
121 | fontsize=8,
122 | dpi=500,
123 | show_plot=False,
124 | verbose=False)
125 |
126 | # resize in ingest so we don't have to save the very large arrays
127 | outfile_list.append([im_name, im_file_out, im_file_out_vis,
128 | mask_file, mask_file])
129 |
130 | # make dataframe and save
131 | df = pd.DataFrame(outfile_list, columns=header)
132 | if len(output_df_file) > 0:
133 | df.to_csv(output_df_file, index=False)
134 | print("\ndf.ix[0]:", df.ix[0])
135 | print("\nTotal data length:", len(df))
136 | t4 = time.time()
137 | print("Time to run create_masks():", t4 - t0, "seconds")
138 | return df
139 |
140 |
141 | ###############################################################################
142 | def main():
143 |
144 | parser = argparse.ArgumentParser()
145 | parser.add_argument('--path_data', default='/spacenet_data/sample_data/AOI_2_Vegas_Train', type=str,
146 | help='Folder containing imagery and geojson labels')
147 | parser.add_argument('--output_df_path', default='/spacenet_data/sample_data', type=str,
148 | help='csv of dataframe containing image and mask locations')
149 | parser.add_argument('--buffer_meters', default=2, type=float,
150 | help='Buffer distance (meters) around graph')
151 | parser.add_argument('--n_bands', default=3, type=int,
152 | help='Number of bands to use [3,8]')
153 | parser.add_argument('--burnValue', default=150, type=int,
154 | help='Value of road pixels (for plotting)')
155 | parser.add_argument('--make_plots', default=1, type=int,
156 | help='Switch to create gridded plots of geojson, image, and mask')
157 | parser.add_argument('--overwrite_ims', default=1, type=int,
158 | help='Switch to overwrite 8bit images and masks')
159 |
160 | args = parser.parse_args()
161 |
162 | data_root = 'AOI' + args.path_data.split('AOI')[-1].replace('/', '_')
163 | output_df_file = os.path.join(args.output_df_path, data_root + '_'
164 | + 'files_loc_'
165 | + str(args.buffer_meters) + 'm.csv')
166 |
167 | path_masks = create_masks(args.path_data,
168 | buffer_meters=args.buffer_meters,
169 | n_bands=args.n_bands,
170 | burnValue=args.burnValue,
171 | output_df_file=output_df_file,
172 | make_plots=bool(args.make_plots),
173 | overwrite_ims=bool(args.overwrite_ims))
174 | print("Output_df_file:", output_df_file)
175 |
176 | return path_masks
177 |
178 |
179 | ###############################################################################
180 | if __name__ == "__main__":
181 | main()
182 |
--------------------------------------------------------------------------------
/apls/data/__init__.py:
--------------------------------------------------------------------------------
1 | import os
2 |
3 | # define the current directory as `data_dir`
4 | data_dir = os.path.abspath(os.path.dirname(__file__))
5 |
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/all_pairs_paths_diffs_gt_to_prop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/all_pairs_paths_diffs_gt_to_prop.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/all_pairs_paths_diffs_hist_gt_to_prop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/all_pairs_paths_diffs_hist_gt_to_prop.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/all_pairs_paths_diffs_hist_prop_to_gt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/all_pairs_paths_diffs_hist_prop_to_gt.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/all_pairs_paths_diffs_prop_to_gt.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/all_pairs_paths_diffs_prop_to_gt.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/gt_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/gt_graph.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/gt_graph_midpoints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/gt_graph_midpoints.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/gt_graph_plus_prop_buff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/gt_graph_plus_prop_buff.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/gt_graph_prop_control_points.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/gt_graph_prop_control_points.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/gt_without_geom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/gt_without_geom.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/output__max_snap=4m_hole=4m.txt:
--------------------------------------------------------------------------------
1 | Ground Truth Nodes Snapped Onto Proposal Score: 0.7973714316363272
2 | Proposal Nodes Snapped Onto Ground Truth Score: 0.6837488820254419
3 | Total APLS Score: 0.7362019410731921
4 | TOPO vals - topo_tp_tot, topo_fp_tot, topo_fn_tot, topo_precision, topo_recall, topo_f1: (2054, 959, 1444, 0.6817125788250913, 0.5871926815323042, 0.6309322684687453)
5 | SP: 0.47
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/overlaid.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/overlaid.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_cp_without_geom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_cp_without_geom.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_graph.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_graph.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_graph_midpoints.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_graph_midpoints.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_graph_midpoints_gt_control_points.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_graph_midpoints_gt_control_points.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_graph_plus_gt_buff.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_graph_plus_gt_buff.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/prop_without_geom.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/prop_without_geom.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/single_source_route_ground_truth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/single_source_route_ground_truth.png
--------------------------------------------------------------------------------
/apls/data/_sample_outputs/single_source_route_prop.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/_sample_outputs/single_source_route_prop.png
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/osm/AOI_2_Vegas_img99.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "OBJECTID": 11472, "id": "way\/350958444", "F_id": "way\/350958444", "area": "None", "highway": "residential", "name": "Clubhouse", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "yes", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.0019285836424599999, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295244585150073, 36.166907699806629, 0.0 ], [ -115.295236000341106, 36.166897299670723, 0.0 ], [ -115.295140600258435, 36.166797699754113, 0.0 ], [ -115.295084600373968, 36.166699300432413, 0.0 ], [ -115.295046499696184, 36.166610999597992, 0.0 ], [ -115.2949982996318, 36.166577300202277, 0.0 ] ] } },
6 | { "type": "Feature", "properties": { "OBJECTID": 11473, "id": "way\/350958446", "F_id": "way\/350958446", "area": "None", "highway": "residential", "name": "Clubhouse", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "yes", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.00069238602188899997, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.294835999881457, 36.166450199916824, 0.0 ], [ -115.294796700407346, 36.166472100207329, 0.0 ], [ -115.294770799932451, 36.166504500082681, 0.0 ], [ -115.294762199715706, 36.166542400211654, 0.0 ], [ -115.294772200176851, 36.166580099791815, 0.0 ], [ -115.294799300347393, 36.166611799994598, 0.0 ], [ -115.294839400218109, 36.166632800063724, 0.0 ], [ -115.294886399687584, 36.166639699662483, 0.0 ], [ -115.294933099682794, 36.166631600368135, 0.0 ], [ -115.294972400056167, 36.166609700077629, 0.0 ], [ -115.2949982996318, 36.166577300202277, 0.0 ], [ -115.295006899848488, 36.166539400073304, 0.0 ], [ -115.294996900286662, 36.166501699593823, 0.0 ], [ -115.294969800116121, 36.16647000029036, 0.0 ], [ -115.294929700245461, 36.166449100046009, 0.0 ], [ -115.294882699876666, 36.166442099723156, 0.0 ], [ -115.294835999881457, 36.166450199916824, 0.0 ] ] } },
7 | { "type": "Feature", "properties": { "OBJECTID": 11474, "id": "way\/350958449", "F_id": "way\/350958449", "area": "None", "highway": "residential", "name": "Clubhouse", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "None", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.00069672387734099998, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295446929966531, 36.166907699806629, 0.0 ], [ -115.295336600303813, 36.166707100252552, 0.0 ], [ -115.295277600280997, 36.166600400188372, 0.0 ] ] } },
8 | { "type": "Feature", "properties": { "OBJECTID": 11475, "id": "way\/350958450", "F_id": "way\/350958450", "area": "None", "highway": "residential", "name": "Clubhouse", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "None", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.00087862725400999998, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.294799300347393, 36.166611799994598, 0.0 ], [ -115.29482629979384, 36.166816699730987, 0.0 ], [ -115.294885594055046, 36.166907699806629, 0.0 ] ] } },
9 | { "type": "Feature", "properties": { "OBJECTID": 11476, "id": "way\/350958452", "F_id": "way\/350958452", "area": "None", "highway": "residential", "name": "Clubhouse", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "yes", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.00180085244081, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.294933099682794, 36.166631600368135, 0.0 ], [ -115.294942600120862, 36.166669899796091, 0.0 ], [ -115.295008399917663, 36.166786899795625, 0.0 ], [ -115.295105583539154, 36.166907699806629, 0.0 ] ] } },
10 | { "type": "Feature", "properties": { "OBJECTID": 11478, "id": "way\/350958456", "F_id": "way\/350958456", "area": "None", "highway": "residential", "name": "None", "lit": "None", "review": "None", "source": "None", "indoor": "None", "level": "None", "building": "None", "service": "None", "access": "None", "outdoor_se": "None", "FIXME": "None", "lanes": "None", "oneway": "None", "ref": "None", "tiger_cfcc": "None", "tiger_coun": "None", "tiger_name": "None", "tiger_na_1": "None", "tiger_revi": "None", "surface": "None", "name_1": "None", "tiger_na_2": "None", "tiger_sepa": "None", "tiger_sour": "None", "tiger_tlid": "None", "name_prefi": "None", "source_ref": "None", "tiger_na_3": "None", "tiger_na_4": "None", "tiger_na_5": "None", "tiger_na_6": "None", "tiger_uplo": "None", "bicycle": "None", "destinatio": "None", "bridge": "None", "layer": "None", "junction": "None", "destinat_1": "None", "addr_house": "None", "addr_stree": "None", "contact_em": "None", "contact_ph": "None", "maxspeed": "None", "foot": "None", "turn_lanes": "None", "tiger_na_7": "None", "old_name": "None", "old_ref": "None", "tiger_na_8": "None", "tiger_na_9": "None", "name_2": "None", "postal_cod": "None", "hgv": "None", "lanes_back": "None", "lanes_forw": "None", "tiger_na10": "None", "tiger_zip_": "None", "tiger_zi_1": "None", "horse": "None", "turn_lan_1": "None", "loc_name": "None", "note": "None", "addr_postc": "None", "created_by": "None", "placement": "None", "NHS": "None", "hgv_nation": "None", "source_hgv": "None", "tracktype": "None", "name1": "None", "segregated": "None", "tunnel": "None", "hov": "None", "note_lanes": "None", "place_numb": "None", "cutting": "None", "constructi": "None", "alt_name": "None", "cycleway": "None", "incline": "None", "source_nam": "None", "embankment": "None", "footway": "None", "turn": "None", "motor_vehi": "None", "escalator": "None", "parking_co": "None", "parking_la": "None", "sidewalk": "None", "admin_leve": "None", "lanes_both": "None", "turn_lan_2": "None", "width_lane": "None", "width": "None", "conveying": "None", "placement_": "None", "covered": "None", "placemen_1": "None", "smoothness": "None", "crossing": "None", "bridge_nam": "None", "historic": "None", "ref_nrhp": "None", "wikidata": "None", "wikipedia": "None", "modifier": "None", "Shape_Leng": 0.0016731334742800001, "partialBuilding": 1.0, "partialDec": 0.0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295765459052205, 36.166907699806629, 0.0 ], [ -115.295706999578329, 36.166802100136863, 0.0 ], [ -115.295535800137031, 36.166578900096226, 0.0 ], [ -115.295348099934813, 36.166613399888547, 0.0 ], [ -115.295277600280997, 36.166600400188372, 0.0 ], [ -115.295211500110611, 36.166588199985483, 0.0 ], [ -115.295006899848488, 36.166539400073304, 0.0 ] ] } }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img99.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20891, "road_type": "5", "origarea": 0, "origlen": 0.00088319523407689158, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295044441759998, 36.166532808120003 ], [ -115.295000388689999, 36.166447293330002 ], [ -115.294911937020004, 36.16640859572 ], [ -115.29479584421, 36.166433472759998 ], [ -115.294753000430006, 36.166490137099998 ], [ -115.294740561919994, 36.166545419389998 ], [ -115.29477096718, 36.166615904319997 ], [ -115.294849571689994, 36.166659957390003 ], [ -115.294964282440006, 36.166658575329997 ], [ -115.295043059700006, 36.166592236589999 ], [ -115.295044441759998, 36.166532808120003 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 12255, "road_type": "5", "origarea": 0, "origlen": 0.0010928421151008977, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295778282368246, 36.166907699799999 ], [ -115.295705065139998, 36.166773286089999 ], [ -115.295539218269994, 36.166548010749999 ], [ -115.295324999390004, 36.166600528929997 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16749, "road_type": "5", "origarea": 0, "origlen": 0.0011627892826477908, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295485830384166, 36.166907699799999 ], [ -115.295396866369998, 36.166752555229998 ], [ -115.295341584080006, 36.166639226530002 ], [ -115.295324999390004, 36.166600528929997 ], [ -115.295044441759998, 36.166532808120003 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 7797, "road_type": "5", "origarea": 0, "origlen": 0.00071868044430732029, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.294930981955858, 36.166907699799999 ], [ -115.294886887230007, 36.1668555185 ], [ -115.294839206259994, 36.166751864200002 ], [ -115.294849571689994, 36.166659957390003 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 97, "road_type": "5", "origarea": 0, "origlen": 0.00079439734641099772, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295278217740574, 36.166907699799999 ], [ -115.295190939829993, 36.166832714549997 ], [ -115.295120454910005, 36.166726296139998 ], [ -115.295067936730007, 36.166614349500001 ], [ -115.295043059700006, 36.166592236589999 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 4584, "road_type": "5", "origarea": 0, "origlen": 0.00066795186416000144, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.295133554012565, 36.166907699799999 ], [ -115.295019564729998, 36.166776050199999 ], [ -115.294964282440006, 36.166658575329997 ] ] } }
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img990.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23370, "road_type": "2", "origarea": 0, "origlen": 0.018510876416305805, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206221348497593, 36.180947699800001 ], [ -115.206221463990005, 36.180929625300003 ], [ -115.206222597959993, 36.180752159279997 ], [ -115.206221554799995, 36.180390879329998 ], [ -115.206219639750003, 36.180210808189997 ], [ -115.206216820609995, 36.180057908019997 ], [ -115.206193565820001, 36.179088548640003 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21510, "road_type": "2", "origarea": 0, "origlen": 0.018493949730721295, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205986139320004, 36.179115604270002 ], [ -115.205995208809995, 36.179570857389997 ], [ -115.206000632439995, 36.179843102680003 ], [ -115.206002211859996, 36.179922383419999 ], [ -115.206002211859996, 36.180242541399998 ], [ -115.206002211859996, 36.180947146580003 ], [ -115.206002211859996, 36.180947699800001 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 9557, "road_type": "6", "origarea": 0, "origlen": 0.00232672410751158, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205778908100001, 36.178376481779999 ], [ -115.205773384880004, 36.179107125 ], [ -115.205770228760002, 36.179430627930003 ], [ -115.2057276, 36.179439153684704 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 7613, "road_type": "5", "origarea": 0, "origlen": 0.00020918355579712243, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206193565820001, 36.179088548640003 ], [ -115.205986139320004, 36.179115604270002 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 14227, "road_type": "6", "origarea": 0, "origlen": 0.00064210555126311655, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.17957588479733 ], [ -115.205995208809995, 36.179570857389997 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 18750, "road_type": "6", "origarea": 0, "origlen": 0.00042856110007895949, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.179878594747521 ], [ -115.205784431319998, 36.179881164949997 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21031, "road_type": "6", "origarea": 0, "origlen": 0.00040882426839844666, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206000632439995, 36.179843102680003 ], [ -115.205784431319998, 36.179881164949997 ], [ -115.205762338439996, 36.179934819099998 ], [ -115.205784431319998, 36.180064220269998 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 208, "road_type": "6", "origarea": 0, "origlen": 0.00029509888911927548, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206395141749994, 36.180081578959999 ], [ -115.206687763199994, 36.180043420849998 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 4350, "road_type": "6", "origarea": 0, "origlen": 0.0015047876316934506, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.180064545951311 ], [ -115.205784431319998, 36.180064220269998 ], [ -115.205795477769996, 36.180247275589998 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 12025, "road_type": "6", "origarea": 0, "origlen": 0.0010073794689876299, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206567150620003, 36.180760146099999 ], [ -115.206434593319997, 36.180753833849998 ], [ -115.206390407559994, 36.180720694519998 ], [ -115.206387251430002, 36.180591293349998 ], [ -115.206384095299995, 36.180392457400004 ], [ -115.206395141749994, 36.180081578959999 ], [ -115.206306770210006, 36.180065798329998 ], [ -115.206216820609995, 36.180057908019997 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22268, "road_type": "6", "origarea": 0, "origlen": 0.0009076141673111073, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205795477769996, 36.180247275589998 ], [ -115.205781275199996, 36.18076172416 ], [ -115.2057276, 36.18076280850876 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22777, "road_type": "6", "origarea": 0, "origlen": 0.0015514490751744501, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206002211859996, 36.180242541399998 ], [ -115.205795477769996, 36.180247275589998 ], [ -115.2057276, 36.18024928380791 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16514, "road_type": "6", "origarea": 0, "origlen": 0.00098232856847632589, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206570276020003, 36.180931176290002 ], [ -115.206567150620003, 36.180760146099999 ], [ -115.206641319590005, 36.180745943529999 ], [ -115.206631851210005, 36.18042244059 ], [ -115.206552948059993, 36.180412972219997 ], [ -115.206384095299995, 36.180392457400004 ], [ -115.206221554799995, 36.180390879329998 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 5093, "road_type": "3", "origarea": 0, "origlen": 0.0087789539535557248, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205994563455747, 36.180947699800001 ], [ -115.206002211859996, 36.180947146580003 ], [ -115.206221463990005, 36.180929625300003 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 4689, "road_type": "6", "origarea": 0, "origlen": 0.00015971333617408536, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206570276020003, 36.180931176290002 ], [ -115.206567481554089, 36.180947699800001 ] ] } },
20 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "3", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 22973, "road_type": "2", "origarea": 0, "origlen": 0.0050628300911160617, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206163504009993, 36.177437699800002 ], [ -115.206163504009993, 36.17778987842 ], [ -115.206193565820001, 36.179088548640003 ] ] } },
21 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "3", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 19701, "road_type": "2", "origarea": 0, "origlen": 0.0050785460273653918, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205957066722604, 36.177437699800002 ], [ -115.205964854699999, 36.177887177439999 ], [ -115.205972920259995, 36.178352675669998 ], [ -115.205986139320004, 36.179115604270002 ] ] } },
22 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16017, "road_type": "6", "origarea": 0, "origlen": 0.0011352269080525247, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205766263749993, 36.177886052630001 ], [ -115.205771017789999, 36.177522749639998 ], [ -115.2057276, 36.177522749639998 ] ] } },
23 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20540, "road_type": "6", "origarea": 0, "origlen": 0.0009478982189466017, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205964854699999, 36.177887177439999 ], [ -115.205766263749993, 36.177886052630001 ], [ -115.2057276, 36.177885833641909 ] ] } },
24 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21667, "road_type": "6", "origarea": 0, "origlen": 0.0032746227683072941, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.178376294525179 ], [ -115.205778908100001, 36.178376481779999 ], [ -115.205972920259995, 36.178352675669998 ] ] } },
25 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 6891, "road_type": "5", "origarea": 0, "origlen": 0.0036243734566307967, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.177613743036964 ], [ -115.208895334100006, 36.177610548010001 ], [ -115.208478227520004, 36.177622380819997 ], [ -115.207664721780006, 36.177601673399998 ], [ -115.206848257830003, 36.177604631599998 ] ] } },
26 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 4565, "road_type": "5", "origarea": 0, "origlen": 0.0048158181114317973, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2068441738719, 36.177437699800002 ], [ -115.206848257830003, 36.177604631599998 ], [ -115.206860090640006, 36.179092607560001 ], [ -115.206866007049996, 36.180006692200003 ], [ -115.206892630870001, 36.18093260965 ] ] } },
27 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 77, "road_type": "5", "origarea": 0, "origlen": 0.0048008631307793143, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207706136620004, 36.180929651440003 ], [ -115.20770022021, 36.180317303480003 ], [ -115.207679512789994, 36.179083732949998 ], [ -115.207669159079998, 36.178354535990003 ], [ -115.207664721780006, 36.177601673399998 ], [ -115.207663231109763, 36.177437699800002 ] ] } },
28 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16730, "road_type": "5", "origarea": 0, "origlen": 0.0048300650113256641, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208475697645355, 36.177437699800002 ], [ -115.208478227520004, 36.177622380819997 ], [ -115.208498934939996, 36.179098523969998 ], [ -115.208513725960003, 36.180947400660003 ] ] } },
29 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 12239, "road_type": "5", "origarea": 0, "origlen": 0.0043146434767061884, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.179094063940823 ], [ -115.208900510960007, 36.179087430709998 ], [ -115.208498934939996, 36.179098523969998 ], [ -115.207679512789994, 36.179083732949998 ], [ -115.207368901509994, 36.179089649360002 ], [ -115.206860090640006, 36.179092607560001 ], [ -115.206193565820001, 36.179088548640003 ] ] } },
30 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21739, "road_type": "5", "origarea": 0, "origlen": 0.0040870740436729563, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206892630870001, 36.18093260965 ], [ -115.20688811372645, 36.180947699800001 ] ] } },
31 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 21426, "road_type": "3", "origarea": 0, "origlen": 0.035008610794341283, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206221463990005, 36.180929625300003 ], [ -115.206570276020003, 36.180931176290002 ], [ -115.206892630870001, 36.18093260965 ], [ -115.207706136620004, 36.180929651440003 ], [ -115.208513725960003, 36.180947400660003 ], [ -115.208573180092174, 36.180947699800001 ] ] } }
32 | ]
33 | }
34 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img991.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23370, "road_type": "2", "origarea": 0, "origlen": 0.018510876416305805, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20626846774698, 36.184457699799999 ], [ -115.206267722299998, 36.184378682419997 ], [ -115.206264012800006, 36.18398547484 ], [ -115.206261869299993, 36.183854721899998 ], [ -115.206252179979998, 36.183263673379997 ], [ -115.206246803810004, 36.182857391959999 ], [ -115.206240347169995, 36.182379170769998 ], [ -115.206216681550003, 36.181678076730002 ], [ -115.206219806259995, 36.181189059159998 ], [ -115.206221348497593, 36.180947699800001 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21510, "road_type": "2", "origarea": 0, "origlen": 0.018493949730721295, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206002211859996, 36.180947699800001 ], [ -115.206002211859996, 36.181292031280002 ], [ -115.206019961069998, 36.18264392991 ], [ -115.206024694860005, 36.182861684130003 ], [ -115.206046584899994, 36.183868625830002 ], [ -115.206046584899994, 36.184457699799999 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 5093, "road_type": "3", "origarea": 0, "origlen": 0.0087789539535557248, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.180967009647844 ], [ -115.205994563455747, 36.180947699800001 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 4689, "road_type": "6", "origarea": 0, "origlen": 0.00015971333617408536, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206567481554089, 36.180947699800001 ], [ -115.206543643390006, 36.18108865344 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 22285, "road_type": "6", "origarea": 0, "origlen": 0.00078712919594836031, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206767564640003, 36.18141346422 ], [ -115.206709599540005, 36.18120074662 ], [ -115.206657192329999, 36.181109034019997 ], [ -115.206585860299995, 36.18108865344 ], [ -115.206543643390006, 36.18108865344 ], [ -115.206451930780005, 36.18108865344 ], [ -115.206219806259995, 36.181189059159998 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 8849, "road_type": "5", "origarea": 0, "origlen": 0.00022215041839414478, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206024694860005, 36.182861684130003 ], [ -115.206246803810004, 36.182857391959999 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 18117, "road_type": "6", "origarea": 0, "origlen": 0.00089029486245973571, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206267722299998, 36.184378682419997 ], [ -115.206435917470003, 36.18436119223 ], [ -115.206479590140006, 36.184300050490002 ], [ -115.206462121070004, 36.183854589249997 ], [ -115.206261869299993, 36.183854721899998 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 5312, "road_type": "5", "origarea": 0, "origlen": 0.00081333497482603085, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206767564640003, 36.18141346422 ], [ -115.207157689140004, 36.181429009049999 ], [ -115.207580580119995, 36.181426112540002 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 15087, "road_type": "5", "origarea": 0, "origlen": 0.0037019011812757709, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208210134029997, 36.181940905429997 ], [ -115.208471083760003, 36.182116491339997 ], [ -115.208710949350007, 36.182160677100001 ], [ -115.209133870260004, 36.182157520979999 ], [ -115.2092376, 36.182159092642955 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16738, "road_type": "5", "origarea": 0, "origlen": 0.0089770201342966299, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207624480660002, 36.182856169209998 ], [ -115.207632343219998, 36.182238791229999 ], [ -115.207684419299994, 36.182156731950002 ], [ -115.207971626789998, 36.18210149974 ], [ -115.208154682100002, 36.181997347569997 ], [ -115.208210134029997, 36.181940905429997 ], [ -115.208331425170002, 36.181817448380002 ], [ -115.208493965670002, 36.181490789320002 ], [ -115.208621788779993, 36.181462384180001 ], [ -115.208932667209993, 36.181459228050002 ], [ -115.2092376, 36.181463573886099 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21739, "road_type": "5", "origarea": 0, "origlen": 0.0040870740436729563, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20688811372645, 36.180947699800001 ], [ -115.206777033020003, 36.181318780440002 ], [ -115.206767564640003, 36.18141346422 ], [ -115.206780189140005, 36.182858970029997 ], [ -115.206793595299999, 36.183564469330001 ], [ -115.206805438149999, 36.184187699159999 ], [ -115.206805178219994, 36.184254762770003 ], [ -115.206804391641697, 36.184457699799999 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 85, "road_type": "5", "origarea": 0, "origlen": 0.00396289066379141, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.182860492452058 ], [ -115.208746455769997, 36.182854235839997 ], [ -115.207869052679996, 36.182854235839997 ], [ -115.207624480660002, 36.182856169209998 ], [ -115.207070552749997, 36.182860548089998 ], [ -115.206780189140005, 36.182858970029997 ], [ -115.20651349648, 36.182855813899998 ], [ -115.206246803810004, 36.182857391959999 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 7569, "road_type": "5", "origarea": 0, "origlen": 0.003395878650894676, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206793595299999, 36.183564469330001 ], [ -115.207954268090006, 36.183564364230001 ], [ -115.2092376, 36.183564364230001 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2270, "road_type": "5", "origarea": 0, "origlen": 0.005711839974879133, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.184258883107084 ], [ -115.208933456249994, 36.18426107909 ], [ -115.207431140170002, 36.184248454589998 ], [ -115.206805178219994, 36.184254762770003 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 21426, "road_type": "3", "origarea": 0, "origlen": 0.035008610794341283, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208573180092174, 36.180947699800001 ], [ -115.2092376, 36.180951042790014 ] ] } }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img995.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2105, "road_type": "3", "origarea": 0, "origlen": 0.00070604804202479968, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206786701959999, 36.195551470780003 ], [ -115.206080653979996, 36.195551174839999 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20925, "road_type": "3", "origarea": 0, "origlen": 0.0014971093888327368, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206080653979996, 36.195551174839999 ], [ -115.20588532024, 36.195557305569999 ], [ -115.2057276, 36.195557278043992 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 871, "road_type": "5", "origarea": 0, "origlen": 0.00021709671153927656, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206074687820006, 36.196738286719999 ], [ -115.205857699510005, 36.196731427019998 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 8243, "road_type": "6", "origarea": 0, "origlen": 0.0017039423210047583, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206227739499994, 36.197923748820003 ], [ -115.206239319459996, 36.19707905768 ], [ -115.206739471440002, 36.197081932110002 ], [ -115.206756607369996, 36.196723329729998 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 14659, "road_type": "5", "origarea": 0, "origlen": 0.00021612273601167054, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20604797787, 36.19791779274 ], [ -115.205831855240007, 36.197917578670001 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19618, "road_type": "2", "origarea": 0, "origlen": 0.0051205472693769613, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206031968535171, 36.198497699900003 ], [ -115.20604797787, 36.19791779274 ], [ -115.206056938610004, 36.197593207300002 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21482, "road_type": "2", "origarea": 0, "origlen": 0.0051073662533518208, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205849864420003, 36.197605040109998 ], [ -115.205831855240007, 36.197917578670001 ], [ -115.205799200550004, 36.198484281349998 ], [ -115.20579902321245, 36.198497699900003 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23370, "road_type": "2", "origarea": 0, "origlen": 0.018510876416305805, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206056938610004, 36.197593207300002 ], [ -115.206074687820006, 36.196738286719999 ], [ -115.206065813210003, 36.195874491529999 ], [ -115.206080653979996, 36.195551174839999 ], [ -115.206087580230005, 36.195400281639998 ], [ -115.206106518401725, 36.194987699899997 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 21510, "road_type": "2", "origarea": 0, "origlen": 0.018493949730721295, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205903793936102, 36.194987699899997 ], [ -115.205900375249996, 36.195093109379997 ], [ -115.205889957940002, 36.195414309870003 ], [ -115.20588532024, 36.195557305569999 ], [ -115.205861697230006, 36.196285681699997 ], [ -115.205857699510005, 36.196731427019998 ], [ -115.205849864420003, 36.197605040109998 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11466, "road_type": "6", "origarea": 0, "origlen": 0.00071747140717475573, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206757550839995, 36.195243682159997 ], [ -115.206385915729996, 36.195217859940001 ], [ -115.206348548050002, 36.195191990010002 ], [ -115.206342799180007, 36.195131626840002 ], [ -115.206335862939824, 36.194987699899997 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 13944, "road_type": "6", "origarea": 0, "origlen": 0.00055630359715920974, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.195095776615432 ], [ -115.205900375249996, 36.195093109379997 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16333, "road_type": "3", "origarea": 0, "origlen": 0.00066915977598498895, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206087580230005, 36.195400281639998 ], [ -115.206756476920006, 36.195419043939999 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 4854, "road_type": "3", "origarea": 0, "origlen": 0.0015327859349010219, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.195420670619882 ], [ -115.205889957940002, 36.195414309870003 ], [ -115.206087580230005, 36.195400281639998 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13162, "road_type": "6", "origarea": 0, "origlen": 0.003547740214439263, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207786912362693, 36.194987699899997 ], [ -115.207783276100002, 36.195110293980001 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 23291, "road_type": "6", "origarea": 0, "origlen": 0.0039484328107335332, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -115.207301367970004, 36.195255333219997 ], [ -115.207308008909337, 36.194987699899997 ] ], [ [ -115.206759118474125, 36.194987699899997 ], [ -115.206757550839995, 36.195243682159997 ], [ -115.206756476920006, 36.195419043939999 ] ] ] } },
20 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9327, "road_type": "6", "origarea": 0, "origlen": 0.0010818557680941246, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207098558929999, 36.195250988120002 ], [ -115.207093027149995, 36.19503964487 ], [ -115.207093503706687, 36.194987699899997 ] ] } },
21 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 14710, "road_type": "6", "origarea": 0, "origlen": 0.00048749206293637547, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206903217700003, 36.195246803010001 ], [ -115.206905476413453, 36.194987699899997 ] ] } },
22 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 9900, "road_type": "3", "origarea": 0, "origlen": 0.00074974307805043849, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208215177050704, 36.194987699899997 ], [ -115.208216715879999, 36.195498811230003 ] ] } },
23 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13801, "road_type": "6", "origarea": 0, "origlen": 0.00054394192529147738, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206757550839995, 36.195243682159997 ], [ -115.206903217700003, 36.195246803010001 ], [ -115.207098558929999, 36.195250988120002 ], [ -115.207301367970004, 36.195255333219997 ] ] } },
24 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 6218, "road_type": "6", "origarea": 0, "origlen": 0.00038251082005573536, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207783276100002, 36.195110293980001 ], [ -115.207769313219998, 36.195492549870004 ] ] } },
25 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 17527, "road_type": "6", "origarea": 0, "origlen": 0.00023064542495808364, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207301367970004, 36.195255333219997 ], [ -115.207298453470003, 36.195485960230002 ] ] } },
26 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 5346, "road_type": "3", "origarea": 0, "origlen": 0.00056182041883839277, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206786701959999, 36.195551470780003 ], [ -115.207044510879996, 36.195482406330001 ], [ -115.206756476920006, 36.195419043939999 ] ] } },
27 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 22363, "road_type": "3", "origarea": 0, "origlen": 0.0065966880106145022, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.195513098414438 ], [ -115.208216715879999, 36.195498811230003 ], [ -115.207769313219998, 36.195492549870004 ], [ -115.207298453470003, 36.195485960230002 ], [ -115.207044510879996, 36.195482406330001 ] ] } },
28 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 17999, "road_type": "5", "origarea": 0, "origlen": 0.0088485348126274479, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206074687820006, 36.196738286719999 ], [ -115.206756607369996, 36.196723329729998 ], [ -115.206806690549996, 36.196722231220001 ], [ -115.208451466200003, 36.196756497380001 ], [ -115.2092376, 36.196768921910014 ] ] } },
29 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 408, "road_type": "5", "origarea": 0, "origlen": 0.0088569321490807422, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20604797787, 36.19791779274 ], [ -115.206227739499994, 36.197923748820003 ], [ -115.207627672369995, 36.197970133040002 ], [ -115.2092376, 36.197993161915058 ] ] } }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img997.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2395, "road_type": "6", "origarea": 0, "origlen": 0.00058323663649975362, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205857137829994, 36.204892970510002 ], [ -115.206097034850004, 36.204930581420001 ], [ -115.206104204740001, 36.205270915109999 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2654, "road_type": "3", "origarea": 0, "origlen": 0.00022702645479523269, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.205271265241436 ], [ -115.20584812397, 36.205261411750001 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 14551, "road_type": "6", "origarea": 0, "origlen": 0.00049389937399452871, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206697012366575, 36.2055176999 ], [ -115.206703540980001, 36.205394802939999 ], [ -115.206661861650005, 36.20536605857 ], [ -115.206660413419996, 36.205274398679997 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 20533, "road_type": "6", "origarea": 0, "origlen": 0.0010408884184865764, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206331294329999, 36.205272337389999 ], [ -115.206328045692999, 36.2055176999 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 6855, "road_type": "6", "origarea": 0, "origlen": 0.0003657770008830565, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206064421108465, 36.2055176999 ], [ -115.206059667169995, 36.205442231150002 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23338, "road_type": "2", "origarea": 0, "origlen": 0.007707182227590109, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205937122649999, 36.202712303250003 ], [ -115.205925754489996, 36.202829767220003 ], [ -115.205896920979995, 36.203266834110003 ], [ -115.205884033030003, 36.203793629060002 ], [ -115.205876387499998, 36.20410614032 ], [ -115.205857137829994, 36.204892970510002 ], [ -115.20584812397, 36.205261411750001 ], [ -115.205841853925165, 36.2055176999 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19618, "road_type": "2", "origarea": 0, "origlen": 0.0051205472693769613, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205937122649999, 36.202712303250003 ], [ -115.205943698309994, 36.202362809969998 ], [ -115.205950379647916, 36.202007699900001 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 5242, "road_type": "6", "origarea": 0, "origlen": 0.0006269998777139943, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206257974449997, 36.202716105939999 ], [ -115.206263752170003, 36.202558452559998 ], [ -115.206148774710002, 36.202549829250003 ], [ -115.206097034850004, 36.20251246158 ], [ -115.206085537099995, 36.202457847280002 ], [ -115.20607691379, 36.202357242 ], [ -115.205943698309994, 36.202362809969998 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 9688, "road_type": "6", "origarea": 0, "origlen": 0.00024516889118733783, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206608708659999, 36.202720262790002 ], [ -115.20660868457, 36.202475093899999 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23245, "road_type": "2", "origarea": 0, "origlen": 0.0045709692046760828, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.202826695055677 ], [ -115.205925754489996, 36.202829767220003 ], [ -115.206286747670006, 36.202835117089997 ], [ -115.206783662310002, 36.202807146040001 ], [ -115.207029825030006, 36.20279036222 ], [ -115.206694148590003, 36.20271203771 ], [ -115.206608708659999, 36.202720262790002 ], [ -115.206257974449997, 36.202716105939999 ], [ -115.205937122649999, 36.202712303250003 ], [ -115.2057276, 36.202709820019656 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 17830, "road_type": "6", "origarea": 0, "origlen": 0.00014229187851413344, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206286747670006, 36.202835117089997 ], [ -115.206288184889999, 36.202977401710001 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19472, "road_type": "6", "origarea": 0, "origlen": 0.00022995942128012828, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206288184889999, 36.202977401710001 ], [ -115.206518139820005, 36.202975964490001 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 14788, "road_type": "6", "origarea": 0, "origlen": 0.00041929074710097744, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206512390949996, 36.203348204039997 ], [ -115.206509516509996, 36.203168551749997 ], [ -115.206532961540006, 36.203168221799999 ], [ -115.206536924, 36.202971419729998 ], [ -115.206518139820005, 36.202975964490001 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 1164, "road_type": "6", "origarea": 0, "origlen": 0.00045340788722906774, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206148774710002, 36.203277780340002 ], [ -115.206160272459996, 36.203174300619999 ], [ -115.206509516509996, 36.203168551749997 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 5642, "road_type": "6", "origarea": 0, "origlen": 0.0006466453129495924, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205896920979995, 36.203266834110003 ], [ -115.206148774710002, 36.203277780340002 ], [ -115.206157398019997, 36.203313710800003 ], [ -115.206334175869998, 36.203343892379998 ], [ -115.206512390949996, 36.203348204039997 ] ] } },
20 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 10085, "road_type": "6", "origarea": 0, "origlen": 0.00065420085787690706, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206426157850004, 36.203838295490002 ], [ -115.206426157850004, 36.203670140939998 ], [ -115.206069727699997, 36.203660080410003 ], [ -115.206064079379999, 36.203789431350003 ] ] } },
21 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16009, "road_type": "6", "origarea": 0, "origlen": 0.00082520850052701243, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205884033030003, 36.203793629060002 ], [ -115.206064079379999, 36.203789431350003 ], [ -115.206125779220002, 36.203787992850003 ], [ -115.206426157850004, 36.203838295490002 ], [ -115.206423283410004, 36.204117115839999 ] ] } },
22 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 11795, "road_type": "3", "origarea": 0, "origlen": 0.004822829497513564, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.204099497500756 ], [ -115.205876387499998, 36.20410614032 ] ] } },
23 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 8957, "road_type": "2", "origarea": 0, "origlen": 0.0011469081652574218, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207029825030006, 36.20279036222 ], [ -115.208176719549996, 36.202795956819998 ] ] } },
24 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "4", "lane_number": "4", "one_way_ty": "2", "paved": "1", "road_id": 21339, "road_type": "2", "origarea": 0, "origlen": 0.0055405206707284868, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208176719549996, 36.202795956819998 ], [ -115.2092376, 36.202814103551141 ] ] } },
25 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "2", "road_id": 14948, "road_type": "6", "origarea": 0, "origlen": 0.0012433719556050502, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206824189480002, 36.204125282009997 ], [ -115.206850137250001, 36.203746313510003 ], [ -115.206909063210006, 36.203652894320001 ], [ -115.20706140835, 36.203654331540001 ], [ -115.207215190710002, 36.203691699220002 ], [ -115.207225251240004, 36.203753499610002 ], [ -115.207215190710002, 36.204040943270002 ], [ -115.207212283320004, 36.2041331199 ] ] } },
26 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "2", "road_id": 10483, "road_type": "6", "origarea": 0, "origlen": 0.00054171015135952186, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207091589930002, 36.204141548560003 ], [ -115.207118897079994, 36.204268023769998 ], [ -115.207202255750005, 36.204328386939999 ], [ -115.207265493349993, 36.204334135810001 ], [ -115.207338791490002, 36.204293893699997 ], [ -115.207356038110007, 36.204262274900003 ], [ -115.207361838150007, 36.204136140289997 ] ] } },
27 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 9856, "road_type": "5", "origarea": 0, "origlen": 0.0077898981796139799, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205876387499998, 36.20410614032 ], [ -115.206423283410004, 36.204117115839999 ], [ -115.206824189480002, 36.204125282009997 ], [ -115.207091589930002, 36.204141548560003 ], [ -115.207212283320004, 36.2041331199 ], [ -115.207361838150007, 36.204136140289997 ], [ -115.207581161319993, 36.204140569709999 ], [ -115.209058464270001, 36.204160688629997 ], [ -115.209199296649999, 36.204206674710001 ], [ -115.209202170780003, 36.204678032069999 ], [ -115.209196422519994, 36.205316088990003 ], [ -115.208696323859996, 36.205310340730001 ], [ -115.207351230889998, 36.205278725299998 ], [ -115.206864499410003, 36.205275676879999 ], [ -115.206660413419996, 36.205274398679997 ], [ -115.206331294329999, 36.205272337389999 ], [ -115.206104204740001, 36.205270915109999 ], [ -115.2059745225, 36.205270102909999 ], [ -115.20584812397, 36.205261411750001 ] ] } },
28 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19074, "road_type": "6", "origarea": 0, "origlen": 4.6198258918946979e-05, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206862628750002, 36.205321837249997 ], [ -115.206864499410003, 36.205275676879999 ] ] } },
29 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "2", "road_id": 19869, "road_type": "6", "origarea": 0, "origlen": 0.00096572487777047528, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.209196422519994, 36.205316088990003 ], [ -115.2092376, 36.205315843885977 ] ] } },
30 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3184, "road_type": "6", "origarea": 0, "origlen": 0.00037942874492637174, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206862628750002, 36.205321837249997 ], [ -115.206865596365589, 36.2055176999 ] ] } }
31 | ]
32 | }
33 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img998.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 14551, "road_type": "6", "origarea": 0, "origlen": 0.00049389937399452871, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206684889460007, 36.205745905839997 ], [ -115.206697012366575, 36.2055176999 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 20533, "road_type": "6", "origarea": 0, "origlen": 0.0010408884184865764, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206328045692999, 36.2055176999 ], [ -115.206326989779996, 36.205597450719999 ], [ -115.206325552560003, 36.205748358649998 ], [ -115.206684889460007, 36.205745905839997 ], [ -115.206746657530005, 36.205745484209999 ], [ -115.20685588613, 36.205732549250001 ], [ -115.206868377009997, 36.205701222450003 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 6855, "road_type": "6", "origarea": 0, "origlen": 0.0003657770008830565, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206082662669999, 36.205807284599999 ], [ -115.206064421108465, 36.2055176999 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3159, "road_type": "6", "origarea": 0, "origlen": 0.00066300384855961809, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205835199980001, 36.205789679980001 ], [ -115.206082662669999, 36.205807284599999 ], [ -115.2060539183, 36.206221203479998 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 7118, "road_type": "6", "origarea": 0, "origlen": 0.00022039748941618257, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205820561460001, 36.206388029339998 ], [ -115.2057276, 36.20638710988981 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23338, "road_type": "2", "origarea": 0, "origlen": 0.007707182227590109, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205841853925165, 36.2055176999 ], [ -115.205835199980001, 36.205789679980001 ], [ -115.205820561460001, 36.206388029339998 ], [ -115.205804948809998, 36.207026196500003 ], [ -115.205801506829999, 36.207121800419998 ], [ -115.205770753660005, 36.208178309959997 ], [ -115.205756414700005, 36.208661422619997 ], [ -115.205754565410004, 36.208723729580001 ], [ -115.205752908509993, 36.208779554380001 ], [ -115.205745543462541, 36.209027699899998 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11525, "road_type": "6", "origarea": 0, "origlen": 0.00033363173157808514, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206499350420003, 36.206400742859998 ], [ -115.206503767640001, 36.206563261440003 ], [ -115.206506642069996, 36.206734290420002 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 6034, "road_type": "6", "origarea": 0, "origlen": 0.00058532703742760449, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206600061260005, 36.206735727640002 ], [ -115.206784025209998, 36.206724229899997 ], [ -115.206748094749997, 36.206571884749998 ], [ -115.206503767640001, 36.206563261440003 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 1553, "road_type": "6", "origarea": 0, "origlen": 9.3430244905981405e-05, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206600061260005, 36.206735727640002 ], [ -115.206506642069996, 36.206734290420002 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11568, "road_type": "6", "origarea": 0, "origlen": 0.00053389139947532878, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205801506829999, 36.207121800419998 ], [ -115.2057276, 36.207112837460897 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 18410, "road_type": "6", "origarea": 0, "origlen": 0.00024505463742583935, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206132067040002, 36.207150544779999 ], [ -115.20625135617, 36.207074372210002 ], [ -115.206354835889996, 36.207071497779999 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 6324, "road_type": "6", "origarea": 0, "origlen": 0.001380538531864999, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205801506829999, 36.207121800419998 ], [ -115.206132067040002, 36.207150544779999 ], [ -115.206175183590005, 36.20725258729 ], [ -115.206175546210005, 36.207327285989997 ], [ -115.206176620809998, 36.207548654260002 ], [ -115.206177518730001, 36.207998490329999 ], [ -115.20617790208, 36.208190535690001 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2500, "road_type": "6", "origarea": 0, "origlen": 0.00099431062208854473, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206177518730001, 36.207998490329999 ], [ -115.205973973029998, 36.207939577650002 ], [ -115.205963912499996, 36.20753715651 ], [ -115.20598115912, 36.207354629789997 ], [ -115.206123443729993, 36.20733882039 ], [ -115.206175546210005, 36.207327285989997 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 1738, "road_type": "6", "origarea": 0, "origlen": 0.00076899127208045702, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207009991730004, 36.208215521409997 ], [ -115.206935472089995, 36.208097671659999 ], [ -115.206780252510001, 36.208087611140002 ], [ -115.206511492679994, 36.208089048349997 ], [ -115.20645112951, 36.208091922789997 ], [ -115.206419510710006, 36.208129290469998 ], [ -115.206350385380006, 36.208195714959999 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16055, "road_type": "3", "origarea": 0, "origlen": 0.00019575483428484384, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205770753660005, 36.208178309959997 ], [ -115.2057276, 36.208174682017969 ] ] } },
20 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3743, "road_type": "5", "origarea": 0, "origlen": 0.00029677761129642881, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206511519670002, 36.2086499933 ], [ -115.206524427649995, 36.208353496530002 ] ] } },
21 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 20578, "road_type": "5", "origarea": 0, "origlen": 0.0010735084075971879, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206274351659999, 36.208785380640002 ], [ -115.205871391640002, 36.208762955259999 ], [ -115.205754565410004, 36.208723729580001 ], [ -115.205924540409995, 36.20869302266 ], [ -115.206298111159995, 36.208710142210002 ] ] } },
22 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22278, "road_type": "3", "origarea": 0, "origlen": 0.0094399419178437683, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205770753660005, 36.208178309959997 ], [ -115.20617790208, 36.208190535690001 ], [ -115.206350385380006, 36.208195714959999 ], [ -115.207009991730004, 36.208215521409997 ], [ -115.207209800699999, 36.208221521200002 ], [ -115.207698096070004, 36.208236183579999 ], [ -115.207823751190006, 36.208237932259998 ], [ -115.208181001430006, 36.208241932450001 ], [ -115.208220386639994, 36.208243452040001 ], [ -115.208310312519998, 36.208244703490003 ], [ -115.2092376, 36.208257608088807 ] ] } },
23 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 13431, "road_type": "5", "origarea": 0, "origlen": 0.0020856722657597651, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208220386639994, 36.208243452040001 ], [ -115.208228968590007, 36.208487876440003 ], [ -115.208398560350005, 36.208726454679997 ], [ -115.2092376, 36.208745567202669 ] ] } },
24 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20425, "road_type": "5", "origarea": 0, "origlen": 0.00038987734471466746, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207365918980003, 36.208693398660003 ], [ -115.207441372939996, 36.208571953709999 ], [ -115.207326395479996, 36.208504404449997 ], [ -115.207324958260003, 36.208390864199998 ] ] } },
25 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 15898, "road_type": "5", "origarea": 0, "origlen": 0.00039932887859343245, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207441372939996, 36.208571953709999 ], [ -115.207477303399997, 36.208520213850001 ], [ -115.20781361249, 36.208524525510001 ] ] } },
26 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19771, "road_type": "5", "origarea": 0, "origlen": 0.0036234200357969236, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208382978700769, 36.209027699899998 ], [ -115.208398560350005, 36.208726454679997 ] ] } },
27 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 8959, "road_type": "5", "origarea": 0, "origlen": 0.0018073215584214675, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207823751190006, 36.208237932259998 ], [ -115.207927152739998, 36.208430387710003 ], [ -115.20794008771, 36.208723580250002 ], [ -115.207928635501119, 36.209027699899998 ] ] } },
28 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22979, "road_type": "5", "origarea": 0, "origlen": 0.0040478589382302093, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -115.206308844899993, 36.208676152039999 ], [ -115.206298111159995, 36.208710142210002 ], [ -115.206274351659999, 36.208785380640002 ], [ -115.206273208643282, 36.209027699899998 ] ], [ [ -115.207456096589169, 36.209027699899998 ], [ -115.207456463740002, 36.208785380640002 ], [ -115.207409754140002, 36.208738671040003 ], [ -115.207365918980003, 36.208693398660003 ], [ -115.20725597178, 36.208656030989999 ], [ -115.207064103129994, 36.208656030989999 ], [ -115.206774503640005, 36.20864884489 ], [ -115.206511519670002, 36.2086499933 ], [ -115.206445380640005, 36.20865028211 ], [ -115.206308844899993, 36.208676152039999 ] ] ] } },
29 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3184, "road_type": "6", "origarea": 0, "origlen": 0.00037942874492637174, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206865596365589, 36.2055176999 ], [ -115.206868377009997, 36.205701222450003 ] ] } },
30 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "2", "road_id": 5412, "road_type": "6", "origarea": 0, "origlen": 0.006694104839982804, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205820561460001, 36.206388029339998 ], [ -115.206499350420003, 36.206400742859998 ], [ -115.207207524379996, 36.206414006750002 ], [ -115.2092376, 36.206437521137204 ] ] } },
31 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19440, "road_type": "6", "origarea": 0, "origlen": 0.0015171735448043888, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207493133300005, 36.206930930939997 ], [ -115.205976290530003, 36.206899251670002 ] ] } },
32 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22065, "road_type": "5", "origarea": 0, "origlen": 0.0038453508522283656, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.207780792796591 ], [ -115.208816901099993, 36.20777362394 ], [ -115.208257491690006, 36.20776361851 ], [ -115.20749103048, 36.207751030650002 ], [ -115.207493133300005, 36.206930930939997 ], [ -115.207493827779999, 36.20666008221 ], [ -115.206928772439994, 36.206640501080003 ] ] } },
33 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2759, "road_type": "5", "origarea": 0, "origlen": 0.0024455590705785195, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208816901099993, 36.20777362394 ], [ -115.208844925459999, 36.20667966333 ], [ -115.207493827779999, 36.20666008221 ] ] } },
34 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 12080, "road_type": "6", "origarea": 0, "origlen": 0.0024699845708800812, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207209800699999, 36.208221521200002 ], [ -115.207215572639996, 36.208007355079999 ], [ -115.20721716688, 36.207948200959997 ], [ -115.207244474030006, 36.207471044469997 ], [ -115.207240162380003, 36.207235340670003 ], [ -115.207176924769996, 36.207167791400003 ], [ -115.207092128889997, 36.207170665840003 ], [ -115.207028891280004, 36.207243963979998 ], [ -115.207036077370006, 36.207463858380002 ], [ -115.207004458569997, 36.208008564129997 ], [ -115.20680899688, 36.208020061870002 ], [ -115.206561795330003, 36.208014313 ] ] } },
35 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 14918, "road_type": "5", "origarea": 0, "origlen": 0.00050451290905131267, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208220386639994, 36.208243452040001 ], [ -115.208281268769994, 36.208156639679999 ], [ -115.208288262029996, 36.207848936280001 ], [ -115.208257491690006, 36.20776361851 ] ] } },
36 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 10454, "road_type": "5", "origarea": 0, "origlen": 0.00049815122561221083, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208220386639994, 36.208243452040001 ], [ -115.208197349659997, 36.208148247769998 ], [ -115.208202944269999, 36.20785173358 ], [ -115.208257491690006, 36.20776361851 ] ] } },
37 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19178, "road_type": "6", "origarea": 0, "origlen": 0.00021111753208355195, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207215572639996, 36.208007355079999 ], [ -115.207004458569997, 36.208008564129997 ] ] } }
38 | ]
39 | }
40 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_json/AOI_2_Vegas_Train/spacenetroads/AOI_2_Vegas_img999.geojson:
--------------------------------------------------------------------------------
1 | {
2 | "type": "FeatureCollection",
3 | "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
4 | "features": [
5 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 13350, "road_type": "6", "origarea": 0, "origlen": 0.0005869565527838942, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206059667169995, 36.211398063910003 ], [ -115.206056792729996, 36.211264402600001 ], [ -115.206185290990007, 36.211187775200003 ], [ -115.206213449529997, 36.21117098341 ], [ -115.206441014069995, 36.211024069339999 ] ] } },
6 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 8877, "road_type": "6", "origarea": 0, "origlen": 0.00034349517999032741, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206056792729996, 36.211264402600001 ], [ -115.2057276, 36.211264402600001 ] ] } },
7 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 13817, "road_type": "6", "origarea": 0, "origlen": 0.0032179726087205548, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206185290990007, 36.211187775200003 ], [ -115.2060539183, 36.211040196539997 ], [ -115.205844084419994, 36.211110620239999 ], [ -115.205737730270002, 36.211097685280002 ], [ -115.2057276, 36.211089363986368 ] ] } },
8 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 1190, "road_type": "6", "origarea": 0, "origlen": 0.00035635907110319163, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206258003299993, 36.211691256450003 ], [ -115.206151649139997, 36.211570530110002 ], [ -115.206107095380005, 36.211488608659998 ], [ -115.206059667169995, 36.211398063910003 ] ] } },
9 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 17857, "road_type": "6", "origarea": 0, "origlen": 0.0005675780404766303, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206059667169995, 36.211398063910003 ], [ -115.206051043860001, 36.21170419141 ], [ -115.206186142380005, 36.21188815536 ], [ -115.206213449529997, 36.211869471519996 ] ] } },
10 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 12437, "road_type": "6", "origarea": 0, "origlen": 0.00014786595121784427, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206395976259998, 36.211744433530001 ], [ -115.206258003299993, 36.211691256450003 ] ] } },
11 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 18327, "road_type": "6", "origarea": 0, "origlen": 0.00080758245186521868, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206697792110006, 36.212149729099998 ], [ -115.206395976259998, 36.211744433530001 ], [ -115.206651801120003, 36.211583465069999 ] ] } },
12 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 1661, "road_type": "6", "origarea": 0, "origlen": 0.0045463756337569064, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206048206516513, 36.212537699899997 ], [ -115.20661155901, 36.212198594519997 ], [ -115.206697792110006, 36.212149729099998 ], [ -115.206982361339996, 36.212379684029997 ], [ -115.207232437330006, 36.212235962199998 ], [ -115.206651801120003, 36.211583465069999 ] ] } },
13 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 6126, "road_type": "6", "origarea": 0, "origlen": 0.0016543633586534696, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20725571065023, 36.212537699899997 ], [ -115.207232437330006, 36.212235962199998 ] ] } },
14 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23338, "road_type": "2", "origarea": 0, "origlen": 0.007707182227590109, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205745543462541, 36.209027699899998 ], [ -115.205742121759997, 36.209142984990002 ], [ -115.205730221430002, 36.209543934609997 ], [ -115.205790578160006, 36.209860088939998 ], [ -115.206061426600002, 36.210338720919999 ] ] } },
15 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 16380, "road_type": "2", "origarea": 0, "origlen": 0.00064012180563798211, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.205742121759997, 36.209142984990002 ], [ -115.2057276, 36.209191971853379 ] ] } },
16 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 6961, "road_type": "5", "origarea": 0, "origlen": 0.00034529525499473368, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206373519720003, 36.209614655609997 ], [ -115.206346212580002, 36.209958869399998 ] ] } },
17 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 23288, "road_type": "2", "origarea": 0, "origlen": 0.057172473190859177, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2057276, 36.210243079583051 ], [ -115.206441014069995, 36.211024069339999 ], [ -115.20709838997, 36.211743712919997 ], [ -115.207823676673712, 36.212537699899997 ] ] } },
18 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22813, "road_type": "2", "origarea": 0, "origlen": 0.057183527289992216, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208072157129422, 36.212537699899997 ], [ -115.207966676240005, 36.212421543010002 ], [ -115.207546834799999, 36.211961467409999 ], [ -115.207450409269995, 36.211855492289999 ], [ -115.207405750969997, 36.211806411209999 ], [ -115.206556320239997, 36.210879029940003 ], [ -115.206061426600002, 36.210338720919999 ], [ -115.2057276, 36.209974259726486 ] ] } },
19 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19771, "road_type": "5", "origarea": 0, "origlen": 0.0036234200357969236, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.2092376, 36.209710059004472 ], [ -115.209134416140003, 36.209712386459998 ], [ -115.208395685919996, 36.209675018779997 ], [ -115.208378575899999, 36.20964792793 ], [ -115.208361192680002, 36.209620404490003 ], [ -115.208364067109997, 36.20939332399 ], [ -115.208382978700769, 36.209027699899998 ] ] } },
20 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 8959, "road_type": "5", "origarea": 0, "origlen": 0.0018073215584214675, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207928635501119, 36.209027699899998 ], [ -115.207927152739998, 36.209067075429999 ], [ -115.207915654990003, 36.209547106350001 ], [ -115.207908468900001, 36.210018513960001 ] ] } },
21 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 22979, "road_type": "5", "origarea": 0, "origlen": 0.0040478589382302093, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206273208643282, 36.209027699899998 ], [ -115.206272914440007, 36.209090070919999 ], [ -115.206291598280004, 36.209479557089999 ], [ -115.206373519720003, 36.209614655609997 ], [ -115.206521553209996, 36.20965777216 ], [ -115.206732824309995, 36.209675018779997 ], [ -115.207061947309995, 36.209677893219997 ], [ -115.207303399980006, 36.20965920938 ], [ -115.207389633079998, 36.209626871970002 ], [ -115.207416940230004, 36.209583036810002 ], [ -115.207447121819996, 36.209519799200002 ], [ -115.207455745130005, 36.209259662679997 ], [ -115.207456096589169, 36.209027699899998 ] ] } },
22 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 8191, "road_type": "5", "origarea": 0, "origlen": 0.00031958040464690043, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208378575899999, 36.20964792793 ], [ -115.208228968590007, 36.209690828180001 ], [ -115.208065125700003, 36.209696577060001 ] ] } },
23 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 4509, "road_type": "5", "origarea": 0, "origlen": 0.00029084424976142368, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208378575899999, 36.20964792793 ], [ -115.20832382499999, 36.209739693609997 ], [ -115.208326699439993, 36.20992365755 ] ] } },
24 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 10764, "road_type": "5", "origarea": 0, "origlen": 0.00069521086173955767, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207389633079998, 36.209626871970002 ], [ -115.207480177839997, 36.209688672360002 ], [ -115.207583727080006, 36.209694655200003 ], [ -115.207803551959998, 36.209707356190002 ], [ -115.207796365869996, 36.20996892993 ] ] } },
25 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 11416, "road_type": "5", "origarea": 0, "origlen": 0.00052459258148612601, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207796365869996, 36.20996892993 ], [ -115.207714444429996, 36.210000548730001 ], [ -115.207579345900001, 36.209996237079999 ], [ -115.207583727080006, 36.209694655200003 ] ] } },
26 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 19849, "road_type": "6", "origarea": 0, "origlen": 0.0015158635644920973, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.206556320239997, 36.210879029940003 ], [ -115.206864478729997, 36.210722605839997 ], [ -115.206902416069994, 36.210703348499997 ], [ -115.207204231920002, 36.210519384549997 ], [ -115.207299088330004, 36.210571124410002 ], [ -115.207425563539999, 36.21077233498 ], [ -115.207051886779993, 36.210982168850002 ] ] } },
27 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 2980, "road_type": "6", "origarea": 0, "origlen": 0.00032014798666545914, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207051886779993, 36.210982168850002 ], [ -115.206864478729997, 36.210722605839997 ] ] } },
28 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 17935, "road_type": "5", "origarea": 0, "origlen": 0.0063625393226948972, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "MultiLineString", "coordinates": [ [ [ -115.208573900990004, 36.211684250010002 ], [ -115.208588273169994, 36.212014810230002 ], [ -115.20898207099999, 36.212009061350003 ], [ -115.2092376, 36.212020588974262 ] ], [ [ -115.2092376, 36.210145118105586 ], [ -115.208976322119995, 36.21013205421 ], [ -115.208458923519999, 36.21013205421 ], [ -115.207944399360002, 36.210140677520002 ], [ -115.207783430909998, 36.210221161749999 ], [ -115.207677076750002, 36.210324641470002 ], [ -115.207559224850002, 36.210499982100004 ], [ -115.207679951190002, 36.210637955060001 ], [ -115.207817924150007, 36.210750058089999 ] ] ] } },
29 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3083, "road_type": "5", "origarea": 0, "origlen": 0.0031708581412994768, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20793721327, 36.211700778020003 ], [ -115.207886910629995, 36.211623168229998 ], [ -115.207862477920003, 36.211461481169998 ], [ -115.207685700059997, 36.210957017529999 ], [ -115.207691448930007, 36.210885156620002 ], [ -115.207817924150007, 36.210750058089999 ], [ -115.207881161749995, 36.210764430280001 ], [ -115.208016260280004, 36.210819044570002 ], [ -115.208211721970002, 36.210853537810003 ], [ -115.20855952881, 36.210833416760003 ], [ -115.208639448110006, 36.210821121480002 ], [ -115.208858470219994, 36.21078742577 ], [ -115.20909417403, 36.210775928019999 ], [ -115.2092376, 36.210790093552617 ] ] } },
30 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "2", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 1265, "road_type": "5", "origarea": 0, "origlen": 0.0015068870318277173, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.20793721327, 36.211700778020003 ], [ -115.208300829509994, 36.211687124450002 ], [ -115.208573900990004, 36.211684250010002 ], [ -115.208599770920003, 36.211448546200003 ], [ -115.208645761910006, 36.211253084509998 ], [ -115.208639448110006, 36.210821121480002 ] ] } },
31 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 10190, "road_type": "5", "origarea": 0, "origlen": 0.000494477407104203, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207450409269995, 36.211855492289999 ], [ -115.207886910629995, 36.211623168229998 ] ] } },
32 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5743, "road_type": "5", "origarea": 0, "origlen": 0.00047167595612748948, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207546834799999, 36.211961467409999 ], [ -115.207827984679994, 36.211749643440001 ], [ -115.20793721327, 36.211700778020003 ] ] } },
33 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 7979, "road_type": "5", "origarea": 0, "origlen": 0.00051074599234496375, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207546834799999, 36.211961467409999 ], [ -115.207411307320001, 36.211937195620003 ], [ -115.207295219220001, 36.211829499419999 ], [ -115.20709838997, 36.211743712919997 ] ] } },
34 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 10884, "road_type": "6", "origarea": 0, "origlen": 0.00086678714037977296, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.208769247822971, 36.212537699899997 ], [ -115.208567433509998, 36.212387049770001 ], [ -115.208484074840001, 36.2122950678 ], [ -115.208285738710003, 36.212277821180002 ], [ -115.208228249979996, 36.2122950678 ] ] } },
35 | { "type": "Feature", "properties": { "bridge_typ": "2", "heading": "0", "lane_numbe": "1", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 4114, "road_type": "6", "origarea": 0, "origlen": 0.0012093760194218514, "partialDec": 1, "truncated": 0 }, "geometry": { "type": "LineString", "coordinates": [ [ -115.207966676240005, 36.212421543010002 ], [ -115.208228249979996, 36.2122950678 ], [ -115.208328855260007, 36.212404296389998 ], [ -115.208456355964259, 36.212537699899997 ] ] } }
36 | ]
37 | }
38 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_pkl/ground_truth_randomized/AOI_2_Vegas_img0.geojson:
--------------------------------------------------------------------------------
1 | {"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "urn:ogc:def:crs:OGC:1.3:CRS84"}}, "features": [{"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5508, "road_type": "6", "origarea": 0, "origlen": 0.001291492260434812, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16787859711, 36.23856585725], [-115.16787983205, 36.23727436558]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 1033, "road_type": "6", "origarea": 0, "origlen": 0.0013406269983547775, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16764365753, 36.23861469356], [-115.16764740524, 36.2372740718]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13188, "road_type": "6", "origarea": 0, "origlen": 0.001365930639805964, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16723113863, 36.23863998129], [-115.16723889985, 36.237274072700004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 17696, "road_type": "6", "origarea": 0, "origlen": 0.0013698783362461084, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16745996601, 36.238643869120004], [-115.16744502643, 36.23727407225]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5030, "road_type": "6", "origarea": 0, "origlen": 0.0008627885023188459, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17052413656, 36.23784697546], [-115.17052006049, 36.23818847794], [-115.17034391595, 36.23818696653], [-115.17036265473, 36.23784236497]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 17210, "road_type": "6", "origarea": 0, "origlen": 0.00015780425051427935, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17034391595, 36.23818696653], [-115.17036265473, 36.23821719467], [-115.17036078918, 36.2383394195]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 18462, "road_type": "6", "origarea": 0, "origlen": 0.0002635383374282831, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17054067315, 36.23860260237], [-115.17054253649, 36.23833907062]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 22930, "road_type": "6", "origarea": 0, "origlen": 0.004275447345186638, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23833892845074], [-115.17054253649, 36.23833907062], [-115.17036078918, 36.2383394195], [-115.17032142458, 36.23833949506], [-115.17014529442, 36.238339833160005], [-115.1700965694, 36.23833992669], [-115.16991856535999, 36.23834026838], [-115.16970118781, 36.23834068565], [-115.16956063436, 36.23834095545], [-115.16946975179, 36.2383411299], [-115.16933083207999, 36.23838929994], [-115.16928292669, 36.238405911], [-115.16906874186, 36.23848017895], [-115.16886702848, 36.23847509475], [-115.16883871371999, 36.238474381070006], [-115.16870895726, 36.238471110540004], [-115.16867466018999, 36.238472502380006], [-115.16845692065, 36.23846506494], [-115.16825866933, 36.23848938404], [-115.16811306401, 36.23849529296], [-115.16805267046, 36.23851346879], [-115.16787859711, 36.23856585725], [-115.16764365753, 36.23861469356], [-115.16761086466, 36.238646432930004], [-115.16745996601, 36.238643869120004], [-115.16742861991, 36.238643336550005], [-115.16723113863, 36.23863998129], [-115.1671066, 36.23863786535267]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13946, "road_type": "6", "origarea": 0, "origlen": 0.00044339609846511533, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16870802032, 36.238655501320004], [-115.16826466695, 36.23864934588]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 12420, "road_type": "6", "origarea": 0, "origlen": 0.0003149839271086584, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805577753, 36.23866955321], [-115.16775869832, 36.23877423758]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 21304, "road_type": "6", "origarea": 0, "origlen": 0.0008800450367042517, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17032142458, 36.23833949506], [-115.17032340408, 36.23861019454], [-115.17032450328, 36.23876051103], [-115.17032705104, 36.2391089194], [-115.17043760985, 36.23911194218]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 2553, "road_type": "6", "origarea": 0, "origlen": 0.000780091066167836, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16955313937, 36.239121010510004], [-115.16956063436, 36.23834095545]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16145, "road_type": "6", "origarea": 0, "origlen": 0.0007684271504452178, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17009674723, 36.23873295624], [-115.17032450328, 36.23876051103], [-115.1706166, 36.238763632470196]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5112, "road_type": "6", "origarea": 0, "origlen": 0.001305168823400494, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16933083207999, 36.23838929994], [-115.16933951726, 36.239121010510004], [-115.16955313937, 36.239121010510004], [-115.16991292397, 36.239121010510004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3051, "road_type": "6", "origarea": 0, "origlen": 0.00030164838887360835, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16775869832, 36.23877423758], [-115.16784433014, 36.238793501260005], [-115.16805818675, 36.23879058176]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 14026, "road_type": "6", "origarea": 0, "origlen": 0.0006129963656151067, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16828163699, 36.239101949980004], [-115.16826466695, 36.23864934588], [-115.16825866933, 36.23848938404]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 22420, "road_type": "6", "origarea": 0, "origlen": 0.0012124029364645244, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805267046, 36.23851346879], [-115.16805577753, 36.23866955321], [-115.16805818675, 36.23879058176], [-115.16806434318, 36.239099851060004], [-115.16828163699, 36.239101949980004], [-115.16869021848, 36.23910589662]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 21939, "road_type": "6", "origarea": 0, "origlen": 0.0010082309632116113, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1700970256, 36.239348157550005], [-115.17009674723, 36.23873295624], [-115.1700965694, 36.23833992669]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 23186, "road_type": "6", "origarea": 0, "origlen": 0.0012406439557037167, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23860561716786], [-115.17054067315, 36.23860260237], [-115.17032340408, 36.23861019454]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16924, "road_type": "6", "origarea": 0, "origlen": 0.0015882158240583062, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16742861991, 36.238643336550005], [-115.16742019708, 36.23912649903], [-115.1671066, 36.23912094863925]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9558, "road_type": "6", "origarea": 0, "origlen": 0.0009226036384111043, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.1688682369, 36.2392570354], [-115.16887198466, 36.238525520980005], [-115.16886702848, 36.23847509475], [-115.16883871371999, 36.238474381070006]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 7014, "road_type": "6", "origarea": 0, "origlen": 0.0009114405892145717, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.16877829075, 36.23926005818], [-115.16879328178, 36.23855574899], [-115.16883871371999, 36.238474381070006]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11468, "road_type": "6", "origarea": 0, "origlen": 0.0007221691991154832, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16760718999, 36.239368592780004], [-115.16761086466, 36.238646432930004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 23285, "road_type": "2", "origarea": 0, "origlen": 0.0338087644919232, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 45, "speed_m/s": 20.1168}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23936036332363], [-115.1700970256, 36.239348157550005], [-115.16882886545, 36.239361979710004], [-115.16760718999, 36.239368592780004], [-115.16755213665, 36.239368890790004], [-115.1671066, 36.23935710883922]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20520, "road_type": "6", "origarea": 0, "origlen": 0.00011540388200353422, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.16883094189, 36.23947736491]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 21419, "road_type": "2", "origarea": 0, "origlen": 0.03379707161960037, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 45, "speed_m/s": 20.1168}, "geometry": {"type": "LineString", "coordinates": [[-115.1671066, 36.23947325627269], [-115.16883094189, 36.23947736491], [-115.1706166, 36.239481619644515]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 19314, "road_type": "6", "origarea": 0, "origlen": 0.004248090590008134, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.237348226725075], [-115.17056309554, 36.23734636961], [-115.17034756454, 36.23734911809], [-115.17013780188, 36.237351793020004], [-115.1700693928, 36.237352665390006], [-115.16991519617, 36.23733913278], [-115.16970700985, 36.23732086191], [-115.16948626287, 36.237301488700005], [-115.16934607583, 36.23728918559], [-115.16927209274, 36.23728843781], [-115.16908101066, 36.237286506450005], [-115.16887292545, 36.237284403240004], [-115.16867989935, 36.237282452230005], [-115.16847565521999, 36.23728038784], [-115.16828822639, 36.23727849341], [-115.1680672374, 36.23727625977], [-115.16787983205, 36.23727436558], [-115.16785072107, 36.23727407134], [-115.16764740524, 36.2372740718], [-115.16744502643, 36.23727407225], [-115.16723889985, 36.237274072700004], [-115.1671066, 36.23727407299418]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9476, "road_type": "6", "origarea": 0, "origlen": 0.0012025855766966036, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23784841062], [-115.17057440296, 36.23784841062], [-115.17056309554, 36.23734636961]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11946, "road_type": "6", "origarea": 0, "origlen": 0.0010402550636490428, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16946975179, 36.2383411299], [-115.16948005812, 36.23825195701], [-115.16948626287, 36.237301488700005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16429, "road_type": "6", "origarea": 0, "origlen": 0.0010198403584978884, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16970118781, 36.23834068565], [-115.16970700985, 36.23732086191]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 20951, "road_type": "6", "origarea": 0, "origlen": 0.0010011412692657881, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16991856535999, 36.23834026838], [-115.16991519617, 36.23733913278]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 554, "road_type": "6", "origarea": 0, "origlen": 0.00098806854843625, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17013780188, 36.237351793020004], [-115.17014529442, 36.238339833160005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 7490, "road_type": "6", "origarea": 0, "origlen": 0.001117585196116217, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16928292669, 36.238405911], [-115.16927393152, 36.23803733709], [-115.16927209274, 36.23728843781]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 10711, "road_type": "6", "origarea": 0, "origlen": 0.0011848252256666085, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16845692065, 36.23846506494], [-115.16847565521999, 36.23728038784]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 15187, "road_type": "6", "origarea": 0, "origlen": 0.001190061682567157, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16867466018999, 36.238472502380006], [-115.16867989935, 36.237282452230005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 19719, "road_type": "6", "origarea": 0, "origlen": 0.0011907061124536073, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16886702848, 36.23847509475], [-115.16887292545, 36.237284403240004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 3026, "road_type": "6", "origarea": 0, "origlen": 0.0011937355488949356, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16906874186, 36.23848017895], [-115.16908101066, 36.237286506450005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9954, "road_type": "6", "origarea": 0, "origlen": 0.0012372947728498268, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805267046, 36.23851346879], [-115.1680672374, 36.23727625977]]}}]}
2 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_pkl/proposal/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/gt_json_prop_pkl/proposal/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_wkt/ground_truth_randomized/AOI_2_Vegas_img0.geojson:
--------------------------------------------------------------------------------
1 | {"type": "FeatureCollection", "crs": {"type": "name", "properties": {"name": "urn:ogc:def:crs:OGC:1.3:CRS84"}}, "features": [{"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5508, "road_type": "6", "origarea": 0, "origlen": 0.001291492260434812, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16787859711, 36.23856585725], [-115.16787983205, 36.23727436558]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 1033, "road_type": "6", "origarea": 0, "origlen": 0.0013406269983547775, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16764365753, 36.23861469356], [-115.16764740524, 36.2372740718]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13188, "road_type": "6", "origarea": 0, "origlen": 0.001365930639805964, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16723113863, 36.23863998129], [-115.16723889985, 36.237274072700004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 17696, "road_type": "6", "origarea": 0, "origlen": 0.0013698783362461084, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16745996601, 36.238643869120004], [-115.16744502643, 36.23727407225]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5030, "road_type": "6", "origarea": 0, "origlen": 0.0008627885023188459, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17052413656, 36.23784697546], [-115.17052006049, 36.23818847794], [-115.17034391595, 36.23818696653], [-115.17036265473, 36.23784236497]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 17210, "road_type": "6", "origarea": 0, "origlen": 0.00015780425051427935, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17034391595, 36.23818696653], [-115.17036265473, 36.23821719467], [-115.17036078918, 36.2383394195]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 18462, "road_type": "6", "origarea": 0, "origlen": 0.0002635383374282831, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17054067315, 36.23860260237], [-115.17054253649, 36.23833907062]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 22930, "road_type": "6", "origarea": 0, "origlen": 0.004275447345186638, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23833892845074], [-115.17054253649, 36.23833907062], [-115.17036078918, 36.2383394195], [-115.17032142458, 36.23833949506], [-115.17014529442, 36.238339833160005], [-115.1700965694, 36.23833992669], [-115.16991856535999, 36.23834026838], [-115.16970118781, 36.23834068565], [-115.16956063436, 36.23834095545], [-115.16946975179, 36.2383411299], [-115.16933083207999, 36.23838929994], [-115.16928292669, 36.238405911], [-115.16906874186, 36.23848017895], [-115.16886702848, 36.23847509475], [-115.16883871371999, 36.238474381070006], [-115.16870895726, 36.238471110540004], [-115.16867466018999, 36.238472502380006], [-115.16845692065, 36.23846506494], [-115.16825866933, 36.23848938404], [-115.16811306401, 36.23849529296], [-115.16805267046, 36.23851346879], [-115.16787859711, 36.23856585725], [-115.16764365753, 36.23861469356], [-115.16761086466, 36.238646432930004], [-115.16745996601, 36.238643869120004], [-115.16742861991, 36.238643336550005], [-115.16723113863, 36.23863998129], [-115.1671066, 36.23863786535267]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 13946, "road_type": "6", "origarea": 0, "origlen": 0.00044339609846511533, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16870802032, 36.238655501320004], [-115.16826466695, 36.23864934588]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 12420, "road_type": "6", "origarea": 0, "origlen": 0.0003149839271086584, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805577753, 36.23866955321], [-115.16775869832, 36.23877423758]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 21304, "road_type": "6", "origarea": 0, "origlen": 0.0008800450367042517, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17032142458, 36.23833949506], [-115.17032340408, 36.23861019454], [-115.17032450328, 36.23876051103], [-115.17032705104, 36.2391089194], [-115.17043760985, 36.23911194218]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 2553, "road_type": "6", "origarea": 0, "origlen": 0.000780091066167836, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16955313937, 36.239121010510004], [-115.16956063436, 36.23834095545]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16145, "road_type": "6", "origarea": 0, "origlen": 0.0007684271504452178, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17009674723, 36.23873295624], [-115.17032450328, 36.23876051103], [-115.1706166, 36.238763632470196]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 5112, "road_type": "6", "origarea": 0, "origlen": 0.001305168823400494, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16933083207999, 36.23838929994], [-115.16933951726, 36.239121010510004], [-115.16955313937, 36.239121010510004], [-115.16991292397, 36.239121010510004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 3051, "road_type": "6", "origarea": 0, "origlen": 0.00030164838887360835, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16775869832, 36.23877423758], [-115.16784433014, 36.238793501260005], [-115.16805818675, 36.23879058176]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 14026, "road_type": "6", "origarea": 0, "origlen": 0.0006129963656151067, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16828163699, 36.239101949980004], [-115.16826466695, 36.23864934588], [-115.16825866933, 36.23848938404]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 22420, "road_type": "6", "origarea": 0, "origlen": 0.0012124029364645244, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805267046, 36.23851346879], [-115.16805577753, 36.23866955321], [-115.16805818675, 36.23879058176], [-115.16806434318, 36.239099851060004], [-115.16828163699, 36.239101949980004], [-115.16869021848, 36.23910589662]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 21939, "road_type": "6", "origarea": 0, "origlen": 0.0010082309632116113, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1700970256, 36.239348157550005], [-115.17009674723, 36.23873295624], [-115.1700965694, 36.23833992669]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 23186, "road_type": "6", "origarea": 0, "origlen": 0.0012406439557037167, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23860561716786], [-115.17054067315, 36.23860260237], [-115.17032340408, 36.23861019454]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16924, "road_type": "6", "origarea": 0, "origlen": 0.0015882158240583062, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16742861991, 36.238643336550005], [-115.16742019708, 36.23912649903], [-115.1671066, 36.23912094863925]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9558, "road_type": "6", "origarea": 0, "origlen": 0.0009226036384111043, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.1688682369, 36.2392570354], [-115.16887198466, 36.238525520980005], [-115.16886702848, 36.23847509475], [-115.16883871371999, 36.238474381070006]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 7014, "road_type": "6", "origarea": 0, "origlen": 0.0009114405892145717, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.16877829075, 36.23926005818], [-115.16879328178, 36.23855574899], [-115.16883871371999, 36.238474381070006]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11468, "road_type": "6", "origarea": 0, "origlen": 0.0007221691991154832, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16760718999, 36.239368592780004], [-115.16761086466, 36.238646432930004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 23285, "road_type": "2", "origarea": 0, "origlen": 0.0338087644919232, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 45, "speed_m/s": 20.1168}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23936036332363], [-115.1700970256, 36.239348157550005], [-115.16882886545, 36.239361979710004], [-115.16760718999, 36.239368592780004], [-115.16755213665, 36.239368890790004], [-115.1671066, 36.23935710883922]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "2", "one_way_ty": "2", "paved": "1", "road_id": 20520, "road_type": "6", "origarea": 0, "origlen": 0.00011540388200353422, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16882886545, 36.239361979710004], [-115.16883094189, 36.23947736491]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "3", "one_way_ty": "2", "paved": "1", "road_id": 21419, "road_type": "2", "origarea": 0, "origlen": 0.03379707161960037, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 45, "speed_m/s": 20.1168}, "geometry": {"type": "LineString", "coordinates": [[-115.1671066, 36.23947325627269], [-115.16883094189, 36.23947736491], [-115.1706166, 36.239481619644515]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 19314, "road_type": "6", "origarea": 0, "origlen": 0.004248090590008134, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.237348226725075], [-115.17056309554, 36.23734636961], [-115.17034756454, 36.23734911809], [-115.17013780188, 36.237351793020004], [-115.1700693928, 36.237352665390006], [-115.16991519617, 36.23733913278], [-115.16970700985, 36.23732086191], [-115.16948626287, 36.237301488700005], [-115.16934607583, 36.23728918559], [-115.16927209274, 36.23728843781], [-115.16908101066, 36.237286506450005], [-115.16887292545, 36.237284403240004], [-115.16867989935, 36.237282452230005], [-115.16847565521999, 36.23728038784], [-115.16828822639, 36.23727849341], [-115.1680672374, 36.23727625977], [-115.16787983205, 36.23727436558], [-115.16785072107, 36.23727407134], [-115.16764740524, 36.2372740718], [-115.16744502643, 36.23727407225], [-115.16723889985, 36.237274072700004], [-115.1671066, 36.23727407299418]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9476, "road_type": "6", "origarea": 0, "origlen": 0.0012025855766966036, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.1706166, 36.23784841062], [-115.17057440296, 36.23784841062], [-115.17056309554, 36.23734636961]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 11946, "road_type": "6", "origarea": 0, "origlen": 0.0010402550636490428, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16946975179, 36.2383411299], [-115.16948005812, 36.23825195701], [-115.16948626287, 36.237301488700005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 16429, "road_type": "6", "origarea": 0, "origlen": 0.0010198403584978884, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16970118781, 36.23834068565], [-115.16970700985, 36.23732086191]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 20951, "road_type": "6", "origarea": 0, "origlen": 0.0010011412692657881, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16991856535999, 36.23834026838], [-115.16991519617, 36.23733913278]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 554, "road_type": "6", "origarea": 0, "origlen": 0.00098806854843625, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.17013780188, 36.237351793020004], [-115.17014529442, 36.238339833160005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 7490, "road_type": "6", "origarea": 0, "origlen": 0.001117585196116217, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16928292669, 36.238405911], [-115.16927393152, 36.23803733709], [-115.16927209274, 36.23728843781]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 10711, "road_type": "6", "origarea": 0, "origlen": 0.0011848252256666085, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16845692065, 36.23846506494], [-115.16847565521999, 36.23728038784]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 15187, "road_type": "6", "origarea": 0, "origlen": 0.001190061682567157, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16867466018999, 36.238472502380006], [-115.16867989935, 36.237282452230005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 19719, "road_type": "6", "origarea": 0, "origlen": 0.0011907061124536073, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16886702848, 36.23847509475], [-115.16887292545, 36.237284403240004]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 3026, "road_type": "6", "origarea": 0, "origlen": 0.0011937355488949356, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16906874186, 36.23848017895], [-115.16908101066, 36.237286506450005]]}}, {"type": "Feature", "properties": {"heading": "0", "lane_number": "1", "one_way_ty": "2", "paved": "1", "road_id": 9954, "road_type": "6", "origarea": 0, "origlen": 0.0012372947728498268, "partialDec": 1, "truncated": 0, "bridge_type": "2", "speed_mph": 20, "speed_m/s": 8.9408}, "geometry": {"type": "LineString", "coordinates": [[-115.16805267046, 36.23851346879], [-115.1680672374, 36.23727625977]]}}]}
2 |
--------------------------------------------------------------------------------
/apls/data/gt_json_prop_wkt/proposal/sn3_sample_submission_albu.csv:
--------------------------------------------------------------------------------
1 | ImageId,WKT_Pix
2 | AOI_2_Vegas_img0,"LINESTRING (3.0 405.0, 125.0 409.0, 658.0 409.0, 707.0 408.0, 737.0 413.0, 1043.0 409.0, 1296.0 410.0)"
3 | AOI_2_Vegas_img0,"LINESTRING (658.0 409.0, 657.0 470.0)"
4 | AOI_2_Vegas_img0,"LINESTRING (2.0 462.0, 189.0 470.0)"
5 | AOI_2_Vegas_img0,"LINESTRING (1296.0 468.0, 1113.0 469.0)"
6 | AOI_2_Vegas_img0,"LINESTRING (189.0 470.0, 335.0 465.0, 657.0 470.0)"
7 | AOI_2_Vegas_img0,"LINESTRING (657.0 470.0, 661.0 476.0)"
8 | AOI_2_Vegas_img0,"LINESTRING (1113.0 469.0, 728.0 466.0, 673.0 468.0, 661.0 476.0)"
9 | AOI_2_Vegas_img0,"LINESTRING (1113.0 469.0, 1116.0 612.0, 1113.0 723.0)"
10 | AOI_2_Vegas_img0,"LINESTRING (189.0 470.0, 192.0 594.0, 187.0 687.0)"
11 | AOI_2_Vegas_img0,"LINESTRING (661.0 476.0, 661.0 496.0, 650.0 507.0, 648.0 533.0, 648.0 782.0)"
12 | AOI_2_Vegas_img0,"LINESTRING (661.0 496.0, 674.0 512.0, 675.0 555.0)"
13 | AOI_2_Vegas_img0,"LINESTRING (520.0 532.0, 584.0 533.0, 595.0 536.0, 606.0 544.0)"
14 | AOI_2_Vegas_img0,"LINESTRING (480.0 539.0, 467.0 549.0)"
15 | AOI_2_Vegas_img0,"LINESTRING (252.0 544.0, 335.0 542.0, 393.0 549.0, 467.0 549.0)"
16 | AOI_2_Vegas_img0,"LINESTRING (393.0 549.0, 391.0 733.0, 397.0 832.0)"
17 | AOI_2_Vegas_img0,"LINESTRING (467.0 549.0, 470.0 679.0)"
18 | AOI_2_Vegas_img0,"LINESTRING (99.0 550.0, 103.0 572.0, 104.0 682.0)"
19 | AOI_2_Vegas_img0,"LINESTRING (1297.0 552.0, 1191.0 551.0, 1186.0 556.0, 1181.0 723.0)"
20 | AOI_2_Vegas_img0,"LINESTRING (866.0 553.0, 806.0 552.0, 723.0 557.0, 675.0 555.0)"
21 | AOI_2_Vegas_img0,"LINESTRING (866.0 553.0, 921.0 552.0, 935.0 554.0, 943.0 559.0, 946.0 567.0, 946.0 669.0)"
22 | AOI_2_Vegas_img0,"LINESTRING (866.0 553.0, 863.0 719.0)"
23 | AOI_2_Vegas_img0,"LINESTRING (675.0 555.0, 673.0 780.0)"
24 | AOI_2_Vegas_img0,"LINESTRING (946.0 669.0, 1020.0 665.0, 1027.0 667.0, 1033.0 676.0, 1029.0 687.0, 1015.0 694.0, 979.0 705.0, 946.0 707.0)"
25 | AOI_2_Vegas_img0,"LINESTRING (946.0 669.0, 946.0 707.0)"
26 | AOI_2_Vegas_img0,"LINESTRING (470.0 679.0, 582.0 681.0)"
27 | AOI_2_Vegas_img0,"LINESTRING (470.0 679.0, 469.0 752.0, 480.0 810.0)"
28 | AOI_2_Vegas_img0,"LINESTRING (2.0 681.0, 104.0 682.0, 107.0 686.0, 187.0 687.0)"
29 | AOI_2_Vegas_img0,"LINESTRING (107.0 686.0, 103.0 737.0)"
30 | AOI_2_Vegas_img0,"LINESTRING (187.0 687.0, 187.0 834.0)"
31 | AOI_2_Vegas_img0,"LINESTRING (946.0 707.0, 947.0 765.0)"
32 | AOI_2_Vegas_img0,"LINESTRING (703.0 718.0, 863.0 719.0, 866.0 783.0)"
33 | AOI_2_Vegas_img0,"LINESTRING (1113.0 723.0, 1103.0 730.0)"
34 | AOI_2_Vegas_img0,"LINESTRING (1113.0 723.0, 1175.0 726.0)"
35 | AOI_2_Vegas_img0,"LINESTRING (1181.0 723.0, 1175.0 726.0)"
36 | AOI_2_Vegas_img0,"LINESTRING (1181.0 723.0, 1251.0 726.0)"
37 | AOI_2_Vegas_img0,"LINESTRING (1297.0 723.0, 1251.0 726.0)"
38 | AOI_2_Vegas_img0,"LINESTRING (1175.0 726.0, 1172.0 764.0, 1171.0 1231.0)"
39 | AOI_2_Vegas_img0,"LINESTRING (1251.0 726.0, 1246.0 1231.0)"
40 | AOI_2_Vegas_img0,"LINESTRING (1103.0 730.0, 1074.0 732.0, 1019.0 747.0, 1008.0 756.0)"
41 | AOI_2_Vegas_img0,"LINESTRING (1103.0 730.0, 1098.0 1022.0, 1099.0 1165.0, 1104.0 1229.0)"
42 | AOI_2_Vegas_img0,"LINESTRING (2.0 736.0, 24.0 737.0)"
43 | AOI_2_Vegas_img0,"LINESTRING (24.0 737.0, 103.0 737.0)"
44 | AOI_2_Vegas_img0,"LINESTRING (103.0 737.0, 102.0 834.0)"
45 | AOI_2_Vegas_img0,"LINESTRING (24.0 737.0, 24.0 833.0)"
46 | AOI_2_Vegas_img0,"LINESTRING (1008.0 756.0, 947.0 765.0)"
47 | AOI_2_Vegas_img0,"LINESTRING (1008.0 756.0, 1013.0 798.0, 1010.0 1233.0)"
48 | AOI_2_Vegas_img0,"LINESTRING (947.0 765.0, 941.0 778.0, 866.0 783.0)"
49 | AOI_2_Vegas_img0,"LINESTRING (941.0 778.0, 940.0 1234.0)"
50 | AOI_2_Vegas_img0,"LINESTRING (648.0 782.0, 673.0 780.0)"
51 | AOI_2_Vegas_img0,"LINESTRING (648.0 782.0, 592.0 785.0, 566.0 791.0)"
52 | AOI_2_Vegas_img0,"LINESTRING (648.0 782.0, 642.0 1055.0, 643.0 1230.0)"
53 | AOI_2_Vegas_img0,"LINESTRING (673.0 780.0, 717.0 785.0)"
54 | AOI_2_Vegas_img0,"LINESTRING (866.0 783.0, 795.0 787.0)"
55 | AOI_2_Vegas_img0,"LINESTRING (866.0 783.0, 862.0 1235.0)"
56 | AOI_2_Vegas_img0,"LINESTRING (717.0 785.0, 795.0 787.0)"
57 | AOI_2_Vegas_img0,"LINESTRING (717.0 785.0, 715.0 1232.0)"
58 | AOI_2_Vegas_img0,"LINESTRING (795.0 787.0, 790.0 1234.0)"
59 | AOI_2_Vegas_img0,"LINESTRING (566.0 791.0, 539.0 793.0, 491.0 806.0, 484.0 811.0)"
60 | AOI_2_Vegas_img0,"LINESTRING (566.0 791.0, 567.0 1230.0)"
61 | AOI_2_Vegas_img0,"LINESTRING (480.0 810.0, 474.0 816.0, 412.0 835.0)"
62 | AOI_2_Vegas_img0,"LINESTRING (480.0 810.0, 484.0 811.0, 489.0 820.0, 495.0 871.0, 492.0 1225.0)"
63 | AOI_2_Vegas_img0,"LINESTRING (397.0 832.0, 337.0 839.0)"
64 | AOI_2_Vegas_img0,"LINESTRING (397.0 832.0, 412.0 835.0)"
65 | AOI_2_Vegas_img0,"LINESTRING (24.0 833.0, 2.0 836.0)"
66 | AOI_2_Vegas_img0,"LINESTRING (24.0 833.0, 95.0 838.0)"
67 | AOI_2_Vegas_img0,"LINESTRING (102.0 834.0, 95.0 838.0)"
68 | AOI_2_Vegas_img0,"LINESTRING (102.0 834.0, 178.0 838.0)"
69 | AOI_2_Vegas_img0,"LINESTRING (187.0 834.0, 178.0 838.0)"
70 | AOI_2_Vegas_img0,"LINESTRING (187.0 834.0, 259.0 839.0)"
71 | AOI_2_Vegas_img0,"LINESTRING (412.0 835.0, 416.0 884.0, 415.0 1222.0)"
72 | AOI_2_Vegas_img0,"LINESTRING (95.0 838.0, 91.0 889.0)"
73 | AOI_2_Vegas_img0,"LINESTRING (178.0 838.0, 172.0 937.0, 172.0 1196.0)"
74 | AOI_2_Vegas_img0,"LINESTRING (259.0 839.0, 337.0 839.0)"
75 | AOI_2_Vegas_img0,"LINESTRING (259.0 839.0, 255.0 1052.0, 254.0 1203.0)"
76 | AOI_2_Vegas_img0,"LINESTRING (337.0 839.0, 334.0 1216.0)"
77 | AOI_2_Vegas_img0,"LINESTRING (91.0 889.0, 44.0 891.0, 32.0 895.0)"
78 | AOI_2_Vegas_img0,"LINESTRING (91.0 889.0, 95.0 939.0, 93.0 1023.0)"
79 | AOI_2_Vegas_img0,"LINESTRING (2.0 890.0, 32.0 895.0, 31.0 1018.0, 20.0 1024.0)"
80 | AOI_2_Vegas_img0,"LINESTRING (31.0 1018.0, 93.0 1023.0)"
81 | AOI_2_Vegas_img0,"LINESTRING (2.0 1023.0, 20.0 1024.0)"
82 | AOI_2_Vegas_img0,"LINESTRING (93.0 1023.0, 94.0 1195.0)"
83 | AOI_2_Vegas_img0,"LINESTRING (20.0 1024.0, 8.0 1193.0, 46.0 1198.0, 94.0 1195.0)"
84 | AOI_2_Vegas_img0,"LINESTRING (1054.0 1193.0, 1053.0 1233.0)"
85 | AOI_2_Vegas_img0,"LINESTRING (94.0 1195.0, 172.0 1196.0, 254.0 1203.0, 270.0 1210.0, 334.0 1216.0, 352.0 1221.0, 415.0 1222.0, 437.0 1226.0, 492.0 1225.0, 567.0 1230.0)"
86 | AOI_2_Vegas_img0,"LINESTRING (1104.0 1229.0, 1053.0 1233.0)"
87 | AOI_2_Vegas_img0,"LINESTRING (1104.0 1229.0, 1171.0 1231.0)"
88 | AOI_2_Vegas_img0,"LINESTRING (567.0 1230.0, 643.0 1230.0, 715.0 1232.0)"
89 | AOI_2_Vegas_img0,"LINESTRING (1246.0 1231.0, 1171.0 1231.0)"
90 | AOI_2_Vegas_img0,"LINESTRING (1246.0 1231.0, 1297.0 1235.0)"
91 | AOI_2_Vegas_img0,"LINESTRING (715.0 1232.0, 726.0 1236.0, 790.0 1234.0)"
92 | AOI_2_Vegas_img0,"LINESTRING (1010.0 1233.0, 940.0 1234.0)"
93 | AOI_2_Vegas_img0,"LINESTRING (1010.0 1233.0, 1053.0 1233.0)"
94 | AOI_2_Vegas_img0,"LINESTRING (790.0 1234.0, 862.0 1235.0)"
95 | AOI_2_Vegas_img0,"LINESTRING (940.0 1234.0, 862.0 1235.0)"
--------------------------------------------------------------------------------
/apls/data/gt_pkl_prop_pkl/ground_truth_randomized/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/gt_pkl_prop_pkl/ground_truth_randomized/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
--------------------------------------------------------------------------------
/apls/data/gt_pkl_prop_pkl/proposal/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/gt_pkl_prop_pkl/proposal/RGB-PanSharpen_AOI_2_Vegas_img0.gpickle
--------------------------------------------------------------------------------
/apls/data/images/RGB-PanSharpen_AOI_2_Vegas_img0.tif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/CosmiQ/apls/4a78807cafde62b773e3a1190177526853c61207/apls/data/images/RGB-PanSharpen_AOI_2_Vegas_img0.tif
--------------------------------------------------------------------------------
/apls/graphTools.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Tue Aug 29 13:30:14 2017
5 |
6 | @author: avanetten
7 |
8 | Heavily modified from spacenet utilities graphtools
9 | """
10 |
11 | import shapely.geometry
12 | import fiona
13 | import numpy as np
14 | import os
15 | import sys
16 | import time
17 | import networkx as nx
18 | import geopandas as gpd
19 | from shapely.geometry import Point
20 | # from osmnx.utils import log
21 | # from osmnx import core
22 |
23 | path_apls_src = os.path.dirname(os.path.realpath(__file__))
24 | sys.path.append(path_apls_src)
25 | import osmnx_funcs
26 |
27 |
28 | ###############################################################################
29 | def parse_OGR_nodes_paths(vectorFileName, osmidx=0, osmNodeidx=0,
30 | nodeListGpd=gpd.GeoDataFrame(),
31 | valid_road_types=set([]),
32 | roadTypeField='type',
33 | verbose=True,
34 | super_verbose=False):
35 | """
36 | Construct dicts of nodes and paths with key=osmid and value=dict of
37 | attributes.
38 |
39 | Notes
40 | -----
41 | valid_road_types is a set of road types to be allowed
42 |
43 | Parameters
44 | ----------
45 | vectorFileName : str
46 | Absolute path to vector file supported by OGR that has
47 | line segments JSON response from from the Overpass API.
48 |
49 | Returns
50 | -------
51 | nodes, paths : tuple
52 | """
53 |
54 | # ensure valid vectorFileName
55 | try:
56 | source = fiona.open(vectorFileName, 'r')
57 | doit = True
58 | except:
59 | doit = False
60 | return {}, {}
61 |
62 | #dataSource = ogr.Open(vectorFileName, 0)
63 | # with fiona.open(vectorFileName, 'r') as source:
64 | if doit:
65 | #layer = dataSource.GetLayer()
66 | nodes = {}
67 | paths = {}
68 | for i, feature in enumerate(source):
69 |
70 | geom = feature['geometry']
71 | properties = feature['properties']
72 | # todo create more adjustable filter
73 | if roadTypeField in properties:
74 | road_type = properties['type']
75 | elif 'highway' in properties:
76 | road_type = properties['highway']
77 | elif 'road_type' in properties:
78 | road_type = properties['road_type']
79 | else:
80 | road_type = 'None'
81 |
82 | if ((i % 100) == 0) and verbose:
83 | print("\n", i, "/", len(source))
84 | print(" geom:", geom)
85 | print(" properties:", properties)
86 | print(" road_type:", road_type)
87 |
88 | ##################
89 | # check if road type allowable, continue if not
90 | # first check if road
91 | if (len(valid_road_types) > 0) and \
92 | (geom['type'] == 'LineString' or geom['type'] == 'MultiLineString'):
93 | if road_type not in valid_road_types:
94 | if verbose:
95 | print("Invalid road type, skipping...")
96 | continue
97 | ###################
98 |
99 | # skip empty linestrings
100 | if 'LINESTRING EMPTY' in list(properties.values()):
101 | continue
102 |
103 | osmidx = int(osmidx + 1)
104 | # print ("geom:", geom)
105 |
106 | if geom['type'] == 'LineString':
107 | # print osmNodeidx
108 | lineString = shapely.geometry.shape(geom)
109 | if super_verbose:
110 | print("lineString.wkt:", lineString.wkt)
111 | # if len(geom['coordinates']) == 0:
112 | # continue
113 |
114 | path, nodeList, osmNodeidx, nodeListGpd = \
115 | processLineStringFeature(lineString, osmidx, osmNodeidx,
116 | nodeListGpd, properties=properties)
117 | # print(nodeListGpd.head())
118 | osmNodeidx = osmNodeidx+1
119 | osmidx = osmidx+1
120 | #print ("nodeList:", nodeList)
121 | nodes.update(nodeList)
122 | paths[osmidx] = path
123 | # print(geom.GetGeometryName())
124 |
125 | elif geom['type'] == 'MultiLineString':
126 | for linestring in shapely.geometry.shape(geom):
127 |
128 | path, nodeList, osmNodeidx, nodeListGpd = \
129 | processLineStringFeature(linestring, osmidx, osmNodeidx,
130 | nodeListGpd, properties=properties)
131 | osmNodeidx = osmNodeidx + 1
132 | osmidx = osmidx+1
133 | # print(geom.GetGeometryName())
134 | nodes.update(nodeList)
135 | paths[osmidx] = path
136 |
137 | source.close()
138 |
139 | return nodes, paths
140 |
141 |
142 | ###############################################################################
143 | def processLineStringFeature(lineString, keyEdge, osmNodeidx,
144 | nodeListGpd=gpd.GeoDataFrame(), properties={},
145 | roadTypeField='type'):
146 | """Iterage over points in LineString"""
147 | # print ("lineString:", lineString)
148 |
149 | osmNodeidx = osmNodeidx + 1
150 | path = {}
151 | nodes = {}
152 | # print ("keyEdge:", keyEdge)
153 | # print ("lineString:", lineString)
154 | path['osmid'] = keyEdge
155 |
156 | nodeList = []
157 |
158 | for point in lineString.coords:
159 |
160 | pointShp = shapely.geometry.shape(Point(point))
161 | if nodeListGpd.size == 0:
162 | nodeId = np.array([])
163 | else:
164 | # print(nodeListGpd.head())
165 | # print(point)
166 | nodeId = nodeListGpd[nodeListGpd.distance(
167 | pointShp) == 0.0]['osmid'].values
168 |
169 | if nodeId.size == 0:
170 | nodeId = osmNodeidx
171 | nodeListGpd = nodeListGpd.append({'geometry': pointShp,
172 | 'osmid': osmNodeidx},
173 | ignore_index=True)
174 | osmNodeidx = osmNodeidx + 1
175 |
176 | node = {}
177 | # add properties
178 | node['x'] = point[0]
179 | node['y'] = point[1]
180 | node['osmid'] = nodeId
181 |
182 | # add properties
183 | for key, value in list(properties.items()):
184 | node[key] = value
185 | if roadTypeField in properties:
186 | node['highway'] = properties['type']
187 | else:
188 | node['highway'] = 'unclassified'
189 |
190 | nodes[nodeId] = node
191 |
192 | else:
193 | nodeId = nodeId[0]
194 |
195 | nodeList.append(nodeId)
196 |
197 | path['nodes'] = nodeList
198 | # add properties
199 | for key, value in list(properties.items()):
200 | path[key] = value
201 | # also set 'highway' flag
202 | if roadTypeField in properties:
203 | path['highway'] = properties['type']
204 | else:
205 | path['highway'] = 'unclassified'
206 |
207 | return path, nodes, osmNodeidx, nodeListGpd
208 |
209 |
210 | ###############################################################################
211 | def create_graphGeoJson(geoJson, name='unnamed', retain_all=True,
212 | network_type='all_private', valid_road_types=set([]),
213 | roadTypeField='type',
214 | osmidx=0, osmNodeidx=0,
215 | verbose=True, super_verbose=False):
216 | """
217 | Create a networkx graph from OSM data.
218 |
219 | Parameters
220 | ----------
221 | geoJson : geoJsonFile Name
222 | will support any file format supported by OGR
223 | name : string
224 | the name of the graph
225 | retain_all : bool
226 | if True, return the entire graph even if it is not connected
227 | network_type : string
228 | what type of network to create
229 |
230 | Returns
231 | -------
232 | networkx multidigraph
233 | """
234 |
235 | print('Creating networkx graph from downloaded OSM data...')
236 | start_time = time.time()
237 |
238 | # make sure we got data back from the server requests
239 |
240 | # create the graph as a MultiDiGraph and set the original CRS to EPSG 4326
241 | G = nx.MultiDiGraph(name=name, crs={'init': 'epsg:4326'})
242 |
243 | # extract nodes and paths from the downloaded osm data
244 | nodes = {}
245 | paths = {}
246 |
247 | if verbose:
248 | print("Running parse_OGR_nodes_paths...")
249 | nodes_temp, paths_temp = parse_OGR_nodes_paths(geoJson,
250 | valid_road_types=valid_road_types,
251 | verbose=verbose,
252 | super_verbose=super_verbose,
253 | osmidx=osmidx, osmNodeidx=osmNodeidx,
254 | roadTypeField=roadTypeField)
255 |
256 | if len(nodes_temp) == 0:
257 | return G
258 | if verbose:
259 | print(("len(nodes_temp):", len(nodes_temp)))
260 | print(("len(paths_temp):", len(paths_temp)))
261 |
262 | # add node props
263 | for key, value in list(nodes_temp.items()):
264 | nodes[key] = value
265 | if super_verbose:
266 | print(("node key:", key))
267 | print((" node value:", value))
268 |
269 | # add edge props
270 | for key, value in list(paths_temp.items()):
271 | paths[key] = value
272 | if super_verbose:
273 | print(("path key:", key))
274 | print((" path value:", value))
275 |
276 | # add each node to the graph
277 | for node, data in list(nodes.items()):
278 | G.add_node(node, **data)
279 |
280 | # add each way (aka, path) to the graph
281 | if super_verbose:
282 | print(("paths:", paths))
283 | G = osmnx_funcs.add_paths(G, paths, network_type)
284 |
285 | # retain only the largest connected component, if caller did not set retain_all=True
286 | if not retain_all:
287 | G = osmnx_funcs.get_largest_component(G)
288 |
289 | # add length (great circle distance between nodes) attribute to each edge to use as weight
290 | G = osmnx_funcs.add_edge_lengths(G)
291 |
292 | print('Created graph with {:,} nodes and {:,} edges in {:,.2f} seconds'.format(
293 | len(list(G.nodes())), len(list(G.edges())), time.time()-start_time))
294 |
295 | return G
296 |
297 |
298 | ###############################################################################
299 | if __name__ == "__main__":
300 |
301 | # test
302 | truth_dir = '/raid/cosmiq/spacenet/data/spacenetv2/spacenetLabels/AOI_2_Vegas/400m/'
303 | out_pkl = '/raid/cosmiq/spacenet/data/spacenetv2/spacenetLabels/AOI_2_Vegas/spacenetroads_AOI_2_Vegas_img10_graphTools.pkl'
304 |
305 | geoJson = os.path.join(
306 | truth_dir, 'spacenetroads_AOI_2_Vegas_img10.geojson')
307 | G0 = create_graphGeoJson(geoJson, name='unnamed',
308 | retain_all=True,
309 | verbose=True)
310 | # pkl
311 | nx.write_gpickle(G0, out_pkl)
312 |
--------------------------------------------------------------------------------
/apls/gt_graph_to_wkt.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Mon Aug 26 15:30:33 2019
5 |
6 | @author: avanetten
7 |
8 | Execution example:
9 | python /apls/apls/gt_graph_to_wkt.py \
10 | --root_dir=/spacenet/competitions/SN5_roads/train/AOI_7_Moscow/
11 |
12 | """
13 |
14 | import os
15 | import apls
16 | import argparse
17 | import osmnx_funcs
18 | import pandas as pd
19 | # import shapely.wkt
20 |
21 |
22 | ###############################################################################
23 | def gt_geojson_to_wkt(geojson_path, im_path,
24 | weight_keys=['length', 'travel_time_s'],
25 | subgraph_filter_weight='length', min_subgraph_length=5,
26 | travel_time_key='travel_time_s',
27 | speed_key='inferred_speed_mps',
28 | use_pix_coords=False,
29 | verbose=False,
30 | simplify=False,
31 | refine=True,
32 | super_verbose=False):
33 | '''
34 | Create wkt list of pixel coords in ground truth graph, for use in SpaceNet
35 | TopCoder competition.
36 | im_path has name like: ...SN5_roads_train_AOI_7_Moscow_PS-RGB_chip996.tif
37 | if weight == [], output list of [name_root, geom_pix_wkt]
38 | else: output list of [name_root, geom_pix_wkt, weight1, weight2]
39 | '''
40 |
41 | # linestring = "LINESTRING {}"
42 | im_name = os.path.basename(im_path)
43 |
44 | # get name_root of image file
45 | name_root = im_name.split('.')[0].replace('PS-RGB_', '').replace('PS-MS_', '')
46 | # # v0
47 | # AOI_root = 'AOI' + im_name.split('AOI')[-1]
48 | # name_root = AOI_root.split('.')[0].replace('PS-RGB_', '').replace('PS-MS_', '')
49 | print("name_root:", name_root)
50 | print("im_path:", im_path)
51 |
52 | G_gt, _ = apls._create_gt_graph(geojson_path, im_path,
53 | subgraph_filter_weight=subgraph_filter_weight,
54 | min_subgraph_length=min_subgraph_length,
55 | travel_time_key=travel_time_key,
56 | speed_key=speed_key,
57 | use_pix_coords=use_pix_coords,
58 | refine_graph=refine,
59 | simplify_graph=simplify,
60 | verbose=verbose,
61 | super_verbose=super_verbose)
62 |
63 | # simplify and turn to undirected
64 | if simplify:
65 | try:
66 | G_gt = osmnx_funcs.simplify_graph(G_gt).to_undirected()
67 | except:
68 | G_gt = G_gt.to_undirected()
69 | else:
70 | G_gt = G_gt.to_undirected()
71 |
72 | # return [name_root, "LINESTRING EMPTY"] if no edges
73 | if (len(G_gt.nodes()) == 0) or (len(G_gt.edges()) == 0):
74 | print(" Empty graph")
75 | if len(weight_keys) > 0:
76 | return [[name_root, "LINESTRING EMPTY"] + [0] * len(weight_keys)]
77 | else:
78 | return [[name_root, "LINESTRING EMPTY"]]
79 |
80 | # extract geometry pix wkt, save to list
81 | wkt_list = []
82 | for i, (u, v, attr_dict) in enumerate(G_gt.edges(data=True)):
83 | print("attr_dict:", attr_dict)
84 | geom_pix_wkt = attr_dict['geometry_pix'].wkt
85 | if verbose:
86 | print(i, "/", len(G_gt.edges()), "u, v:", u, v)
87 | # print(" attr_dict:", attr_dict)
88 | print(" geom_pix_wkt:", geom_pix_wkt)
89 |
90 | wkt_item_root = [name_root, geom_pix_wkt]
91 | if len(weight_keys) > 0:
92 | weights = [attr_dict[w] for w in weight_keys]
93 | if verbose:
94 | print(" weights:", weights)
95 | wkt_list.append(wkt_item_root + weights) # [name_root, geom_pix_wkt, weight])
96 | else:
97 | wkt_list.append(wkt_item_root)
98 |
99 | if verbose:
100 | print("wkt_list:", wkt_list)
101 |
102 | return wkt_list
103 |
104 |
105 | ###############################################################################
106 | def gt_geojson_dir_to_wkt(geojson_dir, im_dir, output_csv_path,
107 | weight_keys=['length', 'travel_time_s'],
108 | subgraph_filter_weight='length', min_subgraph_length=5,
109 | travel_time_key='travel_time_s',
110 | speed_key='inferred_speed_mps',
111 | use_pix_coords=False,
112 | simplify=False,
113 | verbose=False,
114 | super_verbose=False):
115 |
116 | # make dict of image chip id to file name
117 | chipper = ''
118 | im_chip_dict = {}
119 | for im_name in [z for z in os.listdir(im_dir) if z.endswith('.tif')]:
120 | chip_id = im_name.split('chip')[-1].split('.')[0]
121 | if 'chip' in im_name:
122 | chipper = 'chip'
123 | chip_id = im_name.split(chipper)[-1].split('.')[0]
124 | elif 'img' in im_name:
125 | chipper = 'img'
126 | chip_id = im_name.split(chipper)[-1].split('.')[0]
127 | im_chip_dict[chip_id] = im_name
128 | if verbose:
129 | print("im_chip_dict:", im_chip_dict)
130 |
131 | # iterate through geojsons
132 | wkt_list_tot = []
133 | geojson_paths = sorted([z for z in os.listdir(geojson_dir)
134 | if z.endswith('.geojson')])
135 | for i, geojson_name in enumerate(geojson_paths):
136 |
137 | # get image name
138 | chip_id = geojson_name.split(chipper)[-1].split('.')[0]
139 | try:
140 | im_name = im_chip_dict[chip_id]
141 | except:
142 | print("im_name not in im_chip_dict:", im_name)
143 | return
144 | # continue
145 |
146 | geojson_path = os.path.join(geojson_dir, geojson_name)
147 | im_path = os.path.join(im_dir, im_name)
148 |
149 | if verbose:
150 | print(i, "/", len(geojson_paths), "geojson:", geojson_path,
151 | "im_path:", im_path)
152 |
153 | wkt_list = gt_geojson_to_wkt(geojson_path, im_path,
154 | weight_keys=weight_keys,
155 | subgraph_filter_weight=subgraph_filter_weight,
156 | min_subgraph_length=min_subgraph_length,
157 | travel_time_key=travel_time_key,
158 | speed_key=speed_key,
159 | use_pix_coords=use_pix_coords,
160 | simplify=simplify,
161 | verbose=verbose,
162 | super_verbose=super_verbose)
163 |
164 | wkt_list_tot.extend(wkt_list)
165 |
166 | # create dataframe
167 | if len(weight_keys) > 0:
168 | cols = ['ImageId', 'WKT_Pix'] + weight_keys
169 | else:
170 | cols = ['ImageId', 'WKT_Pix']
171 |
172 | # use 'length_m' instead?
173 | cols = [z.replace('length', 'length_m') for z in cols]
174 |
175 | # print("wkt_list_tot:", wkt_list_tot)
176 | # print("\n")
177 | # for i in wkt_list_tot:
178 | # print(len(i))
179 | print("cols:", cols)
180 |
181 | df = pd.DataFrame(wkt_list_tot, columns=cols)
182 | print("df:", df)
183 | # save
184 | df.to_csv(output_csv_path, index=False)
185 |
186 | return df
187 |
188 |
189 | ###############################################################################
190 | if __name__ == "__main__":
191 |
192 | parser = argparse.ArgumentParser()
193 | parser.add_argument('--root_dir', default='', type=str,
194 | help='Root directory of geojson data')
195 | parser.add_argument('--PSRGB_dir', default='', type=str,
196 | help='PS-RGB dir, if '', assume in root_dir')
197 | parser.add_argument('--travel_time_key', default='travel_time_s', type=str,
198 | help='key for travel time')
199 | parser.add_argument('--speed_key', default='inferred_speed_mps', type=str,
200 | help='key for road speed')
201 | parser.add_argument('--out_file_name',
202 | default='geojson_roads_speed_wkt_weighted_v0.csv',
203 | type=str,
204 | help='name for output file')
205 | parser.add_argument('--simplify_graph', default=True, type=bool,
206 | help='switch to simplify graph prior to saving')
207 | args = parser.parse_args()
208 |
209 | weight_keys = ['length', 'travel_time_s']
210 | verbose = True
211 |
212 | root_dir = args.root_dir # '/raid/cosmiq/spacenet/competitions/SN5_roads/gt_to_topcoder_mumbai'
213 | if len(args.PSRGB_dir) > 0:
214 | im_dir = args.PSRGB_dir
215 | else:
216 | im_dir = os.path.join(root_dir, 'PS-RGB')
217 | geojson_dir = os.path.join(root_dir, 'geojson_roads_speed')
218 | # get name
219 | out_prefix = '_'.join(root_dir.split('/')[-3:])
220 | output_csv_path = os.path.join(root_dir, out_prefix + args.out_file_name)
221 |
222 | print("output_csv_path:", output_csv_path)
223 | df = gt_geojson_dir_to_wkt(geojson_dir, im_dir,
224 | output_csv_path=output_csv_path,
225 | travel_time_key=args.travel_time_key,
226 | speed_key=args.speed_key,
227 | simplify=args.simplify_graph,
228 | weight_keys=weight_keys,
229 | verbose=verbose)
230 |
--------------------------------------------------------------------------------
/apls/sp_metric.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python2
2 | # -*- coding: utf-8 -*-
3 | """
4 | Created on Thu Jun 28 08:32:18 2018
5 |
6 | @author: avanetten
7 |
8 | Implement SP Metric
9 | https://www.cv-foundation.org/openaccess/content_cvpr_2013/papers/Wegner_A_Higher-Order_CRF_2013_CVPR_paper.pdf
10 |
11 | """
12 |
13 | import apls_utils
14 | import apls
15 | import os
16 | import sys
17 | import time
18 | import numpy as np
19 | import networkx as nx
20 | import matplotlib.pyplot as plt
21 | from matplotlib.patches import Circle
22 | from matplotlib.collections import PatchCollection
23 | # import osmnx as ox
24 |
25 | path_apls_src = os.path.dirname(os.path.realpath(__file__))
26 | path_apls = os.path.dirname(path_apls_src)
27 | sys.path.append(path_apls_src)
28 | import osmnx_funcs
29 |
30 | ###############################################################################
31 | def compute_single_sp(G_gt_, G_prop_, kd_idx_dic_prop, kdtree_prop,
32 | x_coord='x', y_coord='y',
33 | weight='length', query_radius=5,
34 | length_buffer=0.05, make_plots=False, verbose=False):
35 | '''Single SP metric
36 | return 1 if within length_buffer
37 | return 0 if path is outside length_buffer or DNE for either gt or prop
38 | return -1 if path between randomly chosen nodes DNE for both graphs'''
39 |
40 | # choose random ground truth source and target nodes
41 | [source_gt, target_gt] = np.random.choice(
42 | G_gt_.nodes(), size=2, replace=False)
43 | if verbose:
44 | print("source_gt:", source_gt, "target_gt:", target_gt)
45 | # source_gt, target_gt = 10002, 10039
46 | x_s_gt, y_s_gt = G_gt_.node[source_gt][x_coord], G_gt_.node[source_gt][y_coord]
47 | x_t_gt, y_t_gt = G_gt_.node[target_gt][x_coord], G_gt_.node[target_gt][y_coord]
48 |
49 | # if verbose:
50 | # print ("x_s_gt:", x_s_gt)
51 | # print ("y_s_gt:", y_s_gt)
52 |
53 | # get route. If it does not exists, set len = -1
54 | if not nx.has_path(G_gt_, source_gt, target_gt):
55 | len_gt = -1
56 | else:
57 | len_gt = nx.dijkstra_path_length(
58 | G_gt_, source_gt, target_gt, weight=weight)
59 |
60 | # get nodes in prop graph
61 | # see if source, target node exists in proposal
62 | source_p_l, _ = apls_utils.nodes_near_point(x_s_gt, y_s_gt,
63 | kdtree_prop, kd_idx_dic_prop,
64 | x_coord=x_coord, y_coord=y_coord,
65 | radius_m=query_radius)
66 | target_p_l, _ = apls_utils.nodes_near_point(x_t_gt, y_t_gt,
67 | kdtree_prop, kd_idx_dic_prop,
68 | x_coord=x_coord, y_coord=y_coord,
69 | radius_m=query_radius)
70 |
71 | # if either source or target does not exists, set prop_len as -1
72 | if (len(source_p_l) == 0) or (len(target_p_l) == 0):
73 | len_prop = -1
74 |
75 | else:
76 | source_p, target_p = source_p_l[0], target_p_l[0]
77 | x_s_p, y_s_p = G_prop_.node[source_p][x_coord], G_prop_.node[source_p][y_coord]
78 | x_t_p, y_t_p = G_prop_.node[target_p][x_coord], G_prop_.node[target_p][y_coord]
79 |
80 | # get route
81 | if not nx.has_path(G_prop_, source_p, target_p):
82 | len_prop = -1
83 | else:
84 | len_prop = nx.dijkstra_path_length(
85 | G_prop_, source_p, target_p, weight=weight)
86 |
87 | # path length difference, as a percentage
88 | perc_diff = np.abs((len_gt - len_prop) / len_gt)
89 | # check path lengths
90 | # if both paths do not exist, skip
91 | if (len_gt == -1) and (len_prop == -1):
92 | match = -1
93 | # if one is positive and one negative, return 0
94 | elif (np.sign(len_gt) != np.sign(len_prop)):
95 | match = 0
96 | # else, campare lengths
97 | elif perc_diff > length_buffer:
98 | match = 0
99 | else:
100 | match = 1
101 |
102 | if verbose:
103 | # print ("source_gt:", source_gt, "target_gt:", target_gt)
104 | print("len_gt:", len_gt)
105 | print("len_prop:", len_prop)
106 | print("perc_diff:", perc_diff)
107 |
108 | if make_plots:
109 |
110 | # plot G_gt_init
111 | plt.close('all')
112 | # plot initial graph
113 | if len_gt != -1:
114 | fig, ax = osmnx_funcs.plot_graph_route(G_gt_, nx.shortest_path(
115 | G_gt_, source=source_gt, target=target_gt, weight=weight))
116 | else:
117 | fig, ax = osmnx_funcs.plot_graph(G_gt_, axis_off=True)
118 | ax.set_title("Ground Truth, L = " + str(np.round(len_gt, 2)))
119 | # draw a circle (this doesn't work unless it's a PatchCollection!)
120 | patches = [Circle((x_s_gt, y_s_gt), query_radius, alpha=0.3),
121 | Circle((x_t_gt, y_t_gt), query_radius, alpha=0.3)]
122 | p = PatchCollection(patches, alpha=0.4, color='orange')
123 | ax.add_collection(p)
124 | # also a simple point
125 | ax.scatter([x_s_gt], [y_s_gt], c='green', s=6)
126 | ax.scatter([x_t_gt], [y_t_gt], c='red', s=6)
127 |
128 | # plot proposal graph
129 | if len_prop != -1:
130 | fig, ax1 = osmnx_funcs.plot_graph_route(G_prop_, nx.shortest_path(
131 | G_prop_, source=source_p, target=target_p, weight=weight))
132 | else:
133 | fig, ax1 = osmnx_funcs.plot_graph(G_prop_, axis_off=True)
134 | ax1.set_title("Proposal, L = " + str(np.round(len_prop, 2)))
135 | # draw patches from ground truth!
136 | patches = [Circle((x_s_gt, y_s_gt), query_radius, alpha=0.3),
137 | Circle((x_t_gt, y_t_gt), query_radius, alpha=0.3)]
138 | p = PatchCollection(patches, alpha=0.4, color='orange')
139 | ax1.add_collection(p)
140 | if len_prop != -1:
141 | # also a simple point
142 | ax1.scatter([x_s_p], [y_s_p], c='green', s=6)
143 | ax1.scatter([x_t_p], [y_t_p], c='red', s=6)
144 |
145 | return match
146 |
147 |
148 | ###############################################################################
149 | def compute_sp(G_gt_, G_prop_,
150 | x_coord='x', y_coord='y',
151 | weight='length', query_radius=5,
152 | length_buffer=0.05, n_routes=10, verbose=False,
153 | make_plots=True):
154 | '''Compute SP metric'''
155 |
156 | t0 = time.time()
157 | if len(G_prop_.nodes()) == 0:
158 | return [], 0
159 |
160 | kd_idx_dic_p, kdtree_p, pos_arr_p = apls_utils.G_to_kdtree(G_prop_)
161 |
162 | match_l = []
163 | for i in range(n_routes):
164 | if i == 0 and make_plots:
165 | make_plots_tmp = True
166 | else:
167 | make_plots_tmp = False
168 |
169 | if (i % 100) == 0:
170 | print((i, "/", n_routes))
171 |
172 | match_val = compute_single_sp(G_gt_, G_prop_, kd_idx_dic_p, kdtree_p,
173 | x_coord=x_coord, y_coord=y_coord,
174 | weight=weight, query_radius=query_radius,
175 | length_buffer=length_buffer, make_plots=make_plots_tmp,
176 | verbose=verbose)
177 | if match_val != -1:
178 | match_l.append(match_val)
179 |
180 | # total score is fraction of routes that match
181 | sp_tot = 1.0 * np.sum(match_l) / len(match_l)
182 |
183 | if verbose:
184 | print(("match_arr:", np.array(match_l)))
185 | # print (" sp_tot:", sp_tot)
186 |
187 | print("sp metric:")
188 | print((" total time elapsed to compute sp:",
189 | time.time() - t0, "seconds"))
190 |
191 | return match_l, sp_tot
192 |
193 |
194 | ###############################################################################
195 | ###############################################################################
196 | ###############################################################################
197 | if __name__ == "__main__":
198 |
199 | # Test
200 | ##########################
201 | n_measurement_nodes = 10
202 | x_coord = 'x'
203 | y_coord = 'y'
204 | weight = 'length'
205 | query_radius = 5
206 | length_buffer = 0.05
207 | n_routes = 500
208 | verbose = False # True
209 | run_all = True
210 | #pick_random_start_node = True
211 |
212 | truth_dir = '/raid/cosmiq/spacenet/data/spacenetv2/AOI_2_Vegas_Test/400m/gt_graph_pkls'
213 | prop_dir = 'raid/cosmiq/basiss/inference_mod_new/results/rgb_test_sn_vegas/graphs'
214 | ##########################
215 |
216 | name_list = os.listdir(truth_dir)
217 | f = name_list[np.random.randint(len(name_list))]
218 | #f = 'AOI_2_Vegas_img150.pkl'
219 | print(("f:", f))
220 | t0 = time.time()
221 |
222 | # get original graph
223 | outroot = f.split('.')[0]
224 | print("\noutroot:", outroot)
225 | gt_file = os.path.join(truth_dir, f)
226 | prop_file = os.path.join(prop_dir, outroot + '.gpickle')
227 |
228 | # ground truth graph
229 | G_gt_init = nx.read_gpickle(gt_file)
230 | G_gt_init1 = osmnx_funcs.simplify_graph(G_gt_init.to_directed()).to_undirected()
231 | G_gt_init = osmnx_funcs.project_graph(G_gt_init1)
232 | G_gt_init = apls.create_edge_linestrings(
233 | G_gt_init, remove_redundant=True, verbose=False)
234 |
235 | print(("G_gt_init.nodes():", G_gt_init.nodes()))
236 | (u, v) = G_gt_init.edges()[0]
237 | print(("random edge props:", G_gt_init.edge[u][v]))
238 |
239 | # proposal graph
240 | G_p_init = nx.read_gpickle(prop_file)
241 | #G_p_init0 = nx.read_gpickle(prop_file)
242 | #G_p_init1 = osmnx_funcs.simplify_graph(G_p_init0.to_directed()).to_undirected()
243 | #G_p_init = osmnx_funcs.project_graph(G_p_init1)
244 | G_p_init = apls.create_edge_linestrings(
245 | G_p_init, remove_redundant=True, verbose=False)
246 |
247 | t0 = time.time()
248 | print("\nComputing score...")
249 | match_list, score = compute_sp(G_gt_init, G_p_init,
250 | x_coord=x_coord, y_coord=y_coord,
251 | weight=weight, query_radius=query_radius,
252 | length_buffer=length_buffer, n_routes=n_routes,
253 | make_plots=True,
254 | verbose=verbose)
255 | print(("score:", score))
256 | print(("Time to compute score:", time.time() - t0, "seconds"))
257 |
258 | ############
259 | # also compute total topo metric for entire folder
260 | if run_all:
261 | t0 = time.time()
262 | plt.close('all')
263 | score_list = []
264 | match_list = []
265 | for i, f in enumerate(name_list):
266 |
267 | if i == 0:
268 | make_plots = True
269 | else:
270 | make_plots = False
271 |
272 | # get original graph
273 | outroot = f.split('.')[0]
274 | print("\n", i, "/", len(name_list), "outroot:", outroot)
275 | #print ("\n", i, "/", len(name_list), "outroot:", outroot)
276 | gt_file = os.path.join(truth_dir, f)
277 |
278 | # ground truth graph
279 | G_gt_init = nx.read_gpickle(gt_file)
280 | #G_gt_init1 = osmnx_funcs.simplify_graph(G_gt_init0.to_directed()).to_undirected()
281 | #G_gt_init = osmnx_funcs.project_graph(G_gt_init1)
282 | G_gt_init = apls.create_edge_linestrings(
283 | G_gt_init, remove_redundant=True, verbose=False)
284 | if len(G_gt_init.nodes()) == 0:
285 | continue
286 |
287 | # proposal graph
288 | prop_file = os.path.join(prop_dir, outroot + '.gpickle')
289 | if not os.path.exists(prop_file):
290 | score_list.append(0)
291 | continue
292 |
293 | G_p_init0 = nx.read_gpickle(prop_file)
294 | G_p_init1 = osmnx_funcs.simplify_graph(
295 | G_p_init0.to_directed()).to_undirected()
296 | G_p_init = osmnx_funcs.project_graph(G_p_init1)
297 | G_p_init = apls.create_edge_linestrings(
298 | G_p_init, remove_redundant=True, verbose=False)
299 |
300 | match_list_tmp, score = compute_sp(G_gt_init, G_p_init,
301 | x_coord=x_coord, y_coord=y_coord,
302 | weight=weight, query_radius=query_radius,
303 | length_buffer=length_buffer, n_routes=n_routes,
304 | make_plots=make_plots,
305 | verbose=verbose)
306 | score_list.append(score)
307 | match_list.extend(match_list_tmp)
308 |
309 | # compute total score
310 | # total score is fraction of routes that match
311 | sp_tot = 1.0 * np.sum(match_list) / len(match_list)
312 | #score_tot = np.sum(score_list)
313 |
314 | print(("Total sp metric for", len(name_list), "files:"))
315 | print((" query_radius:", query_radius, "length_buffer:", length_buffer))
316 | print((" n_measurement_nodes:", n_measurement_nodes, "n_routes:", n_routes))
317 | print((" total time elapsed to compute sp and make plots:",
318 | time.time() - t0, "seconds"))
319 | print((" total sp:", sp_tot))
320 |
--------------------------------------------------------------------------------
/environment.yml:
--------------------------------------------------------------------------------
1 | name: apls
2 | channels:
3 | - conda-forge
4 | - defaults
5 | dependencies:
6 | - python=3.6
7 | - pip=19.0
8 | - shapely=1.6.4
9 | - fiona=1.8.6
10 | - pandas=0.24.2
11 | - geopandas=0.5.0
12 | - opencv=3.4.4
13 | - numpy=1.16.3
14 | - gdal=2.4.0
15 | - rtree=0.8.3
16 | - networkx=2.3
17 | - rasterio=1.0.22
18 | - scipy=1.2.1
19 | - scikit-image=0.15.0
20 | - pip:
21 | - affine==2.2.2
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | from setuptools import setup, find_packages
2 |
3 | readme = ''
4 |
5 | version = '0.1.0'
6 |
7 | # Runtime requirements.
8 | inst_reqs = ['matplotlib>=3.0.0',
9 | 'shapely>=1.6.4',
10 | 'pandas>=0.23.4',
11 | 'geopandas>=0.4.0',
12 | 'opencv-python>=4.0',
13 | 'numpy>=1.15.4',
14 | 'tqdm>=4.28.1',
15 | 'GDAL==2.4.0',
16 | 'rtree>=0.8.3',
17 | 'networkx>=2.2',
18 | 'scipy>=1.2.0',
19 | 'scikit-image>=0.14.0',
20 | 'affine>=2.2.1',
21 | 'utm>=0.4.0',
22 | ]
23 |
24 | extra_reqs = {
25 | 'test': ['mock', 'pytest', 'pytest-cov', 'codecov']}
26 |
27 | setup(name='apls',
28 | version=version,
29 | description=u"""CosmiQ Works APLS Metric Implementation""",
30 | long_description=readme,
31 | classifiers=[
32 | 'Intended Audience :: Information Technology',
33 | 'Intended Audience :: Science/Research',
34 | 'License :: OSI Approved :: BSD License',
35 | 'Programming Language :: Python :: 3.6',
36 | 'Topic :: Scientific/Engineering :: GIS'],
37 | keywords='spacenet machinelearning iou aws',
38 | author=u"Adam Van Etten",
39 | author_email='avanetten@iqt.org',
40 | url='https://github.com/CosmiQ/apls',
41 | license='Apache-2.0',
42 | packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
43 | zip_safe=False,
44 | include_package_data=True,
45 | install_requires=inst_reqs,
46 | extras_require=extra_reqs,
47 | )
48 |
--------------------------------------------------------------------------------