-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgeoframe.sthlp
2419 lines (1973 loc) · 100 KB
/
geoframe.sthlp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{smcl}
{* 08sep2024}{...}
{vieweralsosee "geoplot" "help geoplot"}{...}
{vieweralsosee "[D] frames" "help frames"}{...}
{vieweralsosee "[SP] spshape2dta" "help spshape2dta"}{...}
{viewerjumpto "Syntax" "geoframe##syntax"}{...}
{viewerjumpto "Description" "geoframe##description"}{...}
{viewerjumpto "Subcommands" "geoframe##subcommands"}{...}
{viewerjumpto "Examples" "geoframe##examples"}{...}
{viewerjumpto "Author" "geoframe##author"}{...}
{hi:help geoframe}{...}
{right:{browse "https://github.com/benjann/geoplot/"}}
{hline}
{title:Title}
{pstd}{hi:geoframe} {hline 2} Command to prepare data for {helpb geoplot}
{marker syntax}{...}
{title:Syntax}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {it:{help geoframe##subcmd:subcommand}} [{it:...}]
{synoptset 15 tabbed}{...}
{marker subcmd}{synopthdr:subcommand}
{synoptline}
{syntab :Main}
{synopt :{helpb geoframe##create:{ul:cr}eate}}load data into geoframe or declare
current frame as geoframe
{p_end}
{synopt :{helpb geoframe##use:use}}load geoframe from disk
{p_end}
{synopt :{helpb geoframe##save:save}}save geoframe to disk
{p_end}
{synopt :{helpb geoframe##describe:{ul:d}escribe}}describe geoframe
{p_end}
{synopt :{helpb geoframe##set:set}}update geoframe settings of current frame
{p_end}
{synopt :{helpb geoframe##get:get}}retrieve geoframe settings from current frame
{p_end}
{syntab :Manage shapes}
{p2col :{helpb geoframe##query:{ul:q}uery}}obtain information on units and shapes in geoframe
{p_end}
{p2col :{helpb geoframe##generate:{ul:g}enerate}}generate helper variables related to shapes
{p_end}
{p2col :{helpb geoframe##select:{ul:sel}ect}}select units and shapes
{p_end}
{syntab :Manipulate shapes}
{p2col :{helpb geoframe##project:project}}apply projection
{p_end}
{p2col :{helpb geoframe##rescale:rescale}}rescale coordinates
{p_end}
{p2col :{helpb geoframe##clip:clip}}clip shapes using convex window
{p_end}
{p2col :{helpb geoframe##rclip:rclip}}clip shapes using rectangular window
{p_end}
{p2col :{helpb geoframe##simplify:simplify}}simplify (generalize) shapes
{p_end}
{p2col :{helpb geoframe##refine:refine}}add extra points to straight lines
{p_end}
{syntab :Generate shapes}
{p2col :{helpb geoframe##raster:raster}}generate raster and store in new frame
{p_end}
{p2col :{helpb geoframe##grid:grid}}store grid lines in new frame
{p_end}
{p2col :{helpb geoframe##tissot:tissot}}store Tissot's indicatrices in new frame
{p_end}
{p2col :{helpb geoframe##bbox:{ul:bb}ox}}store bounding box, enclosing circle, or convex hull in new frame
{p_end}
{p2col :{helpb geoframe##bshare:bshare}}store shared borders or outlines in new frame
{p_end}
{p2col :{helpb geoframe##symbol:{ul:sym}bol}}generate symbol shapes and store in new frame
{p_end}
{p2col :{helpb geoframe##symboli:symboli}}{cmd:symbol} with immediate arguments
{p_end}
{syntab :Spatial join}
{p2col :{helpb geoframe##collapse:collapse}}collapse points from other frame into current frame
{p_end}
{p2col :{helpb geoframe##contract:contract}}contract points from other frame into current frame
{p_end}
{p2col :{helpb geoframe##spjoin:spjoin}}match points in current frame to shapes from other frame
{p_end}
{syntab :Spatial smoothing}
{p2col :{helpb geoframe##spsmooth:spsmooth}}apply spatial smoothing to an attribute
{p_end}
{syntab :Merge and append}
{p2col :{helpb geoframe##copy:copy}}copy and merge variables from other frame
{p_end}
{p2col :{helpb geoframe##append:{ul:ap}pend}}append observations from other frame
{p_end}
{p2col :{helpb geoframe##stack:stack}}combine multiple geoframes into one
{p_end}
{syntab :Further utilities}
{p2col :{helpb geoframe##rename:{ul:ren}ame}}rename geoframe
{p_end}
{p2col :{helpb geoframe##duplicate:{ul:dup}licate}}duplicate geoframe
{p_end}
{p2col :{helpb geoframe##link:{ul:l}ink}}link shape frame to current frame
{p_end}
{p2col :{helpb geoframe##relink:{ul:rel}ink}}fix linkage variable after modifying data
{p_end}
{p2col :{helpb geoframe##unlink:{ul:unl}ink}}unlink shape frame from current frame
{p_end}
{p2col :{helpb geoframe##clean:{ul:cl}ean}}delete unmatched/empty shapes and units
{p_end}
{p2col :{helpb geoframe##attach:{ul:at}tach}}attach attribute frame to current frame using aliases (Stata 18 required)
{p_end}
{p2col :{helpb geoframe##detach:{ul:det}ach}}detach attribute frame from current frame (Stata 18 required)
{p_end}
{syntab :Convert source}
{p2col :{helpb geoframe##translate:{ul:tr}anslate}}translate shapefile source to Stata format
{p_end}
{p2col :{helpb geoframe##translate:convert}}synonym for {cmd:translate}
{p_end}
{p2col :{helpb geoframe##import:import}}translate and import shapefile source
{p_end}
{synoptline}
{marker description}{...}
{title:Description}
{pstd}
{cmd:geoframe} prepares data for use by {helpb geoplot}.
{pstd}
Some of the functions used by {cmd:geoplot} and {helpb geoframe} are provided
in Mata library lgeoplot.mlib. See {helpb lgeoplot_source} for source and
minimal documentation of these functions.
{marker subcommands}{...}
{title:Subcommands}
{marker create}{...}
{dlgtab:geoframe create}
{pmore}
{help geoframe##create1:Syntax 1: Create geoframe from Stata source}
{p_end}
{pmore}
{help geoframe##create2:Syntax 2: Create geoframe from ESRI or GeoJSON source}
{p_end}
{pmore}
{help geoframe##create3:Syntax 3: Declare current frame as geoframe}
{p_end}
{marker create1}{...}
{pstd}
{ul:Syntax 1: Create geoframe from Stata source}
{p 8 15 2}
{cmd:geoframe} {cmdab:cr:eate} [{it:name}] [{cmd:using}] {it:{help filename}}
[{cmd:,} {cmd:dta} {it:options} ]
{pstd}
loads the data from {it:filename} into a new frame called
{it:name}, where {it:filename} is a Stata dataset, and declares the
created frame as a geoframe. If {it:name} is omitted, {it:basename}
is used as the name of the created frame, where {it:basename} is the base
name of {it:filename}. {it:filename} can be any valid Stata
dataset, but typically it is an attribute file created by
{helpb geoframe##translate:geoframe translate}
(or, e.g., by command {helpb spshape2dta}). Options are as follows.
{pstd}
{cmd:dta} enforces Syntax 1. Suffix {cmd:.dta} in {it:filename} implies
{cmd:dta}.
{phang}
{opt replace} allows replacing existing frames.
{phang}
{opt nos:hp} deactivates automatic loading of a shape file. By default,
if a file called {it:basename}{cmd:_shp.dta} is available in the
same folder as {it:filename}, it will be loaded into a secondary frame
called {it:name}{cmd:_shp} and the two frames will be linked. Type
{cmd:noshp} to suppress this behavior. Data types
{cmd:shape} and {cmd:pc} imply {cmd:noshp}; see option
{helpb geoframe##create_type:type()}.
{phang}
{opt s:hp(spec)} specifies a custom shape file to be loaded along with the main
file. The syntax of {it:spec} is
{p 12 15 2}
[[{it:shpname}] [{cmd:using}] {it:shpfilename} ] [{cmd:,} {it:suboptions} ]
{pmore}
where {it:shpfilename} specifies the file and {it:shpname} provides a name for the
shape frame. If {it:shpfilename} is specified without path, {cmd:geoframe}
looks for the file in the same folder as the main file. If {it:shpname} is
omitted, {it:name}{cmd:_shp} is used as the name for the shape
frame. {it:suboptions} are {cmd:type()}, {cmd:id()}, {cmd:coordinates()},
{cmd:centroids()}, {cmd:area()}, {cmd:sid()}, {cmd:pid()}, and
{cmd:plevel()} as described below.
{phang}
{opt nodrop} prevents dropping unmatched units and empty shapes
when linking the attribute frame and the shape frame (i.e., do not apply
{helpb geoframe##clean:geoframe clean}).
{phang}
{opt nocl:ean} is a synonym for {cmd:nodrop}.
{phang}
{opt nodes:cribe} suppresses the description of the frame that is displayed
by default.
{phang}
{opt cur:rent} makes the created frame the current frame.
{marker create_type}{...}
{phang}
{opt t:ype(type)} declares the type of data included in the
frame. {it:type} may be {opt a:ttribute} (attribute data), {opt pc}
(paired-coordinate data), or {opt s:hape} (shape data). If {cmd:type()} is omitted,
{cmd:geoframe create} infers the type from context. To be precise, the rule is as
follows.{p_end}
{phang2}(1) If option {cmd:type()} is provided, use the specified type;{p_end}
{phang2}(2) else if option {cmd:shp()} is provided, impose type {cmd:attribute};{p_end}
{phang2}(3) else if the type is already set in {it:filename}, use the set type;{p_end}
{phang2}(4) else if four names are provided in option {cmd:coordinates()}, impose type {cmd:pc};{p_end}
{phang2}(5) else if a file called {it:basename}{cmd:_shp.dta} is available in the same folder as {it:filemame}, impose type {cmd:attribute};{p_end}
{phang2}(6) else if a unit ID is available and the ID is nonunique, impose type {cmd:shape};{p_end}
{phang2}(7) else impose type {cmd:attribute}.
{phang}
{opt f:eature(string)} declares the type of feature represented by the
units in the frame. For example, type {cmd:feature(water)} if the frame
contains data on lakes or rivers. {it:string} can be any text.
{phang}
{opt id(varname)} specifies the name of the unit ID. Default is {cmd:_ID}.
{phang}
{opt co:ordinates(X Y [X2 Y2])} specifies the names of the variables containing
the coordinates. The default depends on data type. It is {cmd:_X _Y} for data type {cmd:shape},
{cmd:_CX _CY} for data type {cmd:attribute}, and {cmd:_X1 _Y1 _X2 _Y2} for data type {cmd:pc}.
{phang}
{opt cen:troids(CX CY)} specifies the names of the variables containing
the centroids of the units. The default is {cmd:_CX _CY}
for data types {cmd:shape} and {cmd:pc}; for data type {cmd:attribute}, {cmd:centroids()}
is a synonym for {cmd:coordinates()}.
{phang}
{opt area(AREA)} specifies the name of the variable containing the sizes
of the units (i.e. the areas of the shapes). The default is {cmd:_AREA}.
{phang}
{opt sid(varname)} specifies the name of the within-unit sort ID. Default is
{cmd:shape_order}. This is only relevant for data of type {cmd:shape}
{phang}
{opt pid(varname)} specifies the name of the within-unit polygon ID. Default is
{cmd:_PID}. This is only relevant for data of type {cmd:shape}
{phang}
{opt pl:evel(varname)} specifies the name of the plot level ID (enclaves and exclaves). Default is
{cmd:_PLEVEL}. This is only relevant for data of type {cmd:shape}
{marker create2}{...}
{pstd}
{ul:Syntax 2: Create geoframe from ESRI or GeoJSON source}
{p 8 15 2}
{cmd:geoframe} {cmdab:cr:eate} [{it:name}] [{cmd:using}] {it:source}
[{cmd:,} {opt d:type(dtype)} {it:options} ]
{pstd}
imports an ESRI or GeoJSON shapefile source into an attribute
frame called {it:name} and a linked shape frame called
{it:name}{cmd:_shp}. {it:source} identifies the source to be imported. It
can be a filename with or without path (e.g. {cmd:shapefiles/source/world.shp}
or {cmd:world.geojson}), or it
can be a path without filename (e.g. {cmd:shapefiles/source/}), in which
case the topmost source in the specified folder will be imported. {it:source}
can also be a zip file, possibly including an internal path. For example, you can
specify {cmd:shapefiles/source/world.zip} to translate the source contained
in {cmd:world.zip}, {cmd:shapefiles/source/world.zip/50m/} to translate the
source in folder {cmd:50m} within {cmd:world.zip}, or
{cmd:shapefiles/source/world.zip/50m/lakes.shp} to translate {cmd:lakes.shp}
in folder {cmd:50m} within {cmd:world.zip}. Options are as follows.
{phang}
{opt dtype(dtype)} identifies the format of the source. {it:dtype} may be
{cmd:esri} (ESRI shapefile format), {cmd:shp} (synonym for {cmd:esri}),
{cmd:json} (GeoJSON format), or {cmdab:geoj:son} (synonym for
{cmd:json}). Suffix {cmd:.geojson} or {cmd:.json} in {it:source} implies
{cmd:dtype(geojson)}; else {cmd:dtype(esri)} is assumed.
{phang}
{cmd:allstring}, {cmd:gtype()}, {cmd:addmissing}, and {cmd:nodots} as
as described for {helpb geoframe##tr_json:geoframe translate json}, if the source
is in GeoJSON format.
{phang}
{cmd:replace}, {cmd:nodrop}, {cmd:noclean}, {cmd:nodescribe}, {cmd:current}, and
{cmd:feature()} as described for {help geoframe##create1:Syntax 1}.
{marker create3}{...}
{pstd}
{ul:Syntax 3: Declare current frame as geoframe}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmdab:cr:eate}
[{cmd:,} {it:options} ]
{pstd}
declares the current frame as a geoframe. {it:options} are as follows.
{phang}
{opt nos:hp} deactivates automatic linking of a shape frame. By default,
if a frame called {it:frame}{cmd:_shp} is in memory, it will be treated as
a shape frame to be linked to the current frame. Type
{cmd:noshp} to suppress this behavior. Data types
{cmd:shape} and {cmd:pc} imply {cmd:noshp}; see option
{helpb geoframe##create_type:type()}.
{phang}
{opt s:hp(spec)} specifies a custom shape frame to be linked to the current
frame. The syntax of {it:spec} is
{p 12 15 2}
[{it:shpname}] [{cmd:,} {it:suboptions} ]
{pmore}
where {it:shpname} is the name of the shape frame. The default for {it:shpname}
is {it:frame}{cmd:_shp}. {it:suboptions} are {cmd:type()},
{cmd:id()}, {cmd:coordinates()}, {cmd:centroids()},
{cmd:area()}, {cmd:sid()}, {cmd:pid()}, and {cmd:plevel()}
as described for {help geoframe##create1:Syntax 1}.
{phang}
{cmd:nodrop}, {cmd:noclean}, {cmd:nodescribe}, {cmd:type()},
{cmd:feature()}, {cmd:id()}, {cmd:coordinates()}, {cmd:centroids()},
{cmd:area()}, {cmd:sid()}, {cmd:pid()}, and {cmd:plevel()}
as described for {help geoframe##create1:Syntax 1}.
{marker use}{...}
{dlgtab:geoframe use}
{p 8 15 2}
{cmd:geoframe} {cmd:use} [{it:name}] [{cmd:using}] {it:{help filename}}
[{cmd:,} {it:options} ]
{pstd}
loads the data from {it:filename} into a new frame called
{it:name}, where {it:filename} is a Stata dataset that has been saved by
{helpb geoframe##save:geoframe save}. If {it:name} is omitted, {it:basename}
is used as the name of the created frame, where {it:basename} is the base
name of {it:filename}. {it:options} are as follows.
{phang}
{opt replace} allows replacing existing frames.
{phang}
{opt nos:hp} deactivates automatic loading of the shape file. By default,
if {it:filename} is an attribute file and a file
called {it:basename}{cmd:_shp.dta} is available in the same folder,
it will be loaded into a secondary frame called {it:name}{cmd:_shp} and the
two frames will be linked. Type {cmd:noshp} to load the attribute file only.
{phang}
{opt nodes:cribe} suppresses the description of the frame that is displayed
by default.
{phang}
{opt cur:rent} makes the created frame the current frame.
{pstd}
{cmd:geoframe use} is implemented as a wrapper for
{helpb geoframe##create:geoframe create}. Typing
{cmd:geoframe use} {it:filename} is equivalent to
{cmd:geoframe create} {it:filename}{cmd:, dta noclean}.
{marker save}{...}
{dlgtab:geoframe save}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}]
{cmd:geoframe} {cmd:save} [{it:{help filename}}] {ifin} [{cmd:,} {it:options} ]
{pstd}
saves the current frame on disk under the name {it:{help filename}} (with
extension {cmd:.dta}). If {it:filename} is omitted, {it:frame}{cmd:.dta} is
used, where {it:frame} is the name of the current frame. Use the {it:if} and
{it:in} qualifiers to
restrict the observations of the current frame to be saved (and include only
the shapes of the selected units in the shape file). {it:options} are as follows.
{phang}
{opt replace} allows replacing existing files.
{phang}
{opt nos:hp} deactivates automatic saving of the shape frame. By default,
if the current frame is linked to a shape frame, the shape frame is stored
on disk under the same name with extension {cmd:_shp.dta}. Type {cmd:noshp} to store
the attribute frame only.
{phang}
{opth if:shp(exp)} specifies an {it:if} condition to restrict
the observations of the shape frame to be saved (and, in the main file, include
only units with a nonzero selection in the shape frame). {cmd:ifshp()} is
not allowed together with {cmd:noshp}.
{marker describe}{...}
{dlgtab:geoframe describe}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmdab:d:escribe}
{pstd}
displays the geoframe settings of the current frame. Alternatively, type
{p 8 15 2}
{cmd:geoframe} {cmdab:d:escribe} {it:frame}
{pstd}
to display the settings of frame {it:frame}.
{marker set}{...}
{dlgtab:geoframe set}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmd:set} {it:key} [{it:value}]
{pstd}
defines or adjusts the settings of the current frame. The settings, for example, contain
information on the names of the coordinate variables. Such information will be
retrieved by {cmd:geoframe} or {helpb geoplot} when processing a frame. {it:key} can
be as follows.
{p2colset 9 22 24 2}{...}
{p2col :{it:key}}Description
{p_end}
{p2col :{cmdab:t:ype}}the type of data in the frame; {it:value} may be
{cmd:attribute} (attribute data), {cmd:pc} (paired-coordinates data),
or {cmd:shape} (shape data)
{p_end}
{p2col :{cmdab:f:eature}}the type of features represented by the units in the frame;
{it:value} can be any text
{p_end}
{p2col :{cmd:id}}the name of the variable containing the unit ID; {it:value} is a single
variable name; default is {cmd:_ID}
{p_end}
{p2col :{cmdab:co:ordinates}}the names of the variables containing the coordinates; {it:value} is a list of
two (for data types {cmd:attribute} and {cmd:shape}) or four (for data type {cmd:pc}) variable names; default is
{cmd:_X _Y} for data type {cmd:shape}, {cmd:_CX _CY} for data type {cmd:attribute},
and {cmd:_X1 _Y1 _X2 _Y2} for data type {cmd:pc}
{p_end}
{p2col :{cmdab:cen:troids}}the names of the variables containing the centroids; {it:value} is a list of
two variable names; default is {cmd:_CX _CY} for data types {cmd:shape} and {cmd:pc}; for data type
{cmd:attribute}, {cmd:centroids} is a synonym for {cmd:coordinates}
{p_end}
{p2col :{cmd:area}}the name of the variable containing the shape sizes;
{it:value} is a single variable name; default is {cmd:_AREA}
{p_end}
{p2col :{cmd:sid}}the name of the variable containing the within-unit sort ID;
{it:value} is a single variable name; default is {cmd:shape_order}; the setting
is only relevant for data of type {cmd:shape}
{p_end}
{p2col :{cmd:pid}}the name of the variable containing the within-unit polygon ID;
{it:value} is a single variable name; default is {cmd:_PID}; the setting
is only relevant for data of type {cmd:shape}
{p_end}
{p2col :{cmdab:pl:evel}}the name of the variable containing the plot level ID (enclaves and exclaves);
{it:value} is a single variable name; default is {cmd:_PLEVEL}; the setting
is only relevant for data of type {cmd:shape}
{p_end}
{p2col :{cmdab:s:hpframe}}the name of the linked shape frame; only allowed with
{helpb geoframe##get:geoframe get}
{p_end}
{p2col :{cmd:linkname}}the name of the linking variable in the linked shape frame; only
allowed with {helpb geoframe##get:geoframe get}
{p_end}
{pstd}
{it:key} is case insensitive; you may type {it:key} in lowercase
(as above) or in uppercase.
{marker get}{...}
{dlgtab:geoframe get}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmd:get} {it:key} [{cmd:,} {opt l:ocal(lname)} ]
{pstd}
retrieves the value of a geoframe setting, where {it:key} is the name of the
setting to be retrieved. Available keys are as listed
{help geoframe##set:above}.
{pstd}
Option {opt local()} stores the value of the setting in a {help macro:local macro} called
{it:lname} instead of displaying it.
{marker query}{...}
{dlgtab:geoframe query}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmdab:q:uery} [{it:function}] [...]
{pstd}
provides functions to obtain information about the units and shapes in the
current frame. Available functions are:
{p2colset 9 22 24 2}{...}
{p2col : {helpb geoframe##q_n:n}}number of units and shape items; the default
{p_end}
{p2col : {helpb geoframe##q_gtype:{ul:item}s}}number of shape items by geometry type
{p_end}
{p2col : {helpb geoframe##q_gtype:{ul:gt}ype}}synonmy for {cmd:items}
{p_end}
{p2col : {helpb geoframe##q_dir:{ul:dir}ection}}orientation of shape items
{p_end}
{p2col : {helpb geoframe##q_dir:{ul:or}ientation}}synonym for {cmd:direction}
{p_end}
{p2col : {helpb geoframe##q_bbox:{ul:bb}ox}}bounding box of shapes
{p_end}
{marker q_n}{...}
{pstd}{ul:Number of units and shapes}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {opt q:uery} [{opt n}] {ifin}
{pstd}
obtains information about the number of selected units and corresponding
shape items. The following scalars are returned in {cmd:r()}.
{p2colset 9 22 22 2}{...}
{p2col : {cmd:r(units)}}number of units
{p_end}
{p2col : {cmd:r(items)}}number of shape items
{p_end}
{p2col : {cmd:r(min)}}minimum number of shape items per unit
{p_end}
{p2col : {cmd:r(avg)}}average number of shape items per unit
{p_end}
{p2col : {cmd:r(max)}}maximum number of shape items per unit
{p_end}
{marker q_gtype}{...}
{pstd}{ul:Number of shape items by geometry type}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {opt q:uery} {opt item:s} {ifin}
{pstd}
obtains information about the number of shape items by type of geometry
for the selected units. The following scalars are returned in {cmd:r()}.
{p2colset 9 24 26 2}{...}
{p2col : {cmd:r(items)}}total number of shape items
{p_end}
{p2col : {cmd:r(Polygon)}}number of polygon items (four or more points and first
point equal to last point)
{p_end}
{p2col : {cmd:r(LineString)}}number of line items (four or more points and
first point unequal last point, two points, or three points)
{p_end}
{p2col : {cmd:r(Point)}}number of point items (one point)
{p_end}
{p2col : {cmd:r(Empty)}}number of empty items (missing)
{p_end}
{pstd}
{cmd:geoframe query gtype} is a synonym for {cmd:geoframe query items}.
{marker q_dir}{...}
{pstd}{ul:Orientation of shape items}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {opt q:uery} {opt dir:ection} {ifin}
{pstd}
obtains information about the orientation of the shape items of the
selected units. The following scalars are returned in {cmd:r()}.
{p2colset 9 22 24 2}{...}
{p2col : {cmd:r(items)}}total number of shape items
{p_end}
{p2col : {cmd:r(neg)}}number of items with negative orientation (clockwise)
{p_end}
{p2col : {cmd:r(pos)}}number of items with positive orientation (counterclockwise)
{p_end}
{p2col : {cmd:r(null)}}number of items with undefined orientation (items
with less than 3 unique points)
{p_end}
{pstd}
Lines are trated like polygons. {cmd:geoframe query orientation} is a
synonym for {cmd:geoframe query direction}.
{marker q_bbox}{...}
{pstd}{ul:Bounding box of shapes}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {opt q:uery} {opt bb:ox} {ifin} [{cmd:,} {it:options} ]
{pstd}
obtains the bounding box of the selected shapes and returns
it in {cmd:r()}. {it:options} are {cmd:pading()}, {cmd:rotate}, {cmd:hull}, {cmd:circle},
{cmd:n()}, {cmd:angle()}, {cmd:noadjust}, and
{cmd:noshp} as described in {helpb geoframe##bbox:geoframe bbox}. The following
results are returned.
{pmore} Scalars:
{p2colset 9 22 24 2}{...}
{p2col : {cmd:r(xmin)}}lower X limit of the bounding box
{p_end}
{p2col : {cmd:r(xmax)}}upper X limit of the bounding box
{p_end}
{p2col : {cmd:r(xmid)}}midpoint between {cmd:r(xmin)} and {cmd:r(xmax)}
{p_end}
{p2col : {cmd:r(ymin)}}lower Y limit of the bounding box
{p_end}
{p2col : {cmd:r(ymax)}}upper Y limit of the bounding box
{p_end}
{p2col : {cmd:r(ymid)}}midpoint between {cmd:r(ymin)} and {cmd:r(ymax)}
{p_end}
{pmore} Matrix:
{p2col : {cmd:r(bbox)}}(X,Y) coordinates of the bounding box
{p_end}
{p2col : {cmd:r(limits)}}row vector containing limits of the bounding box (xmin, xmax, ymin, ymax)
{p_end}
{marker generate}{...}
{dlgtab:geoframe generate}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmdab:g:enerate} {it:function} {it:...}
{pstd}
provides functions to generate specific variables in the current frame or in a
linked shape frame. Available functions are as follows.
{p2colset 9 22 24 2}{...}
{p2col : {helpb geoframe##g_centroids:{ul:cen}troids}}generate centroid variables in current frame
{p_end}
{p2col : {helpb geoframe##g_area:area}}generate shape size variable in current frame
{p_end}
{p2col : {helpb geoframe##g_pid:pid}}generate within-unit polygon ID (shape item ID) in shape frame
{p_end}
{p2col : {helpb geoframe##g_gtype:{ul:gt}ype}}generate geometry-type indicator for shape items in shape frame
{p_end}
{p2col : {helpb geoframe##g_dir:{ul:dir}ection}}generate direction indicator for shape items in shape frame
{p_end}
{p2col : {helpb geoframe##g_dir:{ul:or}ientation}}synonym for {cmd:geoframe generate direction}
{p_end}
{p2col : {helpb geoframe##g_plevel:{ul:pl}evel}}generate enclave/exclaves identifier in shape frame
{p_end}
{p2col : {helpb geoframe##g_shpmatch:{ul:shp}match}}generate indicator in current frame
for match of unit in the linked shape frame
{p_end}
{marker g_centroids}{...}
{pstd}{ul:Centroids}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmdab:cen:troids} [{it:CX CY}] [{cmd:,} {opt replace} {opt noset} ]
{pstd}
generates variables containing the coordinates of the centroid of each shape
(across all shape items belonging to the same unit). The command can be
applied both to a shape frame (in which case the centroids
will be stored in the shape frame) or to an attribute frame that has a linked shape
frame (in which case the centroids will be stored in the attribute frame). {it:CX}
and {it:CY} specify the names of the generated
variables; {cmd:_CX} and {cmd:_CY} are used as default variable names. Option
{cmd:replace} allows overwriting existing variables. The created variables
will be registered using {helpb geoframe##set:geoframe set centroids}
unless option {cmd:noset} is specified.
{marker g_area}{...}
{pstd}{ul:Shape sizes}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmd:area} [{it:AREA}] [{cmd:,} {opt s:cale(exp)} {opt replace} {opt noset} ]
{pstd}
generates a variable containing the size of the area enclosed in each
shape (including all shape items belonging to the same unit). The command
can be applied both to a shape frame (in which case the variable
will be stored in the shape frame) or to an attribute frame that has a linked shape
frame (in which case the variable will be stored in the attribute frame). {it:AREA}
specifies a name for the generated variable; {cmd:_AREA}
is used as default variable name. Option {opt scale(exp)} determines
the scale of the resulting areas; for example, if the coordinates are in meters,
type {cmd:scale(100)} to obtain the area in hectares, or type {cmd:scale(1000)}
to obtain the area in square kilometers. Option {cmd:replace} allows overwriting
an existing variable. The created variable will be registered using
{helpb geoframe##set:geoframe set area} unless option {cmd:noset} is
specified.
{marker g_pid}{...}
{pstd}{ul:Shape item ID}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmd:pid} [{it:PID}] [{cmd:,} {opt replace} {opt noset} ]
{pstd}
generates a variable identifying the different polygons or other shape items
within each unit. If the current frame is linked to a shape frame,
{cmd:geoframe generate pid} will be applied to the linked shape frame. {it:PID}
specifies a name for the generated variable; {cmd:_PID} is used as default
variable name. Option {cmd:replace} allows overwriting an existing
variable. The created variable will be registered in the shape frame using
{helpb geoframe##set:geoframe set pid} unless option {cmd:noset} is
specified.
{marker g_gtype}{...}
{pstd}{ul:Geometry types of shape items}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmdab:gt:ype} [{it:GTYPE}] [{cmd:,} {opt replace} {opt nolab:el} ]
{pstd}
generates a variable identifying the geometry type of each shape
item: 1 = Point, 2 = LineString, 3 = Polygon, 0 = Empty (item contains missing
only). If the current frame is linked to a shape frame,
{cmd:geoframe generate gtype} will be applied to the linked shape
frame. {it:GTYPE} specifies a name for the generated variable; {cmd:_GTYPE} is used as default
variable name. Option {cmd:replace} allows overwriting an existing
variable. Option {cmd:nolabel} omits creating and assigning value labels.
{marker g_dir}{...}
{pstd}{ul:Orientation of shape items}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmdab:dir:ection} [{it:DIR}] [{cmd:,} {opt replace} {opt nolab:el} ]
{pstd}
generates a variable identifying the orientation of each shape
item: 1 = positive (counterclockwise), -1 = negative (clockwise), 0 = undetermined
(item has less than 3 unique points). If the current frame is linked to a shape frame,
{cmd:geoframe generate direction} will be applied to the linked shape
frame. {it:DIR} specifies a name for the generated variable; {cmd:_DIR} is used as default
variable name. Option {cmd:replace} allows overwriting an existing
variable. Option {cmd:nolabel} omits creating and assigning value labels.
{pstd}
{cmd:geoframe generate orientation} is a synonym for {cmd:geoframe generate direction}.
{marker g_plevel}{...}
{pstd}{ul:Enclaves and exclaves}
{marker gen_plevel}{...}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmdab:pl:evel} [{it:PLEVEL}] {ifin}
[{cmd:,} {cmd:by(}{help varname:{it:byvar}}{cmd:)} {opt replace} {opt noset}
{opt nodot:s} ]
{pstd}
generates (or updates) a variable identifying the plot order of the shape
items. If the current frame is linked to a shape frame,
{cmd:geoframe generate plevel} will be applied to the linked shape
frame.
{pstd}
{it:PLEVEL} specifies a name for the generated variable; {cmd:_PLEVEL} is used as default
variable name. If variable {it:PLEVEL} already exists and is numeric, the
values of the selected observations will be updated; the existing values of
the other observations will not be changed. If variable {it:PLEVEL} does not
exist, a new variable will be created, which will be set to missing for all
other observations. If variable {it:PLEVEL} already exists and is not
numeric, an error will be displayed. Specify option {cmd:replace} to allow
overwriting the variable in this case. You can also use {cmd:replace}
to replace an existing numeric variable rather then updating it. Variable
{it:PLEVEL} will be registered in the shape frame using
{helpb geoframe##set:geoframe set plevel} unless option {cmd:noset} is
specified. Option {cmd:nodots} suppresses the progress dots that are displayed
by default.
{pstd}
By default, {cmd:geoframe generate plevel} will do a search for nested shape items
across all units in the data. Use option {cmd:by()} to stratify the search, for example,
if the data contains separate regions without overlap or if the data contains units
from different aggregation levels that should not be compared. If {cmd:by()}
is specified, a separate search will be done within each group of units defined by the
levels of {it:byvar}.
{pstd}
{cmd:geoframe generate plevel} is useful to identify enclaves and exclaves
so that they do not get covered when plotting filled areas. The generated
variable will be set to 0 for items that are neither enclaves nor exclaves,
1 for enclaves, 2 for exclaves, 3 for enclaves within exclaves, 4 for exclaves
within enclaves, etc. {helpb geoplot} will then print the items in this
order. The algorithm used by {cmd:geoframe generate plevel} assumes
that items do not overlap (i.e. no crossings). It also assumes that
enclaves are explicitly included in the data (that is, if unit A has
an exclave in unit B, then unit B must contain a corresponding enclave
item). Results will be invalid if these assumptions are not met.
{pstd}
{cmd:geoframe generate plevel} can be slow in larger datasets. Make sure to
apply {cmd:geoframe generate plevel} only to shapes at the same
level of aggregation (e.g. regions or countries, but not regions and countries
simultaneously); if relevant, use option {cmd:by()} to stratify by level. Furthermore,
it is generally a good idea to restrict the
data to the geographic region you want to include in your
graph (e.g. using {helpb geoframe##select:geoframe select}) before applying
{cmd:geoframe generate plevel}.
{marker g_shpmatch}{...}
{pstd}{ul:Match in shape frame}
{p 8 15 2}
{cmd:geoframe} {cmdab:g:enerate} {cmdab:shp:match} [{it:SHPMATCH}] [{cmd:,} {opt replace} ]
{pstd}
generates a variable indicating whether a unit has a match in the linked
shape frame (i.e., whether shape information is available for a unit). The command
can only be applied to a frame that has a link to a shape frame. {it:SHPMATCH}
specifies a name for the generated variable; {cmd:_SHPMATCH} is used as default
variable name. Option {cmd:replace} allows overwriting an existing variable.
{marker select}{...}
{dlgtab:geoframe select}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmdab:sel:ect} {ifin}
[{cmd:,} {it:options} ]
{pstd}
selects the observations satisfying the {it:if} and {it:in} qualifiers in
the current frame. By default, if the current frame is linked to a
shape frame, a corresponding selection will also be applied to
the shape frame and the linkage between the frames will be
updated. {it:options} are as follows.
{phang}
{opth if:shp(exp)} specifies an {it:if} condition to be applied to
the linked shape frame when selecting observations. Observations in the
linked shape frame that do not satisfy the specified condition (i.e.,
observations for which {it:exp} evaluates to zero) will be removed from
the (copy of the) linked shape frame, and units for which no observations
remain in the linked shape frame after applying {cmd:ifshp()} will be
dropped from the (copy of the) current frame. {cmd:ifshp()} is only allowed
if the current frame is linked to a shape frame. {cmd:ifshp()} is not
allowed together with {cmd:noshp} or {cmd:unlink}.
{phang}
{opt nodrop} retains units in the (copy of the) current frame for which
{cmd:ifshp()} removed all shape-frame observations. The default
is to keep only those units for which at least one observation remains
after applying {cmd:ifshp()}. {cmd:nodrop} is only relevant if
{cmd:ifshp()} has been specified.
{phang}
{opt nos:hp} modifies the (copy of the) current frame
only even if the current frame is linked to a shape frame. That is,
the linked shape frame will remain unchanged (apart from updating the
linkage). {opt noshp} also implies that {cmd:into()} will make no copy of
the shape frame.
{phang}
{opt unl:ink} does not establish a link to a shape frame in the modified
frame even if the current frame is linked to a shape
frame. {cmd:unlink} implies {cmd:noshp}.
{phang}
{opt into(newname [newshpname])} copies the selection in a new frame
called {it:newname} and leaves the current frame unchanged. If the current
frame is linked to a shape frame, {cmd:into()} also creates a new shape
frame and leaves the original shape frame unchanged. The
default name for the new shape frame is {it:newname}{cmd:_shp}; specify
{it:newshpname} to provide an alternative name.
{phang}
{opt replace} allows {cmd:into()} to overwrite existing frames.
{phang}
{opt cur:rent} makes the created frame the current frame.
{marker project}{...}
{dlgtab:geoframe project}
{p 8 15 2}
[{cmd:frame} {it:frame}{cmd::}] {cmd:geoframe} {cmd:project} [{it:projection} [{it:args}]] {ifin}
[{cmd:,} {it:options} ]
{pstd}
transforms the coordinates of the selected shapes by applying the specified
projection. If the current frame is linked to a shape frame, the coordinates
in both the current frame and the shape frame will be translated. For a general
introduction to map projections
see {browse "https://en.wikipedia.org/wiki/Map_projection":en.wikipedia.org/wiki/Map_projection};
for an extensive list of projections see
{browse "https://en.wikipedia.org/wiki/List_of_map_projections":en.wikipedia.org/wiki/List_of_map_projections}).
{pstd}
The following projections are currently supported by {cmd:geoframe project}. Input
coordinates are assumed to represent latitude (Y) and
longitude (X) in degrees (typically WGS84); Y values outside +/- 90 will
clipped before applying the projection (unless noted otherwise). The names
of the projections can be abbreviated and typed in lower- or uppercase
letters (if abbreviation is ambiguous, the first match in the list will be
used).
{p2colset 11 41 43 2}{...}
{pmore}Cylindrical{p_end}
{p2col : {opt webmercator} [{it:zoom} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Web_Mercator_projection":Web Mercator}
projection (the default), where
{it:zoom} sets the zoom level (default is {cmd:0}, resulting in an equator
length of 256 pixels; set the zoom level to {cmd:1} for 512 pixels, {cmd:2}
for 1024 pixels, etc.);
Y values outside +/- 85.051129 will be clipped before applying the
projection
{p_end}
{p2col : {opt mercator} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Mercator_projection":Mercator}
projection (spherical earth model)
{p_end}
{p2col : {opt emercator} [{it:r} {it:x0} {it:m}]}{browse "https://en.wikipedia.org/wiki/Mercator_projection":Mercator}
projection (ellipsoid earth model), where
{it:m} sets the inverse flattening parameter (default is {cmd:298.257223563},
corresponding to {browse "https://en.wikipedia.org/wiki/World_Geodetic_System":WGS 84})
{p_end}
{p2col :{opt miller} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Miller_cylindrical_projection":Miller cylindrical}
projection
{p_end}
{p2col :{opt gallstereo} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Gall_stereographic_projection":Gall stereographic}
projection
{p_end}
{p2col :{opt lambert} [{it:r} {it:x0} {it:S}]}{browse "https://en.wikipedia.org/wiki/Lambert_cylindrical_equal-area_projection":Lambert cylindrical equal-area}
projection, where {it:S} sets the stretch factor
(default is {cmd:1}; see
{browse "https://en.wikipedia.org/wiki/Cylindrical_equal-area_projection":en.wikipedia.org/wiki/Cylindrical_equal-area_projection})
{p_end}
{p2col :{opt behrmann} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Behrmann_projection":Behrmann}
projection; equal to {cmd:lambert} with {it:S} = 0.75
{p_end}
{p2col :{opt hobodyer} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Hobo%E2%80%93Dyer_projection":Hobo–Dyer}
projection; equal to {cmd:lambert} with {it:S} = cos(37.5 * _pi / 180)^2
{p_end}
{p2col :{opt gallpeters} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Gall%E2%80%93Peters_projection":Gall–Peters}
projection; equal to {cmd:lambert} with {it:S} = 0.5
{p_end}
{p2col :{opt peters} [{it:r} {it:x0}]}synonym for {cmd:gallpeters}
{p_end}
{p2col :{opt equirectangular} [{it:y1} {it:r} {it:x0} {it:y0}]}{browse "https://en.wikipedia.org/wiki/Equirectangular_projection":Equirectangular}
(equidistant cylindrical) projection; no clipping will be applied
{p_end}
{pmore}Pseudocylindrical{p_end}
{p2col :{opt robinson} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Robinson_projection":Robinson}
projection
{p_end}
{p2col :{opt equalearth} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Equal_Earth_projection":Equal Earth}
projection
{p_end}
{p2col :{opt naturalearth} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Natural_Earth_projection":Natural Earth}
projection
{p_end}
{pmore}Pseudoazimuthal{p_end}
{p2col :{opt winkeltripel} [{it:y1} {it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Winkel_tripel_projection":Winkel tripel}
projection; default for {it:y1} is {cmd:180/_pi*acos(2/_pi)}
{p_end}
{p2col :{opt hammer} [{it:r} {it:x0}]}{browse "https://en.wikipedia.org/wiki/Hammer_projection":Hammer}
projection
{p_end}
{pmore}Conic{p_end}
{p2col :{opt conic} [{it:y1} {it:y2} {it:r} {it:x0} {it:y0}]}{browse "https://en.wikipedia.org/wiki/Equidistant_conic_projection":Equidistant conic}
(simple conic) projection
{p_end}
{p2col :{opt albers} [{it:y1} {it:y2} {it:r} {it:x0} {it:y0}]}{browse "https://en.wikipedia.org/wiki/Albers_projection":Albers equal-area conic}
projection
{p_end}
{p2col :{opt lambertconic} [{it:y1} {it:y2} {it:r} {it:x0} {it:y0}]}{browse "https://en.wikipedia.org/wiki/Lambert_conformal_conic_projection":Lambert conformal conic}
projection
{p_end}
{pmore}Azimuthal{p_end}
{p2col :{opt orthographic} [{it:r} {it:x0} {it:y0}]}{browse "https://en.wikipedia.org/wiki/Orthographic_map_projection":Orthographic}
projection; Y values outside {it:y0} +/- 90 and X values outside {it:x0} +/- 90 will
be clipped before applying the projection (note that such clipping of individual
coordinates can lead to artifacts at the edges of the displayed hemisphere; preferably,
use {helpb geoframe##rclip:geoframe rclip} to clip the shapes to the relevant
range before applying {cmd:geoframe project orthographic})
{p_end}
{pmore}Legend:{p_end}
{p2colset 11 16 18 2}{...}