Skip to content

Commit

Permalink
sort rasters and vectors so they match
Browse files Browse the repository at this point in the history
  • Loading branch information
mayrajeo committed Dec 19, 2023
1 parent 55fd0a1 commit d11e13b
Show file tree
Hide file tree
Showing 71 changed files with 295 additions and 283 deletions.
74 changes: 43 additions & 31 deletions geo2ml/data/cv.py
Original file line number Diff line number Diff line change
Expand Up @@ -141,18 +141,22 @@ def shp_to_coco(
categories = {c["name"]: c["id"] for c in coco_dict["categories"]}
if os.path.isdir(shp_path):
vector_tiles = [
f for f in os.listdir(shp_path) if f.endswith((".shp", ".geojson"))
]
raster_tiles = [
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
f for f in sorted(os.listdir(shp_path)) if f.endswith((".shp", ".geojson"))
]
raster_tiles = sorted(
[
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
]
)
elif shp_path.suffix == ".gpkg":
layers = fiona.listlayers(
shp_path
layers = sorted(
fiona.listlayers(shp_path)
) # Assume that shp_path contains a geopackage with layers named after images
raster_tiles = [f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
raster_tiles = sorted(
[f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
)
ann_id = 1
for i, r in tqdm(enumerate(raster_tiles)):
tile_anns = []
Expand Down Expand Up @@ -312,19 +316,23 @@ def shp_to_coco_results(
coco_dict = json.load(f)

if os.path.isdir(prediction_path):
vector_tiles = [
f for f in os.listdir(prediction_path) if f.endswith((".shp", ".geojson"))
]
raster_tiles = [
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
]
vector_tiles = sorted(
[f for f in os.listdir(prediction_path) if f.endswith((".shp", ".geojson"))]
)
raster_tiles = sorted(
[
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
]
)
elif prediction_path.suffix == ".gpkg":
layers = fiona.listlayers(
shp_path
layers = sorted(
fiona.listlayers(shp_path)
) # Assume that shp_path contains a geopackage with layers named after images
raster_tiles = [f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
raster_tiles = sorted(
[f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
)
results = []
for i in tqdm(range_of(raster_tiles)):
for im_id, im in enumerate(coco_dict["images"]):
Expand Down Expand Up @@ -376,19 +384,23 @@ def shp_to_yolo(
or a directory containing multiple shp or geojson files, each corresponding to a single image.
"""
if os.path.isdir(shp_path):
vector_tiles = [
f for f in os.listdir(shp_path) if f.endswith((".shp", ".geojson"))
]
raster_tiles = [
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
]
vector_tiles = sorted(
[f for f in os.listdir(shp_path) if f.endswith((".shp", ".geojson"))]
)
raster_tiles = sorted(
[
f
for f in os.listdir(raster_path)
if f.split(".")[0] in [v.split(".")[0] for v in vector_tiles]
]
)
elif shp_path.suffix == ".gpkg":
layers = fiona.listlayers(
shp_path
layers = sorted(
fiona.listlayers(shp_path)
) # Assume that shp_path contains a geopackage with layers named after images
raster_tiles = [f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
raster_tiles = sorted(
[f for f in os.listdir(raster_path) if f.split(".")[0] in layers]
)
ann_path = outpath / "labels"
os.makedirs(ann_path, exist_ok=True)
names = {n: i for i, n in enumerate(names)}
Expand Down
24 changes: 12 additions & 12 deletions nbs/13_data.cv.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -261,11 +261,11 @@
" if coco_licenses: coco_dict['licenses'] = coco_licenses\n",
" categories = {c['name']:c['id'] for c in coco_dict['categories']}\n",
" if os.path.isdir(shp_path):\n",
" vector_tiles = [f for f in os.listdir(shp_path) if f.endswith(('.shp', '.geojson'))]\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]]\n",
" vector_tiles = [f for f in sorted(os.listdir(shp_path)) if f.endswith(('.shp', '.geojson'))]\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]])\n",
" elif shp_path.suffix == '.gpkg':\n",
" layers = fiona.listlayers(shp_path) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in layers]\n",
" layers = sorted(fiona.listlayers(shp_path)) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in layers])\n",
" ann_id = 1\n",
" for i, r in tqdm(enumerate(raster_tiles)):\n",
" tile_anns = []\n",
Expand Down Expand Up @@ -637,11 +637,11 @@
" coco_dict = json.load(f)\n",
" \n",
" if os.path.isdir(prediction_path):\n",
" vector_tiles = [f for f in os.listdir(prediction_path) if f.endswith(('.shp', '.geojson'))]\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]]\n",
" vector_tiles = sorted([f for f in os.listdir(prediction_path) if f.endswith(('.shp', '.geojson'))])\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]])\n",
" elif prediction_path.suffix == '.gpkg':\n",
" layers = fiona.listlayers(shp_path) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in layers]\n",
" layers = sorted(fiona.listlayers(shp_path)) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in layers])\n",
" results = []\n",
" for i in tqdm(range_of(raster_tiles)):\n",
" for im_id, im in enumerate(coco_dict['images']):\n",
Expand Down Expand Up @@ -780,11 +780,11 @@
" or a directory containing multiple shp or geojson files, each corresponding to a single image.\n",
" \"\"\"\n",
" if os.path.isdir(shp_path):\n",
" vector_tiles = [f for f in os.listdir(shp_path) if f.endswith(('.shp', '.geojson'))]\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]]\n",
" vector_tiles = sorted([f for f in os.listdir(shp_path) if f.endswith(('.shp', '.geojson'))])\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in [v.split('.')[0] for v in vector_tiles]])\n",
" elif shp_path.suffix == '.gpkg':\n",
" layers = fiona.listlayers(shp_path) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = [f for f in os.listdir(raster_path) if f.split('.')[0] in layers]\n",
" layers = sorted(fiona.listlayers(shp_path)) # Assume that shp_path contains a geopackage with layers named after images\n",
" raster_tiles = sorted([f for f in os.listdir(raster_path) if f.split('.')[0] in layers])\n",
" ann_path = outpath/'labels'\n",
" os.makedirs(ann_path, exist_ok=True)\n",
" names = {n: i for i, n in enumerate(names)}\n",
Expand Down
Binary file modified nbs/example_data/R70C21.dbf
Binary file not shown.
2 changes: 1 addition & 1 deletion nbs/example_data/tiles/coco_norm.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nbs/example_data/tiles/coco_res.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion nbs/example_data/tiles/coco_rot.json

Large diffs are not rendered by default.

9 changes: 4 additions & 5 deletions nbs/example_data/tiles/labels/R0C0.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
0 2.5700125 0.8362388888888889 2.6315458333333335 0.8651944444444445 2.6315458333333335 0.9206944444444444 2.5682 0.94 2.5247666666666664 0.9834333333333334 2.5152833333333335 1.0 2.331925 1.0 2.3057749999999997 0.9520666666666667 2.2894875 0.8869111111111111 2.3455916666666665 0.8072777777777778 2.3220666666666667 0.7493666666666666 2.3727416666666667 0.6769722222222222 2.455991666666667 0.6552555555555556 2.5935374999999996 0.74695
0 2.389933333333333 0.45979444444444445 2.4125583333333336 0.46944444444444444 2.4098416666666664 0.5370111111111111 2.417079166666667 0.6130222222222221 2.4044125 0.6600777777777778 2.3763583333333336 0.6878333333333333 2.3419749999999997 0.693861111111111 2.3265916666666664 0.5876888888888889 2.265054166666667 0.5707944444444444 2.2415291666666666 0.5140888888888889 2.2623416666666665 0.44531666666666664 2.3093958333333333 0.40670555555555554 2.370929166666667 0.41032222222222225
0 2.5211458333333336 0.14367777777777777 2.6116375 0.2474388888888889 2.6666666666666665 0.19407777777777777 2.6666666666666665 0.7068111111111111 2.6568833333333335 0.7179944444444445 2.573629166666667 0.7300611111111112 2.477708333333333 0.6769722222222222 2.452370833333333 0.6576666666666666 2.4143666666666665 0.5225333333333333 2.410745833333333 0.42118333333333335 2.3763583333333336 0.31500555555555554 2.3998874999999997 0.2715722222222222 2.4397041666666666 0.17022222222222222
0 2.6532625 0.07973333333333334 2.658691666666667 0.024227777777777775 2.5844875000000003 0.021816666666666668 2.5808541666666667 0.0 2.6666666666666665 0.0 2.6666666666666665 0.10542222222222222
0 2.0587375 0.02061111111111111 2.0139916666666666 0.0 2.0775833333333336 0.0
0 0.4326125 0.17263333333333333 0.4706166666666666 0.14367777777777777 0.5221958333333333 0.051977777777777776 0.5556791666666666 0.06887222222222222 0.5475333333333333 0.2100388888888889 0.5792083333333333 0.2583 0.5665375 0.3355166666666667 0.5412 0.40308333333333335 0.4679041666666667 0.47788888888888886 0.42899166666666666 0.4863388888888889 0.40365416666666665 0.4091166666666667 0.3602208333333333 0.44289999999999996 0.2670125 0.3656833333333333 0.2072875 0.2558888888888889 0.21090833333333334 0.12316666666666667 0.2805875 0.019405555555555554 0.3285458333333333 0.0942111111111111 0.36926666666666663 0.09903333333333333 0.3810333333333333 0.13764444444444443 0.40817916666666665 0.15695
1 0.4616416666666667 0.16860555555555556 0.422425 0.18167777777777777 0.3924041666666667 0.0 0.43241666666666667 0.0
1 0.5134624999999999 0.08644444444444445 0.48545 0.10138333333333333 0.47754583333333334 0.0 0.5070374999999999 0.0
1 0.6471333333333333 0.0 0.67765 0.0 0.7221375 0.09578333333333333 0.6927291666666666 0.09578333333333333
8 changes: 5 additions & 3 deletions nbs/example_data/tiles/labels/R0C1.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
0 2.0700125 0.8362388888888889 2.1315458333333335 0.8651944444444445 2.1315458333333335 0.9206944444444444 2.0682 0.94 2.024766666666667 0.9834333333333334 2.0152833333333335 1.0 2.0 1.0 2.0 0.6845944444444445 2.0935375 0.74695
0 2.021145833333333 0.14367777777777777 2.1116375 0.2474388888888889 2.1666666666666665 0.19407777777777777 2.1666666666666665 0.7068111111111111 2.1568833333333335 0.7179944444444445 2.0736291666666666 0.7300611111111112 2.0 0.6893111111111111 2.0 0.15057222222222222
0 2.1532625 0.07973333333333334 2.158691666666667 0.024227777777777775 2.0844875 0.021816666666666668 2.0808541666666667 0.0 2.1666666666666665 0.0 2.1666666666666665 0.10542222222222222
0 0.9262041666666666 0.5732111111111111 0.8556208333333333 0.5901000000000001 0.8158041666666667 0.6673222222222222 0.7379833333333334 0.6793833333333333 0.7361708333333333 0.6793833333333333 0.6312041666666667 0.6890388888888889 0.6293916666666667 0.6069944444444444 0.6511125 0.5346 0.6818791666666667 0.5056444444444445 0.75065 0.41394444444444445 0.8194250000000001 0.36085555555555554 0.8918166666666667 0.33672777777777774 0.9081041666666666 0.36809444444444445 0.9262041666666666 0.4404888888888889
0 0.8121833333333334 0.17987222222222224 0.8737208333333334 0.21848333333333333 0.893625 0.30535555555555555 0.8501916666666667 0.3632722222222222 0.7814166666666666 0.3898111111111111 0.7144541666666666 0.5032277777777778 0.6529208333333333 0.5635555555555556 0.5805291666666667 0.5635555555555556 0.524425 0.5152944444444445 0.5027041666666666 0.3439666666666667 0.5624291666666666 0.21365555555555554 0.6782583333333334 0.17263333333333333 0.6981666666666667 0.09541666666666668 0.7759874999999999 0.10265555555555557
1 0.989625 0.19475 0.9476083333333333 0.20222222222222222 0.9163250000000001 0.0 0.9601666666666666 0.0
1 0.013462499999999999 0.08644444444444445 0.0 0.09362222222222222 0.0 0.0 0.0070375 0.0
1 0.1471333333333333 0.0 0.17765 0.0 0.22213750000000002 0.09578333333333333 0.19272916666666667 0.09578333333333333
14 changes: 7 additions & 7 deletions nbs/example_data/tiles/labels/R0C2.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
1 1.0351291666666667 1.3758555555555556 1.0772458333333332 1.5 1.0442083333333334 1.5 1.023925 1.4393500000000001
0 1.0207291666666667 1.0389388888888889 1.0551166666666667 1.0365222222222223 1.07955 1.1137444444444444 1.1356541666666666 1.1197722222222222 1.1474166666666668 1.1837222222222221 1.1257 1.233188888888889 1.1356541666666666 1.2850722222222222 1.1193666666666668 1.3454 1.0705 1.3429888888888888 1.028875 1.3972833333333332 1.0098708333333333 1.4491611111111111 1.0 1.4477777777777778 1.0 0.9781 1.0008208333333333 0.9810222222222222
0 1.6604999999999999 1.3719444444444444 1.6206874999999998 1.306788888888889 1.6025874999999998 1.3743555555555556 1.5645833333333334 1.3381611111111111 1.4958083333333334 1.251288888888889 1.4759 1.18855 1.425225 1.1161555555555556 1.4777083333333332 1.0678944444444445 1.5482916666666666 0.9472388888888889 1.6152583333333332 0.94 1.6666666666666667 0.94 1.6666666666666667 1.3226277777777777
1 1.2171958333333335 0.91275 1.5225083333333334 1.3609166666666668 1.4832958333333333 1.3721222222222222 1.2059916666666666 0.9650388888888889 1.2087916666666667 0.9202222222222222
0 1.5700125 0.8362388888888889 1.6315458333333335 0.8651944444444445 1.6315458333333335 0.9206944444444444 1.5682 0.94 1.5247666666666668 0.9834333333333334 1.4722791666666666 1.0751333333333333 1.4143666666666665 1.104088888888889 1.3492125 1.0316944444444445 1.3057750000000001 0.9520666666666667 1.2894875 0.8869111111111111 1.3455916666666667 0.8072777777777778 1.3220666666666667 0.7493666666666666 1.3727416666666667 0.6769722222222222 1.4559916666666666 0.6552555555555556 1.5935375 0.74695
0 1.4098416666666667 0.5370111111111111 1.4170791666666667 0.6130222222222221 1.4044125 0.6600777777777778 1.3763583333333334 0.6878333333333333 1.3419750000000001 0.693861111111111 1.3265916666666666 0.5876888888888889 1.2650541666666666 0.5707944444444444 1.2415291666666666 0.5140888888888889 1.2457916666666666 0.5 1.4113291666666667 0.5
0 1.6666666666666667 0.7068111111111111 1.6568833333333333 0.7179944444444445 1.5736291666666666 0.7300611111111112 1.4777083333333332 0.6769722222222222 1.4523708333333334 0.6576666666666666 1.4143666666666665 0.5225333333333333 1.4135625 0.5 1.6666666666666667 0.5
0 0.7764041666666667 0.7300611111111112 0.7809291666666667 0.7626388888888889 0.8623708333333333 0.7529833333333333 0.8886125 0.8145166666666667 0.9383833333333332 0.8048666666666667 0.9537666666666667 0.8724333333333334 0.9447166666666666 0.9773999999999999 0.9311583333333334 1.0 0.6953916666666667 1.0 0.6949625 0.9737833333333333 0.6524333333333333 0.9629222222222222 0.6415708333333333 0.89415 0.6415708333333333 0.8422666666666667 0.65605 0.7795277777777778 0.669625 0.7155833333333333
0 0.42620416666666666 0.5732111111111111 0.35562083333333333 0.5901000000000001 0.3158041666666667 0.6673222222222222 0.23798333333333332 0.6793833333333333 0.23617083333333333 0.6793833333333333 0.13120416666666668 0.6890388888888889 0.12939166666666665 0.6069944444444444 0.1511125 0.5346 0.18187916666666668 0.5056444444444445 0.25065 0.41394444444444445 0.319425 0.36085555555555554 0.39181666666666665 0.33672777777777774 0.40810416666666666 0.36809444444444445 0.42620416666666666 0.4404888888888889
1 0.626875 0.25823888888888885 0.7725291666666667 0.7250833333333333 0.7333166666666667 0.7362833333333334 0.5792583333333333 0.29185555555555553
1 0.9574 0.17981111111111112 0.7865333333333333 0.7064055555555556 0.7473208333333333 0.63545 0.9293875 0.17234444444444444
0 0.31218333333333337 0.17987222222222224 0.37372083333333334 0.21848333333333333 0.393625 0.30535555555555555 0.3501916666666667 0.3632722222222222 0.2814166666666667 0.3898111111111111 0.21445416666666667 0.5032277777777778 0.15292083333333334 0.5635555555555556 0.08052916666666668 0.5635555555555556 0.024425 0.5152944444444445 0.002704166666666667 0.3439666666666667 0.06242916666666667 0.21365555555555554 0.17825833333333332 0.17263333333333333 0.19816666666666669 0.09541666666666668 0.2759875 0.10265555555555557
0 0.9401916666666666 0.008544444444444445 0.9456208333333334 0.056805555555555554 0.8913291666666667 0.20159444444444444 0.8442708333333333 0.20641666666666666 0.7881666666666667 0.1219611111111111 0.7465416666666667 0.09541666666666668 0.6669083333333333 0.0809388888888889 0.6312041666666667 0.0 0.9244166666666668 0.0
1 0.48962500000000003 0.19475 0.44760833333333333 0.20222222222222222 0.416325 0.0 0.46016666666666667 0.0
11 changes: 8 additions & 3 deletions nbs/example_data/tiles/labels/R0C3.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
0 1.1604999999999999 1.3719444444444444 1.1206874999999998 1.306788888888889 1.1025874999999998 1.3743555555555556 1.0645833333333334 1.3381611111111111 1.0 1.2565833333333334 1.0 1.0297888888888889 1.0482916666666666 0.9472388888888889 1.1152583333333332 0.94 1.1666666666666667 0.94 1.1666666666666667 1.3226277777777777
0 1.0700125 0.8362388888888889 1.1315458333333335 0.8651944444444445 1.1315458333333335 0.9206944444444444 1.0682 0.94 1.0247666666666666 0.9834333333333334 1.0 1.0267055555555555 1.0 0.6845944444444445 1.0935375 0.74695
0 1.1666666666666667 0.7068111111111111 1.1568833333333333 0.7179944444444445 1.0736291666666666 0.7300611111111112 1.0 0.6893111111111111 1.0 0.5 1.1666666666666667 0.5
0 0.805775 0.9520666666666667 0.7894875 0.8869111111111111 0.8455916666666667 0.8072777777777778 0.8220666666666666 0.7493666666666666 0.8727416666666666 0.6769722222222222 0.9559916666666666 0.6552555555555556 1.0 0.6845944444444445 1.0 1.0 0.831925 1.0
0 0.8899333333333334 0.45979444444444445 0.9125583333333334 0.46944444444444444 0.9098416666666667 0.5370111111111111 0.9170791666666667 0.6130222222222221 0.9044125 0.6600777777777778 0.8763583333333334 0.6878333333333333 0.841975 0.693861111111111 0.8265916666666667 0.5876888888888889 0.7650541666666667 0.5707944444444444 0.7415291666666667 0.5140888888888889 0.7623416666666666 0.44531666666666664 0.8093958333333333 0.40670555555555554 0.8709291666666666 0.41032222222222225
0 1.0 0.15057222222222222 1.0 0.6893111111111111 0.9777083333333334 0.6769722222222222 0.9523708333333333 0.6576666666666666 0.9143666666666667 0.5225333333333333 0.9107458333333334 0.42118333333333335 0.8763583333333334 0.31500555555555554 0.8998875000000001 0.2715722222222222 0.9397041666666667 0.17022222222222222
0 0.2764041666666667 0.7300611111111112 0.2809291666666667 0.7626388888888889 0.3623708333333333 0.7529833333333333 0.38861249999999997 0.8145166666666667 0.43838333333333335 0.8048666666666667 0.45376666666666665 0.8724333333333334 0.44471666666666665 0.9773999999999999 0.4311583333333333 1.0 0.19539166666666666 1.0 0.19496249999999998 0.9737833333333333 0.15243333333333334 0.9629222222222222 0.1415708333333333 0.89415 0.1415708333333333 0.8422666666666667 0.15605 0.7795277777777778 0.169625 0.7155833333333333
1 0.126875 0.25823888888888885 0.27252916666666666 0.7250833333333333 0.23331666666666667 0.7362833333333334 0.07925833333333333 0.29185555555555553
1 0.4574 0.17981111111111112 0.28653333333333336 0.7064055555555556 0.24732083333333332 0.63545 0.4293875 0.17234444444444444
0 0.44019166666666665 0.008544444444444445 0.4456208333333333 0.056805555555555554 0.3913291666666667 0.20159444444444444 0.34427083333333336 0.20641666666666666 0.2881666666666666 0.1219611111111111 0.2465416666666667 0.09541666666666668 0.16690833333333333 0.0809388888888889 0.13120416666666668 0.0 0.42441666666666666 0.0
0 0.5587375 0.02061111111111111 0.5139916666666667 0.0 0.5775833333333333 0.0
Loading

0 comments on commit d11e13b

Please sign in to comment.