@@ -27,7 +27,7 @@ def edge_only():
27
27
|
28
28
"""
29
29
edge = LineString ([(0 , 0 ), (0 , 2 )])
30
- edges = GeoDataFrame ([{ " geometry" : edge } ])
30
+ edges = GeoDataFrame (geometry = [ edge ])
31
31
return snkit .Network (edges = edges )
32
32
33
33
@@ -40,7 +40,7 @@ def nodes_only():
40
40
"""
41
41
a = Point ((0 , 0 ))
42
42
b = Point ((0 , 2 ))
43
- nodes = GeoDataFrame ([{ " geometry" : a }, { "geometry" : b } ])
43
+ nodes = GeoDataFrame (geometry = [ a , b ])
44
44
return snkit .Network (nodes = nodes )
45
45
46
46
@@ -54,8 +54,8 @@ def connected():
54
54
a = Point ((0 , 0 ))
55
55
b = Point ((0 , 2 ))
56
56
edge = LineString ([a , b ])
57
- edges = GeoDataFrame ([{ " geometry" : edge } ])
58
- nodes = GeoDataFrame ([{ " geometry" : a }, { "geometry" : b } ])
57
+ edges = GeoDataFrame (geometry = [ edge ])
58
+ nodes = GeoDataFrame (geometry = [ a , b ])
59
59
return snkit .Network (edges = edges , nodes = nodes )
60
60
61
61
@@ -69,8 +69,8 @@ def misaligned():
69
69
edge = LineString ([(0 , 0 ), (0 , 2 )])
70
70
a = Point ((0.5 , 0 ))
71
71
b = Point ((- 0.5 , 2 ))
72
- edges = GeoDataFrame ([{ " geometry" : edge } ])
73
- nodes = GeoDataFrame ([{ " geometry" : a }, { "geometry" : b } ])
72
+ edges = GeoDataFrame (geometry = [ edge ])
73
+ nodes = GeoDataFrame (geometry = [ a , b ])
74
74
return snkit .Network (edges = edges , nodes = nodes )
75
75
76
76
@@ -89,8 +89,8 @@ def unsplit():
89
89
d = Point ((1 , 1 ))
90
90
ab = LineString ([a , b ])
91
91
cd = LineString ([c , d ])
92
- edges = GeoDataFrame ([ab , cd ], columns = [ "geometry" ])
93
- nodes = GeoDataFrame ([a , b , c , d ], columns = [ "geometry" ])
92
+ edges = GeoDataFrame (geometry = [ab , cd ])
93
+ nodes = GeoDataFrame (geometry = [a , b , c , d ])
94
94
return snkit .Network (edges = edges , nodes = nodes )
95
95
96
96
@@ -107,11 +107,11 @@ def split():
107
107
b = Point ((0 , 2 ))
108
108
c = Point ((0 , 1 ))
109
109
d = Point ((1 , 1 ))
110
- nodes = GeoDataFrame ([a , b , c , d ], columns = [ "geometry" ])
110
+ nodes = GeoDataFrame (geometry = [a , b , c , d ])
111
111
ac = LineString ([a , c ])
112
112
cb = LineString ([c , b ])
113
113
cd = LineString ([c , d ])
114
- edges = GeoDataFrame ([ac , cb , cd ], columns = [ "geometry" ])
114
+ edges = GeoDataFrame (geometry = [ac , cb , cd ])
115
115
return snkit .Network (edges = edges , nodes = nodes )
116
116
117
117
@@ -128,11 +128,11 @@ def split_with_ids():
128
128
b = Point ((0 , 2 ))
129
129
c = Point ((0 , 1 ))
130
130
d = Point ((1 , 1 ))
131
- nodes = GeoDataFrame (data = {"geometry " : [a , b , c , d ], "id" : [ "a" , "b" , "c" , "d" ]} )
131
+ nodes = GeoDataFrame (data = {"id " : ["a" , "b" , "c" , "d" ]}, geometry = [ a , b , c , d ] )
132
132
ac = LineString ([a , c ])
133
133
cb = LineString ([c , b ])
134
134
cd = LineString ([c , d ])
135
- edges = GeoDataFrame (data = {"geometry " : [ac , cb , cd ], "id" : [ 1 , 2 , 3 ]} )
135
+ edges = GeoDataFrame (data = {"id " : [1 , 2 , 3 ]}, geometry = [ ac , cb , cd ] )
136
136
return snkit .Network (edges = edges , nodes = nodes )
137
137
138
138
@@ -149,10 +149,10 @@ def unsplit_intersection():
149
149
b = Point ((1 , 2 ))
150
150
c = Point ((0 , 1 ))
151
151
d = Point ((2 , 1 ))
152
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d ]} )
152
+ nodes = GeoDataFrame (geometry = [a , b , c , d ])
153
153
ab = LineString ([a , b ])
154
154
cd = LineString ([c , d ])
155
- edges = GeoDataFrame (data = { " geometry" : [ab , cd ]} )
155
+ edges = GeoDataFrame (geometry = [ab , cd ])
156
156
return snkit .Network (edges = edges , nodes = nodes )
157
157
158
158
@@ -170,12 +170,12 @@ def split_intersection():
170
170
c = Point ((0 , 1 ))
171
171
d = Point ((2 , 1 ))
172
172
x = Point ((1 , 1 ))
173
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , x ]} )
173
+ nodes = GeoDataFrame (geometry = [a , b , c , d , x ])
174
174
ax = LineString ([a , x ])
175
175
xb = LineString ([x , b ])
176
176
cx = LineString ([c , x ])
177
177
xd = LineString ([x , d ])
178
- edges = GeoDataFrame (data = { " geometry" : [ax , xb , cx , xd ]} )
178
+ edges = GeoDataFrame (geometry = [ax , xb , cx , xd ])
179
179
return snkit .Network (edges = edges , nodes = nodes )
180
180
181
181
@@ -194,11 +194,11 @@ def unsplit_multiple_intersections():
194
194
d = Point ((3 , 1 ))
195
195
e = Point ((2 , 0 ))
196
196
f = Point ((2 , 2 ))
197
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , e , f ]} )
197
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e , f ])
198
198
ab = LineString ([a , b ])
199
199
cd = LineString ([c , d ])
200
200
ef = LineString ([e , f ])
201
- edges = GeoDataFrame (data = { " geometry" : [ab , cd , ef ]} )
201
+ edges = GeoDataFrame (geometry = [ab , cd , ef ])
202
202
return snkit .Network (edges = edges , nodes = nodes )
203
203
204
204
@@ -219,15 +219,15 @@ def split_multiple_intersections():
219
219
f = Point ((2 , 2 ))
220
220
x = Point ((1 , 1 ))
221
221
y = Point ((2 , 1 ))
222
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , e , f , x , y ]} )
222
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e , f , x , y ])
223
223
ax = LineString ([a , x ])
224
224
xb = LineString ([x , b ])
225
225
cx = LineString ([c , x ])
226
226
xy = LineString ([x , y ])
227
227
yd = LineString ([y , d ])
228
228
ey = LineString ([e , y ])
229
229
yf = LineString ([y , f ])
230
- edges = GeoDataFrame (data = { " geometry" : [ax , xb , cx , xy , yd , ey , yf ]} )
230
+ edges = GeoDataFrame (geometry = [ax , xb , cx , xy , yd , ey , yf ])
231
231
return snkit .Network (edges = edges , nodes = nodes )
232
232
233
233
@@ -246,10 +246,10 @@ def unsplit_overlapping_lines():
246
246
d = Point ((2 , 2 ))
247
247
# x is just a construction point
248
248
x = Point ((1 , 1 ))
249
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d ]} )
249
+ nodes = GeoDataFrame (geometry = [a , b , c , d ])
250
250
ac = LineString ([a , c ])
251
251
bd = LineString ([b , x , c , d ])
252
- edges = GeoDataFrame (data = { " geometry" : [ac , bd ]} )
252
+ edges = GeoDataFrame (geometry = [ac , bd ])
253
253
return snkit .Network (edges = edges , nodes = nodes )
254
254
255
255
@@ -267,13 +267,13 @@ def split_overlapping_lines():
267
267
c = Point ((1 , 2 ))
268
268
d = Point ((2 , 2 ))
269
269
x = Point ((1 , 1 ))
270
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , x ]} )
270
+ nodes = GeoDataFrame (geometry = [a , b , c , d , x ])
271
271
ax = LineString ([a , x ])
272
272
bx = LineString ([b , x ])
273
273
xc = LineString ([x , c ])
274
274
cd = LineString ([c , d ])
275
275
# note that there are two edges 'xc'
276
- edges = GeoDataFrame (data = { " geometry" : [ax , xc , bx , xc , cd ]} )
276
+ edges = GeoDataFrame (geometry = [ax , xc , bx , xc , cd ])
277
277
return snkit .Network (edges = edges , nodes = nodes )
278
278
279
279
@@ -296,10 +296,10 @@ def unsplit_heterogeneous_intersection():
296
296
d = Point ((3 , 1 ))
297
297
e = Point ((0 , 1 ))
298
298
f = Point ((4 , 1 ))
299
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , e , f ]} )
299
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e , f ])
300
300
ad = LineString ([a , b , c , y , d ])
301
301
ef = LineString ([e , f ])
302
- edges = GeoDataFrame (data = { " geometry" : [ad , ef ]} )
302
+ edges = GeoDataFrame (geometry = [ad , ef ])
303
303
return snkit .Network (edges = edges , nodes = nodes )
304
304
305
305
@@ -321,7 +321,7 @@ def split_heterogeneous_intersection():
321
321
x = Point ((1 , 1 ))
322
322
y = Point ((2 , 1 ))
323
323
# note: this is order sensitive although it shouldn't matter
324
- nodes = GeoDataFrame (data = { " geometry" : [a , b , c , d , e , f , y , x ]} )
324
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e , f , y , x ])
325
325
ax = LineString ([a , x ])
326
326
xb = LineString ([x , b ])
327
327
bc = LineString ([b , c ])
@@ -331,7 +331,7 @@ def split_heterogeneous_intersection():
331
331
xy = LineString ([x , y ])
332
332
df = LineString ([d , f ])
333
333
# note that there are two edges 'yd'
334
- edges = GeoDataFrame (data = { " geometry" : [ax , xb , bc , cy , yd , ex , xy , yd , df ]} )
334
+ edges = GeoDataFrame (geometry = [ax , xb , bc , cy , yd , ex , xy , yd , df ])
335
335
return snkit .Network (edges = edges , nodes = nodes )
336
336
337
337
@@ -350,9 +350,9 @@ def unsplit_self_intersection():
350
350
b = Point ((1 , 2 ))
351
351
c = Point ((2 , 2 ))
352
352
d = Point ((2 , 1 ))
353
- nodes = GeoDataFrame (data = { " geometry" : [a , e ]} )
353
+ nodes = GeoDataFrame (geometry = [a , e ])
354
354
ae = LineString ([a , b , c , d , e ])
355
- edges = GeoDataFrame (data = { " geometry" : [ae ]} )
355
+ edges = GeoDataFrame (geometry = [ae ])
356
356
return snkit .Network (edges = edges , nodes = nodes )
357
357
358
358
@@ -372,11 +372,11 @@ def split_self_intersection():
372
372
b = Point ((1 , 2 ))
373
373
c = Point ((2 , 2 ))
374
374
d = Point ((2 , 1 ))
375
- nodes = GeoDataFrame (data = { " geometry" : [a , e , x ]} )
375
+ nodes = GeoDataFrame (geometry = [a , e , x ])
376
376
ax = LineString ([a , x ])
377
377
xx = LineString ([x , b , c , d , x ])
378
378
xe = LineString ([x , e ])
379
- edges = GeoDataFrame (data = { " geometry" : [ax , xx , xe ]} )
379
+ edges = GeoDataFrame (geometry = [ax , xx , xe ])
380
380
return snkit .Network (edges = edges , nodes = nodes )
381
381
382
382
@@ -393,10 +393,10 @@ def gap():
393
393
b = Point ((0 , 2 ))
394
394
c = Point ((0.1 , 1 ))
395
395
d = Point ((1 , 1 ))
396
- nodes = GeoDataFrame ([a , b , c , d ], columns = [ "geometry" ])
396
+ nodes = GeoDataFrame (geometry = [a , b , c , d ])
397
397
ab = LineString ([a , b ])
398
398
cd = LineString ([c , d ])
399
- edges = GeoDataFrame ([ab , cd ], columns = [ "geometry" ])
399
+ edges = GeoDataFrame (geometry = [ab , cd ])
400
400
return snkit .Network (edges = edges , nodes = nodes )
401
401
402
402
@@ -414,12 +414,12 @@ def bridged():
414
414
c = Point ((0.1 , 1 ))
415
415
d = Point ((1 , 1 ))
416
416
e = Point ((0 , 1 ))
417
- nodes = GeoDataFrame ([a , b , c , d , e ], columns = [ "geometry" ])
417
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e ])
418
418
ae = LineString ([a , e ])
419
419
eb = LineString ([e , b ])
420
420
cd = LineString ([c , d ])
421
421
ce = LineString ([c , e ])
422
- edges = GeoDataFrame ([ae , eb , cd , ce ], columns = [ "geometry" ])
422
+ edges = GeoDataFrame (geometry = [ae , eb , cd , ce ])
423
423
return snkit .Network (edges = edges , nodes = nodes )
424
424
425
425
@@ -437,11 +437,11 @@ def two_components(gap):
437
437
c = Point ((1 , 1 ))
438
438
d = Point ((2 , 1 ))
439
439
e = Point ((3 , 1 ))
440
- nodes = GeoDataFrame ([a , b , c , d , e ], columns = [ "geometry" ])
440
+ nodes = GeoDataFrame (geometry = [a , b , c , d , e ])
441
441
ab = LineString ([a , b ])
442
442
cd = LineString ([c , d ])
443
443
de = LineString ([d , e ])
444
- edges = GeoDataFrame ([ab , cd , de ], columns = [ "geometry" ])
444
+ edges = GeoDataFrame (geometry = [ab , cd , de ])
445
445
network = snkit .Network (edges = edges , nodes = nodes )
446
446
network = snkit .network .add_ids (network )
447
447
network = snkit .network .add_topology (network )
@@ -723,7 +723,8 @@ def test_passing_slice():
723
723
ac = LineString ([a , c ])
724
724
cb = LineString ([c , b ])
725
725
cd = LineString ([c , d ])
726
- edges = GeoDataFrame ([ac , cb , cd ], columns = ["geometry" ])
726
+ edges = GeoDataFrame (geometry = [ac , cb , cd ])
727
+
727
728
network = snkit .Network (edges = edges [1 :])
728
729
with_endpoints = snkit .network .add_endpoints (network )
729
730
with_ids = snkit .network .add_ids (with_endpoints )
@@ -745,9 +746,7 @@ def test_drop_duplicate_geometries():
745
746
cb = LineString ([c , b ])
746
747
# use an index that doesn't start from 0 to check our indexing hygiene
747
748
index = pd .Index ([2 , 3 , 5 , 7 , 11 , 13 ])
748
- gdf_with_dupes = GeoDataFrame (
749
- index = index , data = [a , a , b , ac , ac , cb ], columns = ["geometry" ]
750
- )
749
+ gdf_with_dupes = GeoDataFrame (index = index , geometry = [a , a , b , ac , ac , cb ])
751
750
deduped = snkit .network .drop_duplicate_geometries (gdf_with_dupes )
752
751
# we should have just the first of each duplicate item
753
752
assert (deduped .index == pd .Index ([2 , 5 , 7 , 13 ])).all ()
@@ -771,3 +770,13 @@ def test_to_networkx(connected):
771
770
def test_add_component_ids (two_components ):
772
771
labelled = snkit .network .add_component_ids (two_components )
773
772
assert all (labelled .edges .component_id == pd .Series ([2 , 1 , 1 ]))
773
+
774
+
775
+ def test_matching_gdf_from_geoms (edge_only ):
776
+ expected = edge_only .edges .copy ()
777
+ gdf = edge_only .edges .copy ()
778
+ geoms = gdf .geometry
779
+ gdf ["a" ] = range (len (gdf ))
780
+ gdf ["b" ] = "abc"
781
+ actual = snkit .network .matching_gdf_from_geoms (gdf , geoms )
782
+ assert_frame_equal (actual , expected )
0 commit comments