An example of .shp file
In[]:=
data=Import["http://exampledata.wolfram.com/usamap.zip","Data"];
Dimensions
In[]:=
data//Dimensions
Out[]=
{2,4}
Looking at keys:
data〚1〛//Association//Keys
Out[]=
{LayerName,Geometry,Labels,LabeledData}
Looking at layer names:
In[]:=
Lookup["LayerName"]@data
Out[]=
{railroads,states}
Looking at labels:
In[]:=
Lookup["Labels"]@data
Out[]=
{{FNODE_,TNODE_,LENGTH,RAILRDL020,RROWNER1,RROWNER2,RROWNER3,MARK1,MARK2,MARK3},{AREA,PERIMETER,STATESP020,STATE,STATE_FIPS,ORDER_ADM,MONTH_ADM,DAY_ADM,YEAR_ADM}}
Looking at labelled data:
In[]:=
Lookup["LabeledData"]@data
Out[]=
{{FNODE_{7,8,10,8,14,12,15,15,18,19,14,22,23,25,24,26,27,25,30,33,29,35,37,37,37,37,38,34,41,34,44,43,17,31,
⋯8490⋯
,6432,4034,6434,6435,4606,6436,4711,6437,4747,6439,5015,6440,5364,6441,6442,4994,6443,5164,6444,6445,6446,6447,6448,5669,6449,5583,6450,5749,6451,5934,6452,6453,6106,6454},
⋯9⋯
},
⋯1⋯
}
large output
show less
show more
show all
set size limit...
Note labeled data of railroads and states are note the same:
In[]:=
Length/@Lookup["LabeledData"]@data
Out[]=
{10,9}
Create and association of list of association:
In[]:=
assoc=AssociationThread[Lookup["LayerName"]@data,#]&@Apply[Association,Transpose/@Apply[Thread[#1#2]&,Lookup["LabeledData"][data],{2}],{2}];
Create and association of list of association:
In[]:=
geometry=First/@(Map[<|"Geometry"#|>&,Lookup[{"Geometry"}]@data,{3}]//AssociationThread[Lookup["LayerName"]@data,#]&);
Join two associations and generate dataset for railroads:
In[]:=
Join@@@Transpose[Lookup["railroads"][{assoc,geometry}]]//Dataset
Out[]=
FNODE_
TNODE_
LENGTH
RAILRDL020
RROWNER1
RROWNER2
RROWNER3
MARK1
MARK2
MARK3
7
8
0.245668
6
Bangor and Aroostook Railroad Company
BAR
8
9
0.321561
7
Bangor and Aroostook Railroad Company
BAR
10
11
0.148595
8
Burlington Northern and Santa Fe Railway
Company
BNSF
8
12
0.463799
9
Bangor and Aroostook Railroad Company
BAR
14
13
0.962944
10
Burlington Northern and Santa Fe Railway
Company
BNSF
12
15
0.590369
11
Bangor and Aroostook Railroad Company
BAR
15
16
0.323529
12
Bangor and Aroostook Railroad Company
BAR
15
17
0.350001
13
Bangor and Aroostook Railroad Company
BAR
18
17
0.0822385
14
Bangor and Aroostook Railroad Company
BAR
19
20
0.113505
15
Burlington Northern and Santa Fe Railway
Company
BNSF
14
20
0.483141
16
Burlington Northern and Santa Fe Railway
Company
BNSF
22
21
0.450157
17
Burlington Northern and Santa Fe Railway
Company
BNSF
23
24
0.0593752
18
Burlington Northern and Santa Fe Railway
Company
BNSF
25
23
0.0702975
19
Burlington Northern and Santa Fe Railway
Company
BNSF
24
25
0.045303
20
Burlington Northern and Santa Fe Railway
Company
BNSF
26
27
0.760763
21
Burlington Northern and Santa Fe Railway
Company
BNSF
27
28
0.557414
22
Burlington Northern and Santa Fe Railway
Company
BNSF
25
29
0.114372
23
Burlington Northern and Santa Fe Railway
Company
BNSF
30
31
1.05735
24
Canadian American Railroad Company
New Brunswick Southern Railway
Company, Limited
CDAC
NBSR
33
32
0.531375
25
Union Pacific Railroad Company
UP
rows 1–20 of 8558
columns 1–10 of 11
​
Join two associations and generate dataset for states:
In[]:=
Join@@@Transpose[Lookup["states"][{assoc,geometry}]]//Dataset
Out[]=
AREA
PERIMETER
STATESP020
STATE
STATE_FIPS
ORDER_ADM
MONTH_ADM
DAY_ADM
YEAR_ADM
Geometry
25.537
32.498
1262.0
Minnesota
27
32
May
11.0
1858.0
…
0.874
36.371
1263.0
Washington
53
42
November
11.0
1889.0
…
0.002
0.181
1264.0
Washington
53
42
November
11.0
1889.0
…
20.663
43.424
1265.0
Washington
53
42
November
11.0
1889.0
…
45.093
35.4
1266.0
Montana
30
41
November
8.0
1889.0
…
24.457
29.687
1267.0
Idaho
16
43
July
3.0
1890.0
…
21.843
23.227
1268.0
North Dakota
38
39
November
2.0
1889.0
…
0.0
0.065
1269.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.098
1270.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.124
1271.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.049
1272.0
Washington
53
42
November
11.0
1889.0
…
0.003
0.366
1273.0
Washington
53
42
November
11.0
1889.0
…
0.001
0.207
1274.0
Washington
53
42
November
11.0
1889.0
…
0.001
0.145
1275.0
Washington
53
42
November
11.0
1889.0
…
0.018
1.269
1276.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.033
1277.0
Washington
53
42
November
11.0
1889.0
…
0.001
0.259
1278.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.068
1279.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.049
1280.0
Washington
53
42
November
11.0
1889.0
…
0.0
0.124
1281.0
Washington
53
42
November
11.0
1889.0
…
rows 1–20 of 1580
​